|
Herbert Hecht, Myron Hecht, How Reliable are Requirements for Reliable Software?,
DoD Data & Analysis Center for Software Current Awareness Nessletter
Missing, inaccurate or incomplete requirements lead to errors in software development
and usually also prevent these errors from being detected during the testing phase.
Functional testing is based on the requirements; a missing or inaccurate one will
not be detected. Structural testing is based on the developed code; an unstated
requirement is unlikely to be implemented and will not be detected. Operational
failures due to omissions or inaccuracies cause major economic losses or even casualties,
and corrective measures are far more costly than they would be if the defect had
been caught earlier. A distinguishing feature of reliable software is that it contains
fault tolerance provisions, such as alternative exits when the assertions fail,
roll-back and re-try, recovery blocks, or multi-version programming. In most cases
these provisions prevent or attenuate the effect of hardware and software failures
that would have occurred in their absence, but there have also been incidents where
the fault tolerance objectives have not been achieved and the reasons for the failure
have usually included missing or ill-formulated requirements.
Click to Download
|
|