Professional Documents
Culture Documents
Lecture 24
Design Heuristics
1
During the last lecture …
• We became familiar with the various phases
of the process that developers follow to
develop SW systems of reasonable
complexity
2
In order to understand
anything, you must not
try to understand
everything
Aristotle
3
1
efficiency
universality
4
focus!
5
Today’s Lecture
Heuristics for System Architecting
6
Heuristic?
7
Heuristic
8
?
Heuristic
Wisdom 9
Caution! Caution!
Heuristics don’t always
lead to the best results
working together
produces a result not achieved by the things alone
12
System
Architecture?
13
System Architecture
The structure
(in terms of components, connections, constraints)
of a product or a process
14
?
Design == Architecture
15
Heuristics for system architecting
16
My favorite system architecting
(and other relevant) heuristics
17
18
Given many parts of a system to be designed/built,
Al Einstein22
#5
If you can’t explain it
in 5 minutes, either
you don’t understand
it or it does not work
23
#6
A system will develop &
evolve much more rapidly if
there are stable intermediate
forms than if there are not
25
Customer
is always
right?26
It depends!
#8
It’s more important to know what the customer
needs instead of what he says he wants
27
#9
If you think that your
design is perfect, it is only
because you have not
shown to anyone else
A good solution
to a problem
somehow looks
nice & elegant
29
#11 In partitioning, choose
the chunks so that they are
as independent as possible
6
2
4
31
5
1 3
6
2
4
32
5
1 3
6
2
4
33
4 8
1
2
7 9
3
34
#12
Partition/repartition
the problem until a
model consisting of
7±2 chunks
emerges
35
Life is the art of drawing
sufficient conclusions
from insufficient premises
Samuel Butler
36
#13 When choices must be made
with unavoidably inadequate info:
39
# 15
Don’t just remove
the defect; correct
the process that
caused it
40
#16 The number of defects
remaining in a system after
a given level of tests is
proportional to ...
41
#16 The number of defects
remaining in a system after
a given level of tests is
proportional to the number
found during the test
42
#17 Programmers deliver
the same number of
LOC/day regardless of the
language they are writing in
43
There are many more!
44
In Today’s Lecture
45
Next Lecture:
Web Design for Usability
46