Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!think.com!spool.mu.edu!munnari.oz.au!mel.dit.csiro.au!yarra!bacchus!matt From: matt@bacchus.esa.oz (Matt Atterbury) Newsgroups: comp.software-eng Subject: Re: Modifiability Message-ID: Date: 10 Jun 91 03:54:54 GMT Article-I.D.: henry.MATT.91Jun10135455 References: <2192@Terra.cc.brunel.ac.uk> <1991Jun5.201807.13286@netcom.COM> <62683@siemens.siemens.com> <11714@ncar.ucar.edu> Sender: matt@bacchus.esa.oz.au Distribution: comp.software-eng Organization: Expert Solutions Australia. Lines: 49 In-reply-to: ftower@ncar.ucar.EDU's message of 6 Jun 91 21:10:39 GMT In article <11714@ncar.ucar.edu> ftower@ncar.ucar.EDU (Francis Tower) writes: In general, the traditional waterfall life-cycle fails when maintenance is concerned because those fine, fat documents which tell managers that a` phase of the development is finished are left to gather dust. ... This classic cycle is discussed by Jonathan Grudin in April '91's 'Computer' [published by the IEEE computer society]. He puts some of the blame for the failure of the waterfall life-cycle on the fact that systems are now highly interactive so cannot be formally specified properly _up-front_ [i.e. there has to be interaction between developer and user to determine the UI, although the functionality can be specified as long as it is not too affected by the UI]. Balzer, Cheatham and Green in their classic paper 'Software Technology in the 1990's: Using a New Paradigm' (IEEE Comp. Nov 1983) proposed that a program's specification be formalized and that the implementation be mostly automated. Jackson [JSP/JSD] also argues for "compilable designs", basically saying that assuming one can come up with an implementation _independent_ design, it would be logical to assume that this can then be compiled into whatever language you like. I don't know his opinions on compilable specifications, but IMHO, a specification cannot be compiled precisely because it is that: a definition of what is to be done, NOT how to do it. Can you see how to compile a VDM spec into C ? (BTW, I cannot believe the D in VDM stands for Design! never in a million years can a VDM spec be called a _design_ IMHO!!!!). The problem then of maintainability would be pushed into the specification phase. Where it belongs, since assuming correctness of the implementation, subsequent changes must be due to changes in the desired specification. ... If you are not using some form of formal specification then the longer and more frequently a program is modified, the more calcified it becomes. Unless you have a _compilable_ formal specification, you still have these problems, since otherwise you haven't taken anything out of the loop - you still have to design, code, test, debug you implementation. -- ------------------------------------------------------------------------------- Matt Atterbury [matt@bacchus.esa.oz.au] Expert Solutions Australia, Melbourne UUCP: ...!uunet!munnari!matt@bacchus.esa.oz.au "klaatu barada nikto" or: ...!uunet!murtoa!bacchus.esa.oz.au!matt "consider this a divorce" ARPA: matt%bacchus.esa.oz.AU@uunet.UU.NET "life? don't talk to me about life!"