Newsgroups: comp.lang.misc,comp.programming,comp.software-eng,comp.ai
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!news2.near.net!news.mathworks.com!hookup!swrinde!elroy.jpl.nasa.gov!decwrl!netcomsv!netcom.com!jaffe
From: jaffe@netcom.com (David H. Jaffe)
Subject: Re: A new approach to software engineering!
Message-ID: <jaffeD1BrEA.Et6@netcom.com>
Followup-To: comp.lang.misc,comp.programming,comp.software-eng,comp.ai
Organization: NETCOM On-line Communication Services (408 261-4700 guest)
X-Newsreader: TIN [version 1.2 PL1]
References: <D0wsx8.6zC@prl.philips.nl> <netnewsD18uuF.Ju1@netcom.com>
Date: Sat, 24 Dec 1994 17:03:46 GMT
Lines: 49
Xref: glinda.oz.cs.cmu.edu comp.lang.misc:19733 comp.programming:13648 comp.software-eng:28925 comp.ai:26071

Scott A. Whitmire (scottw@advsysres.com) wrote:
: In <D0wsx8.6zC@prl.philips.nl>, pvloon@prl.philips.nl (Paul van Loon) writes:
[snip - original post]

: First, my experience indicates that once a programmer puts code into the
: editor, the hard part of the task is finished.  Just as when the writer begins
: to put words on the page (or into the word processor), the hard part of
: writing is finished.

: In every application I've built over the last 15 years, the programming has
: been the easiest, if not the most tedious part, of development.  The hardest
: activity is understanding the problem in the first place.  Now, this is a point
: where domain experts may have a leg up on the rest of us, but often as not, 
: they don't have a deep understanding of their domain either.

Moreover, it would be a big surprise if they were any better at 
choosing, organizing and expressing the right functions,
entities and behaviours to describe formally in the first place.

[snip - more very reasonable response]
: The next most difficult task is to translate the understanding of a problem
: into a rational software architecture, then into a design.

: Software design is the most complex endeavor we've ever undertaken.  We are
: trying to describe something we can't truly visualize to other people.  One
: of the reasons that high-leve CASE tools have not worked as well as they
: might is the difficulty we have communicating designs to one another, and to
: our tools.

: Unskilled designers can do more damage to an application that any number of
: unskilled programmers.  End users can make computers do things with good tools
: (programming), but they generally cannot make them to those things well, or
: sometimes even make them do the right things.

: I almost feel that software engineering begins when the user requests a
: solution to a problem, and ends when it's time to start cutting source code.
: Programming is construction, not engineering.  Deciding WHAT to program,
: and HOW to program it, is engineering.

: Any comments?

I think verification and validation play a larger role and are a key part 
of the front end activities. Otherwise, I agree.

David Jaffe
jaffe@netcom.com
-- 
David Jaffe
jaffe@netcom.com
