[Tutor] re: software design
alan.gauld@bt.com
alan.gauld@bt.com
Tue, 6 Mar 2001 11:19:45 -0000
> On Mon, 5 Mar 2001, Pedro Diaz Jimenez wrote:
> > As computer engineer student I am, I have to told you
> > what my teachers have told me thousand of times: flow
> > charts are not enough.
This is true.
> > They are obsolete. They are not suitable for large projects.
This is not.
The largest program I ever worked on - a mainframe billing
system, written in COBOL with over 10,000,000 lines of code
was all documented in flow charts at the module level. As
a maintainer of a large component(about 350,000 lines) I
can say it was very effective. And this was not a loing
time ago it was 1998... So not obsolete, not useless either!
But not sufficient.
> Flow charts are bottom up design. Bottom up design is
> considered passe.
In some circles. OTOH many pundits have stated that
the best way to do OO design is bottom up. And in an
environment like Smalltalk and python with the
interactive prompt to play with, bottom up makes a
lot of sense. Personally I tend to draft out a top
level architecture then drop straight down to the
bottom level and work up from there towards my
architecture. I use the prompt to experiment with
algorithms, data structures etc then reflect changes
as needed in the architecture layer.
> Data flow diagrams are inherently top down.
>
> Think about it for a while and it becomes obvious
> why this is. What's important is how the data needs
> to move and transmute.
Depends on the application environment. For business type
apps its usually true but in a real time embedded system
the data is usually trivial and the data flows consist
of a few primitive data parameters in method calls. The
work is all in the algorithms and state macjhines. Thats
why SDL(a state based designmethod/notation) is so popular
in the real-time/telecomms industry. Similatly when designing intensively
GUI oriented apps - even something like a
word processor....
> The single best book on software design I've seen is
> "Structured Analysis and System Specification" by
> Tom Demarco. That's why I've gone through
> three copies in 20 years where all the other books sit unused
> on my shelf.
"Software Engineering - a Practitioners Approach" by Pressman
is my bible - I buy each new edition as it comes out.
Alan g.