CS101 Introduction to Computing Lecture 10 Computer Software.
1 CS101 Introduction to Computing Lecture 24 Design Heuristics.
-
Upload
karen-king -
Category
Documents
-
view
228 -
download
3
Transcript of 1 CS101 Introduction to Computing Lecture 24 Design Heuristics.
![Page 1: 1 CS101 Introduction to Computing Lecture 24 Design Heuristics.](https://reader036.fdocuments.us/reader036/viewer/2022062314/56649dcf5503460f94ac3475/html5/thumbnails/1.jpg)
1
CS101 Introduction to Computing
Lecture 24Design Heuristics
![Page 2: 1 CS101 Introduction to Computing Lecture 24 Design Heuristics.](https://reader036.fdocuments.us/reader036/viewer/2022062314/56649dcf5503460f94ac3475/html5/thumbnails/2.jpg)
2
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
![Page 3: 1 CS101 Introduction to Computing Lecture 24 Design Heuristics.](https://reader036.fdocuments.us/reader036/viewer/2022062314/56649dcf5503460f94ac3475/html5/thumbnails/3.jpg)
3
In order to understand anything, you must not try to understand everything
Aristotle
![Page 4: 1 CS101 Introduction to Computing Lecture 24 Design Heuristics.](https://reader036.fdocuments.us/reader036/viewer/2022062314/56649dcf5503460f94ac3475/html5/thumbnails/4.jpg)
4
efficiency 1universality
![Page 5: 1 CS101 Introduction to Computing Lecture 24 Design Heuristics.](https://reader036.fdocuments.us/reader036/viewer/2022062314/56649dcf5503460f94ac3475/html5/thumbnails/5.jpg)
5
focus!
![Page 6: 1 CS101 Introduction to Computing Lecture 24 Design Heuristics.](https://reader036.fdocuments.us/reader036/viewer/2022062314/56649dcf5503460f94ac3475/html5/thumbnails/6.jpg)
6
Today’s LectureHeuristics 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
![Page 7: 1 CS101 Introduction to Computing Lecture 24 Design Heuristics.](https://reader036.fdocuments.us/reader036/viewer/2022062314/56649dcf5503460f94ac3475/html5/thumbnails/7.jpg)
7
Heuristic?
![Page 8: 1 CS101 Introduction to Computing Lecture 24 Design Heuristics.](https://reader036.fdocuments.us/reader036/viewer/2022062314/56649dcf5503460f94ac3475/html5/thumbnails/8.jpg)
8
Heuristic
Rule of thumb learned through trial & error
Common sense lesson drawn from experience
Qualitative principle, guideline, general judgement
Natural language description of experience
![Page 9: 1 CS101 Introduction to Computing Lecture 24 Design Heuristics.](https://reader036.fdocuments.us/reader036/viewer/2022062314/56649dcf5503460f94ac3475/html5/thumbnails/9.jpg)
9
?Heuristic
Wisdom
![Page 10: 1 CS101 Introduction to Computing Lecture 24 Design Heuristics.](https://reader036.fdocuments.us/reader036/viewer/2022062314/56649dcf5503460f94ac3475/html5/thumbnails/10.jpg)
10
CautionCaution!! CautionCaution!! Heuristics don’t always lead to the best results
At times they even lead to the wrong ones, but mostly to results that are good-enough
![Page 11: 1 CS101 Introduction to Computing Lecture 24 Design Heuristics.](https://reader036.fdocuments.us/reader036/viewer/2022062314/56649dcf5503460f94ac3475/html5/thumbnails/11.jpg)
11
system?
![Page 12: 1 CS101 Introduction to Computing Lecture 24 Design Heuristics.](https://reader036.fdocuments.us/reader036/viewer/2022062314/56649dcf5503460f94ac3475/html5/thumbnails/12.jpg)
12
System
A collection of elements which
working togetherproduces a result not achieved by the things alone
![Page 13: 1 CS101 Introduction to Computing Lecture 24 Design Heuristics.](https://reader036.fdocuments.us/reader036/viewer/2022062314/56649dcf5503460f94ac3475/html5/thumbnails/13.jpg)
13
System Architecture?
![Page 14: 1 CS101 Introduction to Computing Lecture 24 Design Heuristics.](https://reader036.fdocuments.us/reader036/viewer/2022062314/56649dcf5503460f94ac3475/html5/thumbnails/14.jpg)
14
System Architecture
The structure(in terms of components, connections, constraints)
of a product or a process
![Page 15: 1 CS101 Introduction to Computing Lecture 24 Design Heuristics.](https://reader036.fdocuments.us/reader036/viewer/2022062314/56649dcf5503460f94ac3475/html5/thumbnails/15.jpg)
15
Design == Architecture?
![Page 16: 1 CS101 Introduction to Computing Lecture 24 Design Heuristics.](https://reader036.fdocuments.us/reader036/viewer/2022062314/56649dcf5503460f94ac3475/html5/thumbnails/16.jpg)
16
Heuristics for system architecting
Rules and lessons learnt by system architects
after long experiences
which when followed result in sound, stable, practical systems
![Page 17: 1 CS101 Introduction to Computing Lecture 24 Design Heuristics.](https://reader036.fdocuments.us/reader036/viewer/2022062314/56649dcf5503460f94ac3475/html5/thumbnails/17.jpg)
17
My favorite system architecting(and other relevant) heuristics
--- in no particular order ---
![Page 18: 1 CS101 Introduction to Computing Lecture 24 Design Heuristics.](https://reader036.fdocuments.us/reader036/viewer/2022062314/56649dcf5503460f94ac3475/html5/thumbnails/18.jpg)
18
![Page 19: 1 CS101 Introduction to Computing Lecture 24 Design Heuristics.](https://reader036.fdocuments.us/reader036/viewer/2022062314/56649dcf5503460f94ac3475/html5/thumbnails/19.jpg)
19
Given many parts of a system to be designed/built,
do the hard part 1st1st
![Page 20: 1 CS101 Introduction to Computing Lecture 24 Design Heuristics.](https://reader036.fdocuments.us/reader036/viewer/2022062314/56649dcf5503460f94ac3475/html5/thumbnails/20.jpg)
20
# 3All the serious
mistakes are made on the very first day
![Page 21: 1 CS101 Introduction to Computing Lecture 24 Design Heuristics.](https://reader036.fdocuments.us/reader036/viewer/2022062314/56649dcf5503460f94ac3475/html5/thumbnails/21.jpg)
21
# 4
Simplify, simplify, simplify!
Probably the most useful heuristics for increasing reliability while decreasing cost & time-to-build
![Page 22: 1 CS101 Introduction to Computing Lecture 24 Design Heuristics.](https://reader036.fdocuments.us/reader036/viewer/2022062314/56649dcf5503460f94ac3475/html5/thumbnails/22.jpg)
22
CautionCaution!!Everything should be as
simple as possiblebut not simpler
Al Einstein
![Page 23: 1 CS101 Introduction to Computing Lecture 24 Design Heuristics.](https://reader036.fdocuments.us/reader036/viewer/2022062314/56649dcf5503460f94ac3475/html5/thumbnails/23.jpg)
23
# 5If you can’t explain it in 5 minutes, either
you don’t understand it or it does not work
![Page 24: 1 CS101 Introduction to Computing Lecture 24 Design Heuristics.](https://reader036.fdocuments.us/reader036/viewer/2022062314/56649dcf5503460f94ac3475/html5/thumbnails/24.jpg)
24
# 6A system will develop &
evolve much more rapidly if there are stable intermediate
forms than if there are not
Build iteratively; add features gradually
![Page 25: 1 CS101 Introduction to Computing Lecture 24 Design Heuristics.](https://reader036.fdocuments.us/reader036/viewer/2022062314/56649dcf5503460f94ac3475/html5/thumbnails/25.jpg)
25
# 7Success is defined by
the user, not the builder
![Page 26: 1 CS101 Introduction to Computing Lecture 24 Design Heuristics.](https://reader036.fdocuments.us/reader036/viewer/2022062314/56649dcf5503460f94ac3475/html5/thumbnails/26.jpg)
26
Customer is always
right?
![Page 27: 1 CS101 Introduction to Computing Lecture 24 Design Heuristics.](https://reader036.fdocuments.us/reader036/viewer/2022062314/56649dcf5503460f94ac3475/html5/thumbnails/27.jpg)
27
It depends!# 8
It’s more important to know what the customerneeds instead of what he says he wants
![Page 28: 1 CS101 Introduction to Computing Lecture 24 Design Heuristics.](https://reader036.fdocuments.us/reader036/viewer/2022062314/56649dcf5503460f94ac3475/html5/thumbnails/28.jpg)
28
# 9If you think that your
design is perfect, it is only because you have not shown to anyone else
--- Get your designs reviewed ---
![Page 29: 1 CS101 Introduction to Computing Lecture 24 Design Heuristics.](https://reader036.fdocuments.us/reader036/viewer/2022062314/56649dcf5503460f94ac3475/html5/thumbnails/29.jpg)
29
# 10
A good solution to a problem
somehow looks nice & elegant
![Page 30: 1 CS101 Introduction to Computing Lecture 24 Design Heuristics.](https://reader036.fdocuments.us/reader036/viewer/2022062314/56649dcf5503460f94ac3475/html5/thumbnails/30.jpg)
30
#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
![Page 31: 1 CS101 Introduction to Computing Lecture 24 Design Heuristics.](https://reader036.fdocuments.us/reader036/viewer/2022062314/56649dcf5503460f94ac3475/html5/thumbnails/31.jpg)
31
2
6
5
4
31
![Page 32: 1 CS101 Introduction to Computing Lecture 24 Design Heuristics.](https://reader036.fdocuments.us/reader036/viewer/2022062314/56649dcf5503460f94ac3475/html5/thumbnails/32.jpg)
32
2
6
5
4
31
![Page 33: 1 CS101 Introduction to Computing Lecture 24 Design Heuristics.](https://reader036.fdocuments.us/reader036/viewer/2022062314/56649dcf5503460f94ac3475/html5/thumbnails/33.jpg)
33
2
6
5
4
31
![Page 34: 1 CS101 Introduction to Computing Lecture 24 Design Heuristics.](https://reader036.fdocuments.us/reader036/viewer/2022062314/56649dcf5503460f94ac3475/html5/thumbnails/34.jpg)
34
12
3
5
6
7
84
9
![Page 35: 1 CS101 Introduction to Computing Lecture 24 Design Heuristics.](https://reader036.fdocuments.us/reader036/viewer/2022062314/56649dcf5503460f94ac3475/html5/thumbnails/35.jpg)
35
#12Partition/repartition the problem until a model consisting of
7±2 chunks emerges
![Page 36: 1 CS101 Introduction to Computing Lecture 24 Design Heuristics.](https://reader036.fdocuments.us/reader036/viewer/2022062314/56649dcf5503460f94ac3475/html5/thumbnails/36.jpg)
36
Life is the art of drawing sufficient conclusions
from insufficient premises
Samuel Butler
![Page 37: 1 CS101 Introduction to Computing Lecture 24 Design Heuristics.](https://reader036.fdocuments.us/reader036/viewer/2022062314/56649dcf5503460f94ac3475/html5/thumbnails/37.jpg)
37
#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
![Page 38: 1 CS101 Introduction to Computing Lecture 24 Design Heuristics.](https://reader036.fdocuments.us/reader036/viewer/2022062314/56649dcf5503460f94ac3475/html5/thumbnails/38.jpg)
38
#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
![Page 39: 1 CS101 Introduction to Computing Lecture 24 Design Heuristics.](https://reader036.fdocuments.us/reader036/viewer/2022062314/56649dcf5503460f94ac3475/html5/thumbnails/39.jpg)
39
# 15Don’t just remove the defect; ...
![Page 40: 1 CS101 Introduction to Computing Lecture 24 Design Heuristics.](https://reader036.fdocuments.us/reader036/viewer/2022062314/56649dcf5503460f94ac3475/html5/thumbnails/40.jpg)
40
# 15Don’t just remove the defect; correct the process that caused it
![Page 41: 1 CS101 Introduction to Computing Lecture 24 Design Heuristics.](https://reader036.fdocuments.us/reader036/viewer/2022062314/56649dcf5503460f94ac3475/html5/thumbnails/41.jpg)
41
#16 The number of defects remaining in a system aftera given level of tests is proportional to ...
![Page 42: 1 CS101 Introduction to Computing Lecture 24 Design Heuristics.](https://reader036.fdocuments.us/reader036/viewer/2022062314/56649dcf5503460f94ac3475/html5/thumbnails/42.jpg)
42
#16 The number of defects remaining in a system aftera given level of tests is proportional to the number found during the test
![Page 43: 1 CS101 Introduction to Computing Lecture 24 Design Heuristics.](https://reader036.fdocuments.us/reader036/viewer/2022062314/56649dcf5503460f94ac3475/html5/thumbnails/43.jpg)
43
#17 Programmers deliver the same number of
LOC/day regardless of the language they are writing in
Use the highest-level language
![Page 44: 1 CS101 Introduction to Computing Lecture 24 Design Heuristics.](https://reader036.fdocuments.us/reader036/viewer/2022062314/56649dcf5503460f94ac3475/html5/thumbnails/44.jpg)
44
There are many more!
Please post any that are familiar to you on the message board
![Page 45: 1 CS101 Introduction to Computing Lecture 24 Design Heuristics.](https://reader036.fdocuments.us/reader036/viewer/2022062314/56649dcf5503460f94ac3475/html5/thumbnails/45.jpg)
45
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
![Page 46: 1 CS101 Introduction to Computing Lecture 24 Design Heuristics.](https://reader036.fdocuments.us/reader036/viewer/2022062314/56649dcf5503460f94ac3475/html5/thumbnails/46.jpg)
46
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