comp.lang.ada
 help / color / mirror / Atom feed
From: "Robert I. Eachus" <rieachus@comcast.net>
Subject: Re: Porting ADA source
Date: Sat, 24 Jul 2004 08:42:20 -0400
Date: 2004-07-24T08:42:20-04:00	[thread overview]
Message-ID: <7p-dnSwepb2xxJ_cRVn-iw@comcast.com> (raw)
In-Reply-To: <41024C9D.4040105@noplace.com>

Marin David Condic wrote:

> Maybe its time to dredge out the "Tower Of Babel" analogy once again? 
> Large efforts that involve lots of people and complicated decisions seem 
> to be very hard to do and sometimes become impossible. They never go 
> forward without errors. People always have their own styles and agendas 
> they try to impose on the project. No two engineers are going to agree 
> 100% of the time on the relative merits of various design decisions. 
> People will always misuse tools. Maybe that's a gas law or a "Y = MX + 
> B" kind of aspect of the universe. Ada rather deliberately set itself 
> the goal of trying to overcome the Tower Of Babel syndrome - maybe there 
> is some hubris in there?

No.  Hubris would be asserting that MY work is perfect and I don't need 
code reviews and test plans.  Having a goal of zero defects is not 
hubris, it is good (software) engineering.  With physical products, 
expecting that every widget will be perfect may result in 
overengineering.  But with software, if you have any major defects in 
the final product, the yield is zero.  So when the alternatives are 100% 
good software and 0%, the only goal that makes sense is to eliminate all 
bugs.

 From long personal experience, with Ada it is possible to have residual 
defect levels under one bug per thousand SLOC after unit test.  One 
residual bug per 10,000 SLOC is often possible, but it can only be a 
goal not a requirement.  (If you want the requirement to be zero 
residual bugs after unit test, use SPARK.  There are always some system 
level bugs that can't be caught during unit test.  The SPARK Examiner 
should catch most of these during software integration.)

If you have less than one bug per thousand SLOC, you can realistically 
expect to find and fix all remaining bugs during system test.  Also from 
painful experience, if the residual bug rate going into system test is 
above 1 per 100 SLOC (or 10 per KSLOC, which sounds worse ;-) you can't 
afford to find and fix all the bugs.  It literally is cheaper to throw 
the code away and start over if you need high quality software.

This should all be Software Engineering 101, and taught to 
undergraduates.  Unfortunately, most software engineering has to be 
learned either on the job, or in grad school after having a couple
years of industry experience.  Maybe what we need is a Software 
Economics 101 course for undergraduates in computer science AND management.

Fortunately SPARK seems to be catching on for software where reliability 
is a requirement.  However, there are times when you need more 
expressive power than SPARK currently allows, and of course, SPARK could 
not exist without a wider Ada community.

-- 

                                           Robert I. Eachus

"The flames kindled on the Fourth of July, 1776, have spread over too 
much of the globe to be extinguished by the feeble engines of despotism; 
on the contrary, they will consume these engines and all who work them." 
-- Thomas Jefferson, 1821




  reply	other threads:[~2004-07-24 12:42 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-07-19  7:42 Porting ADA source Giacomo Polizzi
2004-07-19 11:04 ` Dale Stanbrough
2004-07-19 12:14   ` Marin David Condic
2004-07-19 18:46     ` tmoran
2004-07-20  0:44       ` Marin David Condic
2004-07-20 11:18       ` Peter C. Chapin
2004-07-20 11:41         ` Martin Dowie
2004-07-20 11:59           ` Marin David Condic
2004-07-20 13:02             ` Georg Bauhaus
2004-07-20 18:49             ` Jeffrey Carter
2004-07-20 22:51             ` Randy Brukardt
2004-07-21  0:35               ` Robert I. Eachus
2004-07-21 12:24                 ` Marin David Condic
2004-07-22 22:48                   ` Robert I. Eachus
2004-07-23 13:00                     ` Marin David Condic
2004-07-24  3:04                       ` Robert I. Eachus
2004-07-24 11:48                         ` Marin David Condic
2004-07-24 12:42                           ` Robert I. Eachus [this message]
2004-07-26 18:39                             ` Marin David Condic
2004-08-17  4:28               ` Ronald Price
2004-08-17 11:28                 ` Frank J. Lhota
2004-07-19 11:09 ` Adrian Knoth
2004-07-19 12:23 ` Porting Ada source Jacob Sparre Andersen
2004-07-19 18:05   ` Jean-Pierre Rosen
2004-07-19 13:39 ` Porting ADA source Steve
2004-07-20  0:54   ` Marin David Condic
2004-07-19 18:05 ` Martin Dowie
2004-07-19 19:33   ` Wes Groleau
2004-07-19 20:03     ` Larry Kilgallen
2004-07-19 20:29       ` Wes Groleau
2004-07-20 16:13         ` Martin Krischik
2004-07-19 21:36     ` Martin Dowie
2004-07-20 12:14       ` Frank J. Lhota
2004-07-20 12:27         ` Vinzent 'Gadget' Hoefler
2004-07-20 13:13 ` Peter Amey
2004-07-21  6:20 ` Volkert
2004-07-31 16:04 ` Richard  Riehle
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox