RTCA DO-178C/ED-12C: Software Considerations in Airborne Systems and Equipment Certification is the primary document by which certification authorities such as the FAA and EASA approve civil software-based aerospace systems. Recently, it has become the de facto approach for demonstrating airworthiness in military avionics systems worldwide.
Introduction to DO-178C
DO-178 was originally developed in the late 1970s to define a prescriptive set of design assurance processes for airborne software that focused on documentation and testing. In the 1980s, DO-178 was updated to DO-178A, which suggested different levels of activities dependent on the criticality of the software, but the process remained prescriptive.
Released in 1992, DO-178B was a total re-write of DO-178 to move away from the prescriptive process approach and define a set of activities and associated objectives that a design assurance process must meet. This update allowed flexibility in the development approaches that could be followed, but also specified fundamental attributes that a design assurance process must have, which were derived from the airworthiness regulations.
Many advances in software engineering technologies and methodologies since the release of DO-178B made consistent application of the DO-178 objectives difficult. In 2012, DO-178C/ED-12C was released, which clarified details and removed inconsistencies from DO-178B, and which also includes supplements that provide guidance for design assurance when specific technologies are used, supporting a more consistent approach to compliance for software developers using these technologies. DO-178C guidance also clarified some details within DO-178B so that the original intent could be better understood and more accurately met by developers.
How RapiCover was used for DAL A code coverage analysis for a complex flight control system.View case study
Software Safety Levels
DO-178B introduced (and DO-178C continued to use) the fundamental concept of the Design Assurance Level (DAL), which defines the amount of rigor that should be applied by the design assurance process based on the contribution to Aircraft Safety. The higher the DAL, the more activities and objectives that must be performed and met as part of the Design Assurance process because of the more severe consequences to the aircraft should the software fail or malfunction.
|E||No safety effects||N/A||0|
DO-178C planning is the first DO-178C process that should occur and follows the basic design assurance principle that you say what you are going to do before you do it so you can ensure that what you plan to do will meet the required DO-178C objectives and provide evidence to demonstrate this.
Development of a set of plans covering all components of the Design Assurance process is a cornerstone of DO-178C. As part of this activity, the following plans must be developed:
- Plan for Software Aspects of Certification (PSAC): a description of the software you plan to develop, the hardware environment it will be used in, the design assurance processes you will follow, and how you will demonstrate compliance, including how you will verify your implemented code and any commercial tools you will use in your verification.
- Software Development Plan (SDP): a description of the software development processes and the software life cycle that is used to satisfy DO-178C objectives.
- Software Verification Plan (SVP): a description of the verification processes (Reviews, Analyses and Tests) used to satisfy DO-178C objectives.
- Software Configuration Management Plan (SCMP): a description of the methods and environment that will be used to configure all of the design data and compliance evidence needed to achieve DO-178C certification.
- Software Quality Assurance Plan (SQAP): a description of the methods and associated records that will be used to ensure that DO-178C quality assurance objectives are satisfied.
Development covers all of the activities that involve design and production of DO-178C software that meets system requirements of the project. This includes definition of high and low-level software requirements, software architecture definition and implementation of the software.
Requirements should be developed in order to meet system requirements of the component hosting the software. These system requirements may be decomposed into hardware requirements (DO-254) as well as software components. Requirements should be verifiable as they will need to be verified in order to generate compliance evidence.
The software architecture must be designed before the software is implemented. It is worth considering how the software architecture will affect verification efficiency as verification comprises a large proportion of the cost of a DO-178C project. Particularly, it is worth considering how your architecture will affect the efficiency of data coupling and control coupling analysis of your implemented software.
Engineers new to DO-178C may be surprised at how small a proportion of overall effort Implementation takes in a DO-178C project, particularly at high DALs e.g. DAL A. As verification is much morwe effort intensive than implementation, it is worth considering how implementation decisions such as choice of language and language constructs used, choice of hardware platform and choice of compiler and compiler options will affect verification efficiency.
DO-178C includes 4 Integral processes, which are followed throughout a DO-178C project. These are Verification, Configuration Management, Quality Assurance and Certification Liaison. Integral processes should be planned during DO-178C planning. Following the processes should generate evidence that can be provided to certification authorities to demonstrate that you have followed the processes you planned to (and agreed with the certification authority).
Verification covers activities needed to demonstrate that DO-178C software functions as intended. You will plan a Verification strategy in your Software Verification Plan and follow this after. Some Verification activities should be achieved by testing, while some are achieved by reviews. Software tools are often used to reduce the effort needed to verify DO-178C software.
Configuration Management covers the processes by which you will control and track versioning of items developed during DO-178C projects, including software and documents such as reviews. Your Configuration Management process must generate a record of every version of every item, and these should be accessible throughout the project.
Quality Assurance covers activities that demonstrate that you are following the plans and standards that you have said you will follow throughout a DO-178C project. This includes change control, problem reporting and conducting a conformance review to ensure that your DO-178C software and related documents are ready to share with your certification authority in the final Stage of Involvement (SOI).
Certification Liaison covers activities in which you will interact directly with your certification authority, including the processes you will follow to prepare for and conduct the DO-178C SOIs with them.
As per DO-178C, you need to qualify any software tool you use that replaces or mitigates any DO-178C process and for which the output is not manually verified. The qualification process ensures that such software tools can be relied upon to produce appropriate and repeatable results.
DO-178C itself describes when a tool must be qualified, but does not go into detail on how this should be done. The DO-330: Software Tool Qualification Considerations supplement to DO-178C expands on this guidance by defining corresponding objectives for the specification, development and verification of qualified tools.
If you use any commercial verification tools to automate DO-178C verification processes and don’t plan on manually reviewing output from the tools, they will need to be qualified at the appropriate tool qualification level. Many commercial verification tools have supporting qualification kits, which include evidence needed to demonstrate that the activities the tool developer must perform have been performed. All qualification kits should include all of the evidence needed from the tool developer. Some qualification kits may also include supporting material to help meet tool user objectives.
How can Rapita help?
The Rapita Verification Suite (RVS) reduces the effort needed to verify DO-178C software by helping to satisfy specific DO-178C objectives.
RVS includes plugins that satisfy requirements-based functional testing, structural coverage analysis and worst-case execution time analysis and is supported by a qualification kit and service to provide DO-330 tool qualification evidence.
To see how RVS could help you, contact us or download a free trial today.
Our Verification and Validation Services help satisfy DO-178C objectives. We provide services covering the full DO-178C life cycle, supporting efficient Planning, Development, and Integral processes including software verification using RVS. Our engineering team have diverse experience working in civil and defense avionics development and verification worldwide.
Specific guidance for how DO-178C should be applied to multicore software is available in the CAST-32A Position Paper.
Our CAST-32A Compliance Solution supports Planning, Development and Integral processes for multicore DO-178C projects, including by support multicore timing analysis, which is widely considered to be the most challenging element of CAST-32A compliance. To see how our CAST-32A Compliance Solution could help you, contact us.
Our systems engineering services, with our emphasis on quality and adherence to ARP4754A industry guidance, support the development of systems with well-designed hardware and software.
We support system integration and verification and validation of system requirements. Our automated V&V tools integrate with industry standard requirements management software to capture results while seamlessly maintaining traceability to requirements. Find out more about our systems engineering services.
Our support team is comprised of our Field Application Engineers (FAEs), who use RVS every day and regularly perform integrations involving a variety of compilers, languages, and platforms.
Our policy is to always provide our customers with the best level of support we can realistically achieve, and as such we resolve support issues as quickly and effectively as we can. We have a strong history of excellent support and regard this as an essential aspect of our business. For more information on our support service, see our Support web page.
We provide training in a range of expert topics, including: DO-178C compliance, Multicore certification and setting up automated test environments.
Our training is flexible; we offer both face-to-face and virtual training and offer custom training courses to meet your specific needs.
For more information on our training solutions, see our Training web page.
Learn more about DO-178 related subjects