From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=0.6 required=5.0 tests=BAYES_05,INVALID_DATE, MSGID_SHORT autolearn=no autolearn_force=no version=3.4.4 Xref: utzoo comp.software-eng:1184 comp.lang.ada:2087 Path: utzoo!attcan!uunet!lll-winken!ames!mailrus!iuvax!purdue!decwrl!megatest!djones From: djones@megatest.UUCP (Dave Jones) Newsgroups: comp.software-eng,comp.lang.ada Subject: Re: Good Design Strategies Message-ID: <2542@goofy.megatest.UUCP> Date: 28 Feb 89 22:13:27 GMT References: <6126@medusa.cs.purdue.edu> Organization: Megatest Corporation, San Jose, Ca List-Id: >From article <6126@medusa.cs.purdue.edu>, by rjh@cs.purdue.EDU (Bob Hathaway): > > We agree the components are desirable but a modular design should get you > there quickly too. > I'm not willing to give over the term "modular design" to the piecewise refinement school. I design modules (or "classes", or "Atds", or "components" or whatever). Sometimes, but seldom, I actually do use piecewise refinement as an design or implementation technique. The modules are the "what". The piecewise refinement is the "how". If you get good modules from piecewise refinement, good for you! I've seldom seen anybody else pull it off, but that's no reason to presume that it doesn't work for you. My assertion -- must I repeat it again? -- is that good modules are more likely to come from a bottom-up approach. Designing the top levels first is just too darn risky for my tastes. > By breaking the system into smaller pieces with each > piece providing some well defined and more manageable part of the system, > the components should emerge. > Components might emerge. But how they emerge may be dictated by the top level. That's what I don't want. The top level might have to change. Why not just begin by designing components? That way, they don't have to "emerge". They are part and parcel of the design itself. > Not only for the objects, but for the software tools as well. I've never seen it happen that way, but then I've only been doing this stuff for eighteen years. Maybe next week. :-) ... I'm going to get out of the discussion for a while. I've been spending too much time on this as it is. Let me just say one thing: I've known some people -- and be assured that I do not intend to suggest that Mr. Hathaway is in this camp -- who have preached piecewise refinement as a dogma for so long that it would take something akin to a religious conversion to get them even to consider other techniques. I am trying to point that it just that: a technique. The product is the thing. We are sometimes free to choose the best methods on a product-by-product basis. Which method is best depends on the job at hand. Top-down design and piecewise refinement is, in my opinion, seldom the best technique to use.