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

Advertisements

One thought on “(Almost) Error Free Code

  1. 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…–>

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s