|
|||||
Introduction
to Computing CS101
VU
LESSON
24
DESIGN
HEURISTICS
During
the last Lesson ...
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
24.1
Heuristic
Rule
of thumb learned through trial &
error
Common
sense Lesson drawn from
experience
Qualitative
principle, guideline, general
judgement
Natural
language description of experience
24.2
System
A
collection of elements which
working
together
produces a result not achieved by the
things alone
24.3
System Architecture
The
structure
(in
terms of components, connections, constraints) of a
product or a process
24.4
Heuristics for system
architecting
Rules
and Lesson s 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
155
Introduction
to Computing CS101
VU
# 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
5
1
3
6
2
4
5
1
3
6
2
4
156
Introduction
to Computing CS101
VU
5
1
3
6
2
4
4
8
1
2
5
7
9
3
6
157
Introduction
to Computing CS101
VU
# 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
158
Table of Contents:
|
|||||