[LINK] What's a reasonable level of code-checking?

Deus Ex Machina vicc at cia.com.au
Thu Aug 17 18:35:27 AEST 2006


Bernard Robertson-Dunn [brd at iimetro.com.au] wrote:
> David Lochrin wrote:
> 
> >   Developing reliable and properly engineered software in any environment 
> >   requires an appropriate end-to-end "process" which begins with a 
> >   specification of the process itself, continues with development of 
> >   formal software requirements, and extends through to testing & 
> >   maintenance.  Properly developed business software is no less 
> >   "engineered" than biomedical or other embedded software, whether or not 
> >   the physical world forms part of the system.
> 
> Where do you draw the line when it comes to software?
> 
> Is a program written in Excel and/or its macro language, software?
> 
> I've seen many examples of Excel programs that are not properly 
> engineered. The Federal budget for example.

nasa wasnt able to verify the tiny programs on the appolo lunar module where correct.
the possible interaction where too complicated to verify in any reasonable time. 

its still very very very difficult to  get it right.

http://www.space.com/businesstechnology/technology/mpl_software_crash_000331.html

"The software problem that likely crashed the Mars Polar Lander into the
Red Planets frozen ground is striking mainly for its obviousness,
according to a software safety expert at the Massachusetts Institute of
Technology (MIT).

The problems that NASA-sponsored investigation panels blame for the
landers failure, "are well known as difficult parts of the
software-engineering process," wrote Nancy Leveson in an e-mail
correspondence with SPACE.com. Leveson is a professor of aeronautics and
astronautics at MIT. She specializes in making critical software systems
safe and robust."

...
"The error was traced to a single bad line of software code. But that
trouble spot is just a symptom of a much larger problem -- software
systems are getting so complex, they are becoming unmanageable, Leveson
said."

the complexity of software means that bugs are a cost perfomance trade off.
there is simply no way to solve a programs bug in any meanignful time
frame or cost frame.

the problem does NOT resolve with a hierchical solution. because humans
are simply not capable of visualising and therefor predicting
interactions and behavior on the scale of a reasonable size program.

various techniques like modularisation and compartmentalisation and reuse have helped but
havent solved the problem. 

if one person cant encapsluate the entire program in one head, then interactions and
behaviors will be missed by being in separate heads.

software develop is part science but still very much an art.

Vic





More information about the Link mailing list