[comp.lang.ada] Design

larry@VLSI.JPL.NASA.GOV (03/03/89)

--
A discussion of whether top-down or bottom-up design is better is ridiculous. 
It's like arguing over whether hands or feet are better.  Each have different
but complementary uses.  The person who can (or chooses) to use only one of
them is handicapped. 

It's equally ridiculous to effuse over how wonderful object-oriented design is,
or rail against it.  Like every other tool, OOD is has uses and drawbacks.

Similarly, CoBOL is an excellent language for the limited domain it was
designed for: complex I/O formats, simple numeric processing, and simple
programming logic.  For many years 95% of all business problems could be
handled well with CoBOL.  The problems came when CoBOL (or ForTran, or
whatever) programmers began to attempt to use their tools for problems outside
their useful domain.  Hammers are poor tools for digging ditches.

The common theme in each of the three above areas is that the participants show
no idea of what trade-offs are and how to use them.  "Trading off" is a core
concept in engineering, one that should be alloyed with every idea and
technique the SW professional possesses.  If not, they aren't engineers but
only technicians. 
                              Larry @ vlsi.jpl.nasa.gov

rjh@cs.purdue.EDU (Bob Hathaway) (03/04/89)

In article <890302220159.62f@VLSI.JPL.NASA.GOV> larry@VLSI.JPL.NASA.GOV writes:
>--
>A discussion of whether top-down or bottom-up design is better is ridiculous. 
>It's like arguing over whether hands or feet are better.  Each have different
>but complementary uses.  The person who can (or chooses) to use only one of
>them is handicapped. 
>
Umm, within modules several general approaches are possible.  I've been using
top-down to refer to starting with top level design and my last article
asked for alternatives, I'm not sure there is a better way.  Would you begin
the design of the presented compiler front-end without the top level design?
How do you go about designing your Adts, starting at the top and recursively
applying design?  I'm interested in cases and examples where this doesn't 
apply.

>The common theme in each of the three above areas is that the participants show
>no idea of what trade-offs are and how to use them.  "Trading off" is a core
>concept in engineering, one that should be alloyed with every idea and
>technique the SW professional possesses.  If not, they aren't engineers but
>only technicians. 
>                              Larry @ vlsi.jpl.nasa.gov

Yes, abstraction vs. efficieny is a tradeoff in good design that all 
proficient programmers are aware of, and I could go on.  I'm not sure I
would want to work with a (low quality) program which didn't use Adts
or reasonable encapsulation constructs.  Advocates of modern design and
well engineered software are high quality engineers and not technicians,
we simply prefer to work with state of the art techniques and are aware
of the tradoffs involved.

Bob Hathaway
rjh@purdue.edu

shapiro@rb-dc1.UUCP (Mike Shapiro) (03/07/89)

In article <890302220159.62f@VLSI.JPL.NASA.GOV> larry@VLSI.JPL.NASA.GOV writes:
    <<< much deleted >>>
>handled well with CoBOL.  The problems came when CoBOL (or ForTran, or
                   =====                          =====     =======

Please learn the proper spellings: COBOL and FORTRAN for the current standards.
                                   =====     =======
If you're referring to the next standard, it's Fortran.
                                               =======
(See Foreward to X3J3 draft for document X3.9-198x.)










-- 

Michael Shapiro, Gould/General Systems Division
15378 Avenue of Science, San Diego, CA 92128
(619)485-0910    UUCP: ...sdcsvax!ncr-sd!rb-dc1!shapiro