Secure Coding mailing list archives

RE: Bug-free software (was: Re rant about viruses on VMS...)


From: Andreas Saurwein <saurwein () uniwares com>
Date: Thu, 05 Feb 2004 22:03:54 +0000


At 5/2/2004 17:45 Thursday, David Crocker wrote:

There can of course be no absolute guarantee that any kind of system is
completely free from defects. ...
Similarly, it is possible to build software that is, for practical 
purposes, bug
free (rather than building software that is almost certain to contain bugs 
as is

usually the case).


So we are in reality talking about different levels of "bugfree":
* specification
* implementation
* operation

How does this differ? As I see it:
* Bugfree at the specification level would mean that the software complies 
to the specification, and works bugfree according to the specification 
parameters.
* Bugfree at the implementation level would mean that the code is 
technically bugfree
* Bugfree at the operation level would mean that the program is bugfree 
whatever you do with it


(I hope I made it understandable, am still having sometimes troubles to 
express my thoughts in english.)


If just one of these three levels of bugfree breaks, the program will 
probably sooner or later cause problems.


We can compare this to building a house - even a statically 100% correct 
design (implementation) may still be unusable because the specification is 
incorrect or not fulfilled, and also may crumble after a time because of 
shortcomings in the materials (operation).


You can write a technically 100% correct and bugfree code, yet it does not 
work because of operational parameters or missing specifications. Is it 
still bugfree then or not?
Most string handling routines are technically bugfree in the given 
specification, yet they cause problems because of operational failures 
(parameters).


During software development these three levels are usually worked out by 
different people with different development skills.


cheers
Andreas 









Current thread: