[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.