Standards and best practices are always important in software development, in order to avoid defects, errors and bugs.
When developing highly complex embedded software for safety-intensive environments, however, standards become even more critical. Avionics software, for example, carries on its shoulders the lives of pilots and passengers.
For this reason, the Radio Technical Commission for Aeronautics (RTCA) developed the standard known as DO-178B.
Created in conjunction with the avionics industry, DO-178B lays out of set of guidelines for the development of aerospace software, designed to ensure that embedded software created for use in airborne systems complies with standards of airworthiness.
DO-178B covers the various stages of avionics software development. In order for a piece of software to be certified, documents and records must be presented that demonstrate the software's reliability.
Certification can be granted at a number of different levels - the higher the level, the more rigorous the certification requirements. The levels - called A, B, C, D and E - correspond to the potential consequences of software failure - catastrophic, hazardous-sever, major, minor or no effect.
In order to ensure that their software is robust and secure, many avionics software developers utilize automated embedded software testing tools that check for errors while the development process is still underway.
See also: ED-12B