.comment-link {margin-left:.6em;}

Oracle Sponge -- Now Moved To Wordpress

Please use http://oraclesponge.wordpress.com

Thursday, January 05, 2006

(Almost) Error Free Code

Picked up from Slashdot, an article at IEEE about a British software house delivering code with less than one error per ten thousand SLOCs, albeit at a premium of up to 50% higher costs than regular development. Their "secret" is to return to the roots of software engineering by describing the application in terms of a a formal specification language Z ("zed") based on set theory and predicate logic before subjecting it to mathematical analysis to identify ambiguities and inconsistencies, and only then converting it to code (which itself becomes a relatively trivial task). Incidentally, they code in Spark, a descendant of Ada, and if you follow that link to the Wikipedia article you'll see an example of some excellent commenting techniques under "Annotation Examples".

Accurate and complete requirements gathering is emphasised, as is prototyping as a means of requirements feedback to the customer. In an example development described in the article the developed software showed just four faults in the first year of operation out of 100,000 SLOC.

I found the IEEE article rather inspiring, although at the end the comments on the willingness of programmers to use formal methods and logic are depressingly familiar.

There are more details in a presentation by Praxis here.


At 12:20 AM, Blogger Noons said...

Actually, my guess is that if proper engineering methods are followed, most if not all bugs could be eradicated at design stage. With a consequent improvement of quality.

A BIG problem of current development projects is that no one is actually measuring the results obtained and their quality. In most cases, glaring design errors are glossed over or "managed" by "spin-experts" rather than addressed as they should be: as errors!

The result is a continuous lowering of quality expectations. I see no way out of this loop unless clients start to ask very serious questions about what's going on.

And no, it's not more cost-effective to do projects the way they are handled nowadays: I see no proof of that anywhere, although every project manager seems to be a "financial expert" nowadays...


Post a Comment

Links to this post:

Create a Link

<< Home