Software Hazard Analysis Techniques

As computers are increasingly being used to monitor and/or control systems where software faults or deficiencies could lead to serious consequences such as loss of life, injury, or loss of property, concern is mounting about how to ensure that these computer systems are safe. If it were possible to guarantee that large software systems are correct†, there would be no problem. However, the state of the art for building large software systems does not allow us to achieve this degree of perfection. In fact, we may be orders of magnitude away from the reliability requirements (e.g. 10−7 to 10−9) for such safety-critical systems as aircraft, nuclear power plants, military systems, aerospace systems [Dunham and Knight (1981)].