cs101- introduction to computing- lecture 24
Post on 08-Jul-2015
40 Views
Preview:
DESCRIPTION
TRANSCRIPT
1
CS101 Introduction to Computing
Lecture 24Design Heuristics
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
3
In order to understand anything, you must not try to understand everything
Aristotle
4
efficiency ∝ 1universality
5
focus!
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
7
Heuristic?
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
9
?Heuristic
Wisdom
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
11
system?
12
System
A collection of elements which
working togetherproduces a result not achieved by the things alone
13
System Architecture?
14
System Architecture
The structure(in terms of components, connections, constraints)
of a product or a process
15
Design == Architecture?
16
Heuristics for system architecting
Rules and lessons learnt by system architects
after long experiences
which when followed result in sound, stable, practical systems
17
My favorite system architecting(and other relevant) heuristics
--- in no particular order ---
18
19
Given many parts of a system to be designed/built,
do the hard part 1st1st
20
# 3All the serious
mistakes are made on the very first day
21
# 4
Simplify, simplify, simplify!
Probably the most useful heuristics for increasing reliability while decreasing cost & time-to-build
22
CautionCaution!!Everything should be as
simple as possiblebut not simpler
Al Einstein
23
# 5If you can’t explain it in 5 minutes, either
you don’t understand it or it does not work
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
25
# 7Success is defined by
the user, not the builder
26
Customer is always
right?
27
It depends!# 8
It’s more important to know what the customerneeds instead of what he says he wants
28
# 9If you think that your
design is perfect, it is only because you have not shown to anyone else
--- Get your designs reviewed ---
29
# 10
A good solution to a problem
somehow looks nice & elegant
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
31
2
6
5
4
31
32
2
6
5
4
31
33
2
6
5
4
31
34
12
3
5
6
7
84
9
35
#12Partition/repartition the problem until a model consisting of
7±2 chunks emerges
36
Life is the art of drawing sufficient conclusions
from insufficient premises
Samuel Butler
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
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
39
# 15Don’t just remove the defect; ...
40
# 15Don’t just remove the defect; correct the process that caused it
41
#16 The number of defects remaining in a system aftera given level of tests is proportional to ...
42
#16 The number of defects remaining in a system aftera given level of tests is proportional to the number found during the test
43
#17 Programmers deliver the same number of
LOC/day regardless of the language they are writing in
Use the highest-level language
44
There are many more!
Please post any that are familiar to you on the message board
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
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
top related