Skip to main content

Short note: software safety

Short answer

Software safety is the ability of a system to operate without causing harm to people, property, or environment, crucial in safety-critical systems. It involves hazard avoidance, detection, and damage limitation. Safety engineering includes hazard analysis, fault tree analysis, and building a safety case to argue acceptable safety.

Write a short note on software safety.

Software safety is the ability of a software-controlled system to operate, normally or abnormally, without causing harm to people, property or the environment. It matters in safety-critical systems such as aircraft control, medical devices (insulin pumps, radiotherapy machines) and railway signalling.

Key terms

  • Hazard: a condition that could lead to an accident (e.g. insulin overdose).
  • Accident (mishap): an unplanned event causing harm.
  • Risk: combination of hazard probability and severity.

Safety is different from reliability: a reliable system matches its specification, but if the specification misses a hazard, the system can be reliable and still unsafe.

Ways to achieve safety

  1. Hazard avoidance: design so the hazard cannot occur (e.g. a two-button interlock).
  2. Hazard detection and removal: detect the hazard and act before an accident happens.
  3. Damage limitation: reduce the effect of an accident (e.g. automatic shutdown, alarms).

Safety engineering activities: hazard identification and analysis, fault tree analysis, safety requirements specification, defensive programming, formal verification, safety reviews and a safety case that argues the system is acceptably safe. The Therac-25 radiation overdoses showed that software faults in such systems can be fatal.

✓ Answer checked by Claude Opus 5.5 (high effort)

All Software Engineering chapter 7 questions →