Wednesday, March 9, 2011

Therac-25 accidents

       Therac-25 machine, built to treat cancer patients, was released to the market by Atomic Energy Canada, Limited. Four years later the eleven machines in use were taken offline due to rare, but lethal, malfunctions caused by a miscommunication between the software and the hardware. The machines were fitted with safety features required by the FDA and brought back online.
       The Therac-25 accidents were fairly unique in having software coding errors involved -- most computer-related accidents have not involved coding errors but rather errors in the software requirements such as omissions and mishandled environmental conditions and system states. Although using good basic software-engineering practices will not prevent all software errors, it is certainly required as a minimum. Some companies introducing software into their systems for the first time do not take software engineering as seriously as they should. Basic software-engineering principles that apparently were violated with the Therac-25 include:

  • Documentation should not be an afterthought.
  • Software quality assurance practices and standards should be established.
  • Designs should be kept simple.
  • Ways to get information about errors -- for example, software audit trails -- should be designed into the software from the beginning.
  • The software should be subjected to extensive testing and formal analysis at the module and software level; system testing alone is not adequate.


No comments:

Post a Comment