The Therac-25: A Software Fatal Failure
The Therac-25: A Software Fatal Failure
THE THERAC-25
In 1976, AECL develops the revolutionary "double pass" accelerator which leads to
the development of Therac-25.
Beams kill (or retard the growth of) the cancerous tissues
+ Accident with Therac-25
At East Texas Cancer Center in Tyler, Texas, a
A few days after the unit was put back into operation, another patient
complained that his face felt like it was on fire.
Another potential overdose of radiation beam by Therac-25.
At Washington facility;
Operator used hand controls to rotate table to field-light position & check alignment
Operator turned beam on, machine showed no dose and displayed fleeting message
Operator proceeded from pause; After another machine pause, operator reentered
room
+ Accidents Race Condition
Source: http://www.cs.jhu.edu
+ Root Cause Analysis of the Accidents
Software code was not independently reviewed.
AECL did not consider the design of the software during its assessment of how the
machine might produce the desired results and what failure modes existed. –No proper
risk assessment followed.
The system noticed that something was wrong and halted the X-ray beam, but merely
displayed the word "MALFUNCTION" followed by a number from 1 to 64. The user
manual did not explain or even address the error codes, so the operator pressed the P key
to override the warning and proceed anyway.
AECL personnel, as well as machine operators, initially did not believe complaints. This
was likely due to overconfidence
AECL had never tested the Therac-25 with the combination of software and hardware
until it was assembled at the hospital.
The problem was a race condition produced by a flaw in the software programming.
Management inadequacies and lack of procedures for following through on all reported
incident.
The engineer had reused software from older models. These models had hardware
interlocks that masked their software defects
+ Requirements Issues
Error messages provided by Therac-25 monitor are not helpful to operators
Machine pauses treatment but does not indicate reason why
The equipment control task did not properly synchronize with the operator interface
task, so that race conditions occurred if the operator changed the setup too quickly.
There were no independent checks that the software was operating correctly
(verification)
+
Requirements Issues … contd
Complacency
http://en.wikipedia.org/wiki/Therac-25
Leveson, Nancy G., and Clark S. Turner. "An Investigation of the Therac-
25 Accidents." Computer July 1993 : 18-41.