Newsgroups: comp.lang.misc,comp.programming,comp.software-eng,comp.ai
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!news2.near.net!howland.reston.ans.net!cs.utexas.edu!swrinde!sgiblab!pacbell.com!att-out!walter!news
From: haim@cc.bellcore.com (Haim Kilov)
Subject: Re: A new approach to software engineering!
Message-ID: <D19y2p.3L1@walter.bellcore.com>
X-Posted-From: InterNews 1.0.1@haim.ims.bellcore.com
Lines: 40
Sender: -Not-Authenticated-[8765]
Nntp-Posting-Host: haim.ims.bellcore.com
Organization: Bellcore
References: <D0wsx8.6zC@prl.philips.nl>  <netnewsD18uuF.Ju1@netcom.com>
Date: Fri, 23 Dec 1994 17:32:49 GMT
Xdisclaimer: No attempt was made to authenticate the sender's name.
Xref: glinda.oz.cs.cmu.edu comp.lang.misc:19722 comp.programming:13639 comp.software-eng:28912 comp.ai:26055

In article <netnewsD18uuF.Ju1@netcom.com>
scottw@advsysres.com (Scott A. Whitmire) writes:

> 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.

Hear, hear! The key word (in fact, the key concept) is "understanding".
I totally agree. I've written some stuff about these issues:

H.Kilov. Understand -> Specify -> Reuse: Precise specification of
behavior and relationships. In: Proceedings of the IFIP/IEEE
International Workshop on Distributed Systems: Operation and Management
(DSOM 92). Munich, Germany, October 12-13, 1992.

H.Kilov. On understanding hypertext: are links essential? ACM Software
Engineering Notes, Vol. 19, No. 1 (January 1994), p. 30.

H.Kilov, J.Ross. Information modeling: an object-oriented approach.
Prentice-Hall, 1994.

--and the specification has to be abstract (e.g.,
implementation-independent: requirements should not be based on
solutions) and precise (no handwaving, no defaults, etc.). Developing a
specification is a _very_ difficult activity where a human cannot be
replaced by a CASE tool or by a sequence of 55 steps to write a good
specification...

Hope this helps.

-Haim Kilov
haim@cc.bellcore.com
