Software is assuming an increasing role in the control of potentially dangerous equipment. This applies to fly-by-wire aircraft, nuclear power plants, industrial control systems, and smaller-scale devices, such as drive-by-wire automobiles, microwave ovens, and medical equipment. Despite this trend toward relying on software to provide safe and effective control of hazardous materials and systems, very few opportunities exist for engineers to get training and education in even the basic concepts of safety engineering. This paper introduces the engineering of safe and reliable systems, particularly those that depend heavily on software. Basic safety concepts are discussed and analytical methods are provided to improve and ascertain the safety of critical systems.
Examples illustrate the analytical and procedural methods.