In late 2011 RTCA's DO-178B received a significant update to bring it in line with modern software development practices. DO-178B replaced the previous DO-178A standard in 1992 and has been used by a number of aviation authorities as the basis on which they base their certification of civil aviation software.
Over the past few years DO-178B has received criticism over the fact that it does not address modern software development techniques such as object orientation and the use of modelling languages like UML.
Like its predecessors, DO-178C, published in Europe by EUROCAE as ED-12C, defines 5 levels of software based on the effect of system failure:
A - Catastrophic (inability to safely fly aircraft)
B - Hazardous (serious or fatal injuries to some)
C - Major (discomfort and possible injuries)
D - Minor (some inconvenience to occupants)
E - No Effect (not addressed in DO-178B)
Each of these levels identifies a number of objectives which must be satisfied before the software can be certified. These range from 66 at level A to 28 at level D. These are further divided by identified processes which must satisfy between 1 and 13 of the objectives. These processes are:
DO-178C is a non-prescriptive standard which means that it only identifies the objectives to be met and allows individual projects to decide how they achieve that.
All of the above remains consistent between DO-178B and C with only minor changes to clarify the use of terminology (e.g. purpose, goal, objective, activity etc.). DO-178C, however, aims to address modern software development techniques such as the use of:
Given the recent report detailing the system failure and pilot error that caused the loss of 228 lives on an Air FranceAirbus A330 in 2009 one hopes that, once DO178C has been fully implemented by the worlds aviation authorities, future aircraft systems will provide even greater reliability thereby minimising the need for human intervention.