DO-178B
DO-178B, Software Considerations in Airborne Systems and Equipment Certification is a guideline dealing with the safety of safety-critical software used in certain airborne systems. It was jointly developed by the safety-critical working group RTCA SC-167 of the Radio Technical Commission for Aeronautics and WG-12 of the European Organisation for Civil Aviation Equipment. RTCA published the document as RTCA/DO-178B, while EUROCAE published the document as ED-12B. Although technically a guideline, it was a de facto standard for developing avionics software systems until it was replaced in 2012 by DO-178C.
The Federal Aviation Administration applies DO-178B as the document it uses for guidance to determine if the software will perform reliably in an airborne environment, when specified by the Technical Standard Order for which certification is sought. In the United States, the introduction of TSOs into the airworthiness certification process, and by extension DO-178B, is explicitly established in Title 14: Aeronautics and Space of the Code of Federal Regulations, also known as the Federal Aviation Regulations, Part 21, Subpart O.
Software level
The software level, also termed the design assurance level or item development assurance level as defined in ARP4754, 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 effects on the aircraft, crew, and passengers.- Catastrophic – Failure may cause a loss of life. Error or loss of critical function required to safely fly and land aircraft.
- Hazardous – Failure has a large negative impact on safety or performance, or reduces the ability of the crew to operate the aircraft due to physical distress or a higher workload, or causes serious injuries among the passengers.
- Major – Failure is significant, but has a lesser impact than a hazardous failure or significantly increases crew workload
- Minor – Failure is noticeable, but has a lesser impact than a major failure
- No effect – Failure has no impact on safety, aircraft operation, or crew workload.
The number of objectives to be satisfied is determined by the software level A-E. The phrase "with independence" refers to a separation of responsibilities where the objectivity of the verification and validation processes is ensured by virtue of their "independence" from the software development team. For objectives that must be satisfied with independence, the person verifying the item may not be the person who authored the item and this separation must be clearly documented. In some cases, an automated tool may be equivalent to independence. However, the tool itself must then be qualified if it substitutes for human review.
| Level | Failure condition | Objectives | With independence | Failure rate |
| A | Catastrophic | 66 | 25 | |
| B | Hazardous | 65 | 14 | |
| C | Major | 57 | 2 | |
| D | Minor | 28 | 2 | |
| E | No effect | 0 | 0 | n/a |
Processes and documents
Processes are intended to support the objectives, according to the software level. Processes are described as abstract areas of work in DO-178B, and it is up to the planners of a real project to define and document the specifics of how a process will be carried out. On a real project, the actual activities that will be done in the context of a process must be shown to support the objectives. These activities are defined by the project planners as part of the Planning process.This objective-based nature of DO-178B allows a great deal of flexibility in regard to following different styles of software life cycle. Once an activity within a process has been defined, it is generally expected that the project respect that documented activity within its process. Furthermore, processes must have well defined entry and exit criteria, according to DO-178B, and a project must show that it is respecting those criteria as it performs the activities in the process.
The flexible nature of DO-178B's processes and entry/exit criteria make it difficult to implement the first time, because these aspects are abstract and there is no "base set" of activities from which to work. The intention of DO-178B was not to be prescriptive. There are many possible and acceptable ways for a real project to define these aspects. This can be difficult the first time a company attempts to develop a civil avionics system under this standard, and has created a niche market for DO-178B training and consulting.
For a generic DO-178B based process, a is provided including the stages of involvement defined by FAA on the "Guidance and Job Aids for Software and Complex Electronic Hardware".
Planning
System requirements are typically input to the entire project.The last 3 documents are not required for software level D..
Development
DO-178B is not intended as a software development standard; it is software assurance using a set of tasks to meet objectives and levels of rigor.The development process output documents:
- Software requirements data
- Software design description
- Source code
- Executable object code
Typically used software development process:
- Waterfall model
- Spiral model
- V model
Verification
- Software verification cases and procedures
- Software verification results :
- *Review of all requirements, design and code
- *Testing of executable object code
- *Code coverage analysis
This process typically also involves:
- Requirements based test tools
- Code coverage analyzer tools
- Unit testing
- Integration testing
- Black-box and acceptance testing
Configuration management
- Software configuration index
- Software life cycle environment configuration index
- Source code development environment
- Other development environments
- Software integration tool
- All other documents, software and hardware
Quality assurance
- Software quality assurance records
- Software conformity review
- Software accomplishment summary
Certification liaison
Typically a Designated Engineering Representative reviews technical data as part of the submission to the FAA for approval.Tools
Software can automate, assist or otherwise handle or help in the DO-178B processes. All tools used for DO-178B development must be part of the certification process. Tools generating embedded code are qualified as development tools, with the same constraints as the embedded code. Tools used to verify the code must be qualified as verification tools, a much lighter process consisting in a comprehensive black box testing of the tool.A third party tool can be qualified as a verification tool, but development tools must have been developed following the DO-178 process. Companies providing these kind of tools as COTS are subject to audits from the certification authorities, to which they give complete access to source code, specifications and all certification artifacts.
Outside of this scope, output of any used tool must be manually verified by humans.
- A problem management tool can provide traceability for changes.
- SCI and SECI can be created from logs in a revision control tool.
Requirements management