5
Virtual University Introduction to Computing Page 1 of 5 © Copyright Virtual University of Pakistan Lecture 24 Design Heuristics During the last lecture … We became familiar with the various phases of the process that developers follow to develop SW systems of reasonable complexity We looked at a couple of problems related to the Waterfall SW development model Today’s Lecture Heuristics for System Architecting We will try to understand the role of heuristics in architectural (or high-level) design We will become familiar with a few popular design heuristics Heuristic Rule of thumb learned through trial & error Common sense lesson drawn from experience Qualitative principle, guideline , general judgement Natural language description of experience System A collection of elements which working together produces a result not achieved by the things alone System Architecture The structure (in terms of components, connections, constraints) of a product or a process Heuristics for system architecting Rules and lessons learnt by system architects after long experiences which when followed result in sound , stable , practical systems # 1 My favorite system architecting (and other relevant) heuristics --- in no particular order --- #2 Given many parts of a system to be designed/built, do the hard part 1st # 3 All the serious mistakes are made on the very first day # 4 Simplify, simplify, simplify! Probably the most useful heuristics for increasing reliability while decreasing cost & time- to-build # 5 If you can’t explain it in 5 minutes, either you don’t understand it or it does not work # 6 A system will develop & evolve much more rapidly if there are stable intermediate forms than if there Build iteratively; add features gradually # 7 Success is defined by the user, not the builder # 8 It’s more important to know what the customer needs instead of what he says he wants

Chapter 24

Embed Size (px)

DESCRIPTION

Marketing The Art !

Citation preview

Page 1: Chapter 24

Virtual University Introduction to Computing

Page 1 of 5

© Copyright Virtual University of Pakistan

Lecture 24 Design Heuristics

During the last lecture …

• We became familiar with the various phases of the process that developers follow to develop SW systems of reasonable complexity

• We looked at a couple of problems related to the Waterfall SW development model

Today’s Lecture

Heuristics for System Architecting

• We will try to understand the role of heuristics in architectural (or high-level) design

• We will become familiar with a few popular design heuristics

Heuristic Rule of thumb learned through trial & error

Common sense lesson drawn from experience

Qualitative principle, guideline, general judgement

Natural language description of experience

System A collection of elements which working together produces a result not achieved by

the things alone

System Architecture The structure

(in terms of components, connections, constraints) of a product or a process

Heuristics for system architecting Rules and lessons learnt by system architects

after long experiences which when followed

result in sound, stable, practical systems # 1 My favorite system architecting

(and other relevant) heuristics --- in no particular order ---

#2 Given many parts of a system to be designed/built, do the hard part 11sstt # 3 All the serious mistakes are made on the very first day # 4 Simplify, simplify, simplify! Probably the most useful heuristics for increasing reliability while decreasing cost & time-to-build # 5 If you can’t explain it in 5 minutes, either you don’t understand it or it does not work

# 6 A system will develop & evolve much more rapidly if there are stable intermediate forms than if there Build iteratively; add features gradually # 7 Success is defined by the user, not the builder # 8 It’s more important to know what the customer

needs instead of what he says he wants

Page 2: Chapter 24

Virtual University Introduction to Computing

Page 2 of 5

© Copyright Virtual University of Pakistan

# 9 If you think that your design is perfect, it is only because you have not shown to anyone else --- Get your designs reviewed --- # 10 A good solution to a problem somehow looks nice & elegant # 11 In partitioning, choose the chunks so that they are as independent as possible Chunks should have low external complexity & high internal complexity Organize personal tasks to minimize the time individuals face interfacing

2

6

5

4

3 1

2

6

5

4

3 1

Page 3: Chapter 24

Virtual University Introduction to Computing

Page 3 of 5

© Copyright Virtual University of Pakistan

2

6

5

4

3 1

1 2

3

5

6

7

8

9

4

Page 4: Chapter 24

Virtual University Introduction to Computing

Page 4 of 5

© Copyright Virtual University of Pakistan

# 12 Partition/repartition the problem until a model consisting of 7±2

chunks emerges # 13 When choices must be made with unavoidably inadequate info: Choose the best available & then watch to see: whether further solutions appear faster than future problems . If so, the choice was at least adequate . If not, go back & choose again # 14 The Triage 1. Let the dying die 2. Ignore who’ll recover on their own 3. Treat only those who’ll die without your help #15 Don’t just remove the defect; correct the process that caused it # 16 The number of defects remaining in a system after a given level of tests is proportional to the number found during the test # 17 Programmers deliver the same number of LOC/day regardless of the language they are writing in . Use the Highest level Language

In Today’s Lecture

• We became familiar with the the role of heuristics in design

• We also discussed a few well-known design heuristics for architectural design

In Today’s Lecture

• We became familiar with the the role of heuristics in design

• We also discussed a few well-known design heuristics for architectural design

Next Lecture: Web Design for Usability

• To become able to appreciate the role of usability in Web design

• To become able to identify some of the factors affecting the usability of a Web page

Page 5: Chapter 24

Virtual University Introduction to Computing

Page 5 of 5

© Copyright Virtual University of Pakistan