verification
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
verification [2007/11/01 14:03] – franck | verification [2007/11/01 14:13] (current) – franck | ||
---|---|---|---|
Line 50: | Line 50: | ||
Subject: Soviet Mars Probe\\ | Subject: Soviet Mars Probe\\ | ||
The Soviet Mars probe was mistakenly ordered to ‘commit suicide’ when ground control beamed up a 20 to 30 page message in which a single character was inadvertently omitted. The change in program was required because the Phobos 1 control had been transferred from a command center in the Crimea to a new facility near Moscow. ‘The [changes] would not have been required if the controller had been working the computer in Crimea.’ The commands caused the spacecraft' | The Soviet Mars probe was mistakenly ordered to ‘commit suicide’ when ground control beamed up a 20 to 30 page message in which a single character was inadvertently omitted. The change in program was required because the Phobos 1 control had been transferred from a command center in the Crimea to a new facility near Moscow. ‘The [changes] would not have been required if the controller had been working the computer in Crimea.’ The commands caused the spacecraft' | ||
+ | |||
==== The Ariane 5 failure ==== | ==== The Ariane 5 failure ==== | ||
- | Quoted from the report of the Ariane Inquiry Board [Lions, 1996]: | + | Quoted from the report of the Ariane Inquiry Board: |
“On 4 June 1996, the maiden flight of the Ariane 5 launcher ended in a failure. Only about 40 seconds after initiation of the flight sequence, at an altitude of about 3700 m, the launcher | “On 4 June 1996, the maiden flight of the Ariane 5 launcher ended in a failure. Only about 40 seconds after initiation of the flight sequence, at an altitude of about 3700 m, the launcher | ||
Line 124: | Line 125: | ||
Techniques that are lacking, notes Price, include the use of formal methodologies for designing and writing software." | Techniques that are lacking, notes Price, include the use of formal methodologies for designing and writing software." | ||
- | ==== Ambulance | + | |
+ | ==== Ambulance | ||
In November 1992, the computerized dispatch system for the London (England) Ambulance Service, broke down suddenly and “locked up altogether”, | In November 1992, the computerized dispatch system for the London (England) Ambulance Service, broke down suddenly and “locked up altogether”, | ||
Line 133: | Line 135: | ||
gradually used up all available memory thus causing the system to crash. This programming error should not have occurred and was caused by carelessness and lack of quality assurance | gradually used up all available memory thus causing the system to crash. This programming error should not have occurred and was caused by carelessness and lack of quality assurance | ||
of program code changes. Given the nature of the fault it is unlikely that it would have been detected through conventional programmer or user testing." | of program code changes. Given the nature of the fault it is unlikely that it would have been detected through conventional programmer or user testing." | ||
+ | |||
==== Software that kills ==== | ==== Software that kills ==== | ||
Line 148: | Line 151: | ||
Levenson and Turner warn against simply blaming tragedies such as the Therac-25 accidents on software errors alone—they argue for a deeper analysis of “organizational, | Levenson and Turner warn against simply blaming tragedies such as the Therac-25 accidents on software errors alone—they argue for a deeper analysis of “organizational, | ||
+ | True enough, but one of the underlying causes of unsafe software may be the general reluctance to apply formal methods and verification techniques, usually on the grounds that they are too difficult to automate and hence cannot be applied to “real code”. One purpose of this text is to argue by example against the validity of this excuse—to show that through the use of appropriate tools, portions of code can be verified automatically | ||
+ | or semi-automatically, | ||
+ | to check for at least those spelling errors which the dictionary can catch, so we should — in the future, if not today — expect programmers to routinely check or generate their code with software verification tools to catch and eliminate at least those errors which the tools can prevent. Even then programmers will not succeed in stamping out that vexatious and stubborn “last bug”, but at least its available hiding places will grow smaller, and both money and lives may be saved. |
verification.1193925781.txt.gz · Last modified: by franck