Do you feel safe when you get on an airplane? How about a train? When you use your microwave oven? Each of these systems has the potential to do harm, cause injury or death, each is in widespread use, and each is an embedded system under computer control. As the complexity of virtually all systems increases exponentially, computers (and embedded software) end up controlling them in order to manage this complexity.

All software contains defects, and in safety critical embedded systems, defects can lead to serious injury and loss of life. Even with the best of intentions, the ramifications of system safety must be carefully thought through in order to create systems that don’t cause injury or loss of life.

This paper discusses safety-critical systems development, covering definitions of safety-related terms, types of safety measures that systems developers must consider, various safety architectures, safety development processes, and safety guidelines.