Software Design
What is software?
- Coined by either Paul Niquette (1953) or John W. Tukey (1958)
- To be distinguised from hardware - the physical, tangible components of a computer system
- A sequence of instructions for changing the state of computer hardware - that cause a computer to behave in a certain manner.
- source code and machine code (high and low level languages)
![hardware](images/hardware.jpg)
What types of software are there?
- System software - operates basic computer system functions
- Programming software - facilitates the writing of computer programs
- Application software - allows users to complete specific tasks
- brainstorm a list of software applications
What is design?
- Design is the planning that lays the basis for the making of every object or system. [wikipedia]
- the act of working out the form of something
- can be a noun or a verb
- "The management of constraints" [Dino Dini]
- Design a chair
- constraints are either negotiable or non-negotiable
- identification, classification, selection of constraint
- manipulation of design variables to satisfy non-negotiable constraints and optimize negotiable constraints
An incomplete list of types of design:
- user interface design
- information architecture
- interaction design
- graphic design
- industrial design
- fashion design
- urban planning
- game design
- garden design
- sound design
- floral design
What makes good design?
![iphone happiness](images/iphone-happiness.jpg)
iPhone, Bloody Mary, happiness
![eyephone](images/eyephone.jpg)
eyePhone
- Functionality - a good design should work well, be "bug" free
- Suitability - a good design should be suitable for its intended purpose
- Delight - a good design should produce pleasurable experiences
Is software design different from computer programming?