Newsgroups: comp.edu,comp.object,comp.lang.c++,comp.lang.smalltalk,comp.software.testing
Path: cantaloupe.srv.cs.cmu.edu!rochester!udel!gatech!newsfeed.internetmci.com!salliemae!uunet!in1.uu.net!projtech!steve
From: steve@projtech.com (Steve Mellor)
Subject: Re: Software Engineering Doesn't Exist [was: C Hackers]
Message-ID: <1995Jul28.213754.1451@projtech.com>
Organization: Project Technology, Inc., Berkeley, CA
References: <jnedzelDC2os8.FsM@netcom.com> <nntpuserDC3pG4.CxJ@netcom.com> <3uu6sg$c72@inforamp.net>
Date: Fri, 28 Jul 1995 21:37:54 GMT
Lines: 47
Xref: glinda.oz.cs.cmu.edu comp.edu:13614 comp.object:35915 comp.lang.c++:141228 comp.lang.smalltalk:26459 comp.software.testing:5457

erc@cinenet.net (Eric Smith) writes:
> Steve Mellor <steve@projtech.com> wrote:
> >designer.  Do you want to be told "The requirement is steel" or do
> >you want to the freedom to find the best material that meets the
> >true requirements??
> 
> "Steel" is like a software package.  That is, it's like a black box
> with certain properties.  You're saying you want to work with those
> properties rather than with that black box.  But the problem is that
> there are too many properties to make it convenient to work with them
> as a package unless you have a black box such as "steel".

Thank you!  Thank you for distinguishing between knowledge about the
thing--in this example steel--and properties of the thing, in the
example, density, stress, strain etc.
And you have a good point: One name for the collection of _properties_
could be "steel", but let's understand that this stands for "any 
steel-like substance" within constraints that you delineate later.

> For example, if you substitute a plastic for steel, you might discover
> some property of steel you were relying on without knowing it.  Your
> past experience may have told you steel worked well for such designs,
> but changing the material might tell you more of the reasons why it
> worked than just the reasons you assumed.

Agreed.  Which says that if we wish to approach software construction
in the way I've described that we need to have _very good_ ways of
describing properties and maintaining these over years.

> Therefore, when you change the material, you have a new design, which
> may or may not work reliably the way the old design worked.  This is
> very important in bridge design, because it takes decades to test a
> bridge.  It's important to experiment with designs, but it's important
> to know you are doing so.
> 

Agreed again.  But I I would change the first use of the word "design"
to "system" (to make the implied analogy closer to software).
I would add that it appears to take decades  to debug some software.
Another reason why it has to robust and reusable.

-- 
Steve Mellor                                 steve@projtech.com
Project Technology, Inc.               ...!uunet!projtech!steve
2560 Ninth Street, Suite 214             Voice: +1 510-845-1484
Berkeley CA 94710, USA                     Fax: +1 510-845-1075
 **** Training and Consulting in the Shlaer-Mellor method ****
