comp.lang.ada
 help / color / mirror / Atom feed
From: shf@well.UUCP (Stuart H. Ferguson)
Subject: Re: Good Design Strategies <Was comments on comments>
Date: 11 Mar 89 11:15:09 GMT	[thread overview]
Message-ID: <10946@well.UUCP> (raw)
In-Reply-To: 6156@medusa.cs.purdue.edu

+-- rjh@cs.purdue.EDU (Bob Hathaway) writes:
| In article <>, djones@megatest.UUCP (Dave Jones) writes:
| >...My assertion -- must I repeat it again? --
| >is that good modules are more likely to come from a bottom-up approach.
| Ok, I'll admit you've made a good point although I still think starting at
| the top is the natural way to design systems (and algorithms).
 [ ... ]
| Ok, how about a quick example starting at top level.  When designing
| a "Classical" compiler/interpreter front-end, I know the structure will
| consist of a scanner to read input and a parser to read the grammar.  
 [ ... ]

Bob goes on to develop a design for a compiler front end in a very
rational and structured top-down type way.

The problem with this example is that it already a solved problem.
Parsing computer languages is such a well solved problem in fact that
there are tools to generate these programs automatically from terse
formal descriptions.

The real test of a design methodology is to try it on a not-so-well
solved problem.  How would you go about designing a WYSIWYG text
processing program, or a hyper-text environment, or a graphical
user interface toolkit?  (If you've done these before, substitute
something you have no IDEA about how to design.)

The pure "top-down" approach starts with some black box called "the
system" which you then break into smaller units and those into even
smaller units until you have something you can implement in a page
or two of code.  The difficulty is that the first decision you have
to make (i.e. breaking "the system" into a first level of components)
is the most far-reaching and nearly impossible to make without knowing
the whole design first.

Also, you know that users are going to demand things you can't imagine
now, so how do you go about designing your systems now so they are
expandable enough to meet the needs of the future?

Reference:  David Parnas, Paul Clements "A Rational Design Process:
		How and Why to Fake It."  IEEE trans soft-eng Feb 1986

The first part of the article is priceless.
-- 
		Stuart Ferguson		(shf@well.UUCP)
		Action by HAVOC

  parent reply	other threads:[~1989-03-11 11:15 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1813@goofy.megatest.UUCP>
1989-02-10 21:16 ` comments on comments Bob Hathaway
     [not found] ` <20233@agate.BERKELEY.EDU>
     [not found]   ` <9689@ihlpb.ATT.COM>
1989-02-23  2:15     ` Bob Hathaway
1989-02-23  7:22       ` Dave Jones
1989-02-23 22:50         ` Good Design Strategies <Was comments on comments> Bob Hathaway
1989-02-25  1:07           ` Dave Jones
1989-02-26 19:34             ` Rob Jellinghaus
1989-02-27  0:58               ` William Thomas Wolfe,2847,
1989-02-27 15:29                 ` John Baugh
1989-02-27 18:29                 ` Reuseable Ada components William Thomas Wolfe,2847,
1989-02-28  0:53             ` Good Design Strategies <Was comments on comments> Bob Hathaway
1989-02-28 22:13               ` Dave Jones
1989-03-03  5:45                 ` Bob Hathaway
1989-03-08 17:14                   ` David P. Schneider
1989-03-11 11:15                   ` Stuart H. Ferguson [this message]
1989-02-24  1:57         ` comments on comments William Thomas Wolfe,2847,
1989-02-23 20:41       ` comments on comments on reusability Rick Farris
1989-02-24  2:15         ` comments on comments on comments William Thomas Wolfe,2847,
1989-02-24  3:31           ` William A. Bralick
1989-02-24  9:24           ` Rick Farris
1989-02-25 14:28           ` Robert Claeson
1989-03-09 21:12           ` Rick Clements
1989-02-27  9:09 Good Design Strategies <Was comments on comments> Erland Sommarskog
1989-02-27 15:46 ` William Thomas Wolfe,2847,
1989-02-27 17:07   ` Mike Coffin
1989-02-28  4:16     ` Steven D. Litvintchouk
1989-02-28  4:11   ` Steven D. Litvintchouk
1989-03-04  1:25     ` Robert A. Agnew
1989-02-28 11:23   ` Mikael Eriksson
1989-03-01 22:25     ` William Thomas Wolfe,2847,
1989-03-02 22:14       ` Michael Schwartz
1989-02-28 12:22   ` Robert Claeson
1989-02-28  1:16 ` Bob Hathaway
1989-02-28  4:55   ` Rob Jellinghaus
1989-02-28 22:35     ` Dave Jones
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox