Safety critical systems have to be reliable and work exactly as specified without unintended side-effects. To achieve this more formal development processes are used to design safety critical systems. Operating software typically uses only a well defined subset of the implementation language to avoid problematic or difficult to use language features. This article is designed to give a brief introduction to some of the various standards that are available to address the needs of safety critical development.
DO-178B is titled 'Software Considerations in Airborne Systems and Equipment Certification' and is a guide for software development published by RTCA, Incorporated. The FAA accepts use of DO-178B as a means of certifying avionics software. The required Design Assurance Level (DAL) is determined from the safety assessment process and hazard analysis by examining the effects of a failure condition in the system. The failure conditions are categorized by their possible effects on the aircraft, crew and passengers.
EN54 is used by the fire protection industry. This consists of separate parts, each covering particular types of equipment and covers both the equipment and operating software. EN54 Part 2 details the requirements for fire control panels.
IEC 60601 is the accepted standard for medical equipment and compliance with IEC60601 has become a requirement for the commercialization of electrical medical equipment in many countries. The third edition of this standard, IEC60601-1:2005 requires equipment manufacturers to use a formal risk management procedure that follows ISO 14971. Subsections of this standard, numbered 60601-2-xx where xx is a two digit number, specify the requirements of specific items of medical equipment.
IEC 60730 is a new standard to ensure safe and reliable operation of household appliances. There are three classes A, B and C with most household appliances falling into the class B category. Annex H of the standard defines tests and diagnostics intended to ensure the safe operation of embedded devices.
IEC 61508 is titled 'Functional safety of electrical/electronic/programmable electronic safety-related systems' and covers electrical, electronic and programmable electronic safety related systems. It details requirements that safety critical systems are designed to an appropriate Safety Integrity Level (SIL). There are four SIL levels with SIL1 having the least requirements and SIL4 used to protect the highest risks. More information is available from the IEC web site here.
IEC 61511 is an adaptation of IEC 61508 to the needs of the Process Industry.
The IEC 62304 standard provides a framework for the safe design and maintenance of medical device software. This standard identifies five main processes - software development, software maintenance, software risk-management, software configuration management and software problem resolution.
MISRA is the Motor Industry Software Reliability Association and MISRA-C:2012 is their latest set of guidelines for the use of the C language in critical systems and is widely used as a coding standard outside of the motor industry in critical systems development. MISRA-C++:2008 is also available as a coding standard for development of systems software using the C++ language.
In addition to the standards and coding guidelines detailed above there are numerous industry-specific requirements documents.