DO-178C Certification - Your Complete Verification Journey
DO-178C/ED-12C (referred to here as DO-178C) is the primary document referenced by certification authorities including the Federal Aviation Administration (FAA), European Union Aviation Safety Agency (EASA), and Transport Canada to approve software used in commercial civil airborne systems. It is jointly published by RTCA (formerly the Radio Technical Committee for Aeronautics) and the European Organisation for Civil Aviation Equipment (EUROCAE).
For developers of airborne software, the DO-178C process defines how correctness, control, and confidence must be demonstrated for certification.
It requires a “safety by design” approach. Assurance is built into the software development lifecycle through rigorous processes, traceability, and verification.
- Demonstrating that airborne software meets its requirements
- Verifying executable object code on representative target hardware
- Achieving the structural coverage required for the applicable Software Level
- Maintaining traceability and credible verification evidence
- Source-to-object-code verification for compiler-generated object code
- winIDEA debugging and target execution insight
- BlueBox non-intrusive trace where required
- LDRA testing, coverage, analysis, traceability, and evidence support
- Clearer visibility into software behavior on target
- Earlier identification of verification gaps
- More controlled testing and regression analysis
- Evidence that is easier to review and maintain
- What is DO-178C?
- Is DO-178B still relevant?
- What does DAL mean in the context of DO-178C?
- What is involved with DO-178C compliance?
- What are the planning documents required by DO-178C?
- What are the “Stages of Involvement (SOI)”?
- What is the DO-178C “Software Accomplishment Summary (SAS)”?
- What does DO-178C Section 5.0: “SOFTWARE DEVELOPMENT PROCESSES” cover?
- What does DO-178C Section 6.0: “SOFTWARE VERIFICATION PROCESSES” cover?
- Static analysis and code quality
- How is executable object code verified on target?
- Structural coverage and DO-178C
- How are statement and decision coverage achieved?
- How is Modified Condition/Decision Coverage (MC/DC) achieved?
- How is Data Coupling and Control Coupling (DCCC) coverage achieved?
- How is source to object code traceability verified using Object Code Verification (OCV)?
- Timing, multicore, and interference analysis
- What other standards are related to DO-178C?
- Additional information
- DO-178C FAQs
What is DO-178C?
DO-178C “Software Considerations in Airborne Systems and Equipment Certification” is a formal process standard that covers the complete software lifecycle. It includes the planning, development, and integral processes needed to ensure correctness and robustness in software developed for civil avionics systems.
The integral processes include software verification, software quality assurance, configuration management, and certification liaison with regulatory authorities. Defense programs increasingly use DO-178C too, as established best practice.
Is DO-178B still relevant?
In January 2012 DO-178C replaced the long-standing DO-178B standard as the de facto reference for the development of airborne embedded software. Together with its supporting documents, DO-178C improved safety requirements and addressed new technologies in civil avionics systems.
DO-178B is still recognized and may be used for legacy projects. However, the FAA recommends that new applicants or developers establish their software life cycle processes in accordance with DO-178C.
LDRA has contributed to the evolution of DO-178 guidance over many years, including participation in both DO-178B and DO-178C working groups. Its work has helped shape industry approaches to automated verification, including structural coverage analysis.
What does DAL mean in the context of DO-178C?
DAL is an abbreviation for Design Assurance Level, sometimes referred to as a Level. ARP4754B requires that functional hazard analyses and system safety assessments are completed prior to system development.

A DAL is assigned accordingly for that system, and for the subsystems that implement its hardware and software requirements. The rigor demanded in the development and verification of safety-critical airborne software systems depends on the assigned DAL. As a result, the effort and expense of producing (say) a flight control system is necessarily higher than that required to implement a bathroom smoke detector.
Software levels and DALs
System-level DALs are decomposed into hardware DALs and “Software Levels” for the contributing subsystems, with DO-178C defining the objectives that apply to each software level.
Importantly, software levels do not necessarily correspond directly to system DALs. The level assigned to a software component depends on the contribution that software makes to the system-level failure condition being considered.

What is involved with DO-178C compliance?
DO-178C compliance requires a structured approach across the software lifecycle, including planning, development, and integral processes.
These include verification, quality assurance, configuration management, and certification liaison with regulatory authorities.

DO-178C recognizes that software safety must be addressed systematically throughout the software life cycle. This involves life cycle traceability, software design, coding, validation, and verification processes. In combination, these help to ensure correctness, control, and confidence in the software.
The standard defines several mechanisms to help ensure that the processes are followed and to provide objective evidence of compliance.
Simplify your DO-178C verification journey
The LDRA Productivity Package for Aerospace and Defense is structured around the DO-178C lifecycle. Planning, development, verification, and evidence generation are supported within a single integrated environment, with traceability maintained across every stage. Whether you are writing requirements, analyzing code, executing tests, or producing certification artifacts, the objectives applicable to your Software Level are always in view for your project, not a generic baseline that needs constant manual interpretation.
What are the planning documents required by DO-178C?
Collectively, the planning documents specified in DO-178C provide a framework for the development and certification of airborne software. They ensure that activities are planned, controlled, and verified against requirements, as follows:
“Plan for Software Aspects of Certification (PSAC)”: Defines how the software development process will comply with DO-178C requirements.
“Software Development Plan (SDP)”: Defines software development activities including methodologies, standards, the development environment, configuration management practices, and scheduling.
“Software Verification Plan (SVP)”: Defines how the software verification activities are to be conducted to ensure compliance with DO-178C.
“Software Configuration Management Plan (SCMP)”: Defines how software configuration management will be implemented.
“Software Quality Assurance Plan (SQAP)”: Defines which quality assurance activities will be applied, and when.
“Tool Qualification Plan (TQP)”: Defines how tools used in development and verification will be qualified.
Download our DO-178C white paper
Learn more about how TASKING products can help streamline your DO-178C project.
What are the “Stages of Involvement (SOI)”?
DO-178C defines four Stages of Involvement (SOI), which function as formal review points. They ensure that software development processes and outputs meet the requirements of the standard.
Certification authority representatives such as FAA Designated Engineering Representatives (DERs) and EASA Subject Matter Experts (SMEs) are actively involved with SOIs. The reviews provide structured checkpoints across the software development life cycle, ensuring a disciplined path to compliance.
What is the DO-178C “Software Accomplishment Summary (SAS)”?
The Software Accomplishment Summary documents the DO-178C software development and verification activities. It includes summaries of development activities and verification results, and findings from the qualification of verification tools.
Maintain traceability and certification evidence
DO-178C requires that every stage of the software lifecycle is traceable with clear, bidirectional links between requirements, design, implementation, verification activities, and results. This demonstrates the correct implementation of all requirements and confirms that no unintended functionality has been introduced.
The LDRA tool suite maintains that traceability across the full development lifecycle, linking requirements to source code, test cases, and verification results. It integrates with workflows ranging from simple document-based approaches through to enterprise ALM/PLM environments. They are supported by Tool Qualification Support Packs, streamlining the qualification process required by DO-330.
The LDRA Productivity Package for Aerospace and Defense maps the DO-178C objectives applicable to your Software Level within that traceability framework. Pass/fail reporting is aligned to those same objectives, so your team is always working to the right standard, and reporting provides the evidential artifacts expected by the certification authorities.
What does DO-178C Section 5.0: “SOFTWARE DEVELOPMENT PROCESSES” cover?
DO-178C Section 5.0 outlines the key processes involved in software development for airborne systems. It includes the Software Requirements Process (5.1), Software Design Process (5.2), Software Coding Process (5.3), Integration Process (5.4), and Software Development Process Traceability (5.5).
Section 5.3 specifies software coding process objectives, such as the implementation of low-level requirements and the conformance to a defined language subset (or “coding standard”).
Section 5.5 requires artifacts to demonstrate that each development phase is complete, coherent, and traceable to its predecessor.
These activities are typically supported by automated tools for code analysis, standards compliance, and traceability, all of which are deployed as part of the verification processes.
Build confidence in your executable software
DO-178C places strong emphasis on the integrity of the software build process, as the executable object code is the artifact that must be verified. Confidence in it depends on the correct and consistent operation of the compiler, linker, and associated build tools.
Build integrity also depends on configuration control and the ability to reproduce results. TASKING supports this through stable toolchains and well-defined build processes, enabling you to generate consistent outputs and maintain confidence in the relationship between source code and object code.
What does DO-178C Section 6.0: “SOFTWARE VERIFICATION PROCESSES” cover?
DO-178C Section 6.0 defines the objectives and methods used to demonstrate that software meets its requirements and behaves correctly. Verification activities include reviews, analyses, and testing at multiple levels, including low-level testing, software integration testing, and hardware/software integration.
In practice, these activities are supported by automated tools for test execution, coverage analysis, and results management.
Dynamic analysis exercises executable object code on a representative target using defined test cases and procedures. It provides evidence of correct functionality and identifies which parts of the code have been exercised (structural coverage). Test cases may include low-level (unit), integration, and system tests.
Low-level testing verifies the complete and exclusive implementation of low-level requirements defined in the Software Verification Plan (SVP). Software integration testing verifies interactions between software components against the software architecture and associated requirements. In practice, the mechanisms used for low-level testing often extend naturally to integration testing, enabling verification of behavior across the call tree.
When changes are made, impacted low-level and integration tests must be re-run as part of regression testing. This ensures that existing functionality continues to behave as expected as development progresses.
Static analysis and code quality
DO-178C expects your code to comply with a defined language subset (whether an established standard such as MISRA or CERT, or one developed in-house), remain free from defects including data flow anomalies and uninitialized variables, and be assessed for complexity.
That means applying analysis consistently, not just at the start of development, but every time the code changes. This applies whether you are using C or C++, including object-oriented development aligned with DO-332, and whether your code is handwritten, auto-generated, or a combination of both. Language subset enforcement helps you detect issues early and prevent them from propagating into later verification activities.
Automate code quality and standards compliance
The LDRA tool suite provides a consistent way to assess code quality and enforce coding standards across your project, including support for established language subsets and coding standards developed in-house.
You can check compliance with your chosen language subset, identify potential defects including data flow anomalies and uninitialized variables, and assess code complexity. As development progresses, applying the same analysis repeatedly ensures that changes do not introduce new issues, giving you a controlled baseline for code quality that remains stable across the lifecycle.
How is executable object code verified on target?
DO-178C requires you to demonstrate that your software behaves correctly on the target, not just that it compiles. Verification is performed through requirements-based testing at both low level and integration level. Low-level tests demonstrate the complete and exclusive implementation of software requirements, while integration tests verify how software components interact within the system architecture.
Dynamic analysis exercises executable object code on a representative target using defined test cases and procedures. Understanding how the software behaves in its real execution environment is therefore as important as the analysis and testing activities that precede it.
Achieving that visibility can involve instrumented approaches which capture detailed execution and coverage data, or trace-based coverage which preserves the timing characteristics of the deployed software. The distinction matters where timing, concurrency, or multicore interactions are involved, and where instrumentation may affect the behavior being verified.
Verify software behavior on target
The winIDEA debugger gives you direct control over execution on target hardware. You can set breakpoints, inspect variables, and observe how your software responds to test inputs, giving you clear visibility of behavior during requirements-based testing.
The LDRA tool suite supports instrumented approaches that capture detailed execution and coverage data across both low-level and integration testing. Where non-intrusive trace is needed, BlueBox provides hardware-based access to execution data without modifying the software under test.
Structural coverage and DO-178C
Discuss your DO-178C structural coverage approach
Talk to a TASKING specialist about automating data coupling, control coupling, and structural coverage analysis for your DO-178C project.
Structural coverage analysis provides evidence that requirements-based tests have exercised the code to a defined extent.
By measuring which parts of the software structure are executed during testing, it supports both compliance and safety assurance. The required level of coverage depends on Software Level.
- Modified Condition/Decision Coverage (MC/DC)
Required for Software Level A. Each condition within a decision must be shown to independently affect the outcome. - Decision coverage
Required for Software Level A and B. Each decision must evaluate to both true and false at least once. - Statement coverage
Required for Software Level A, B, and C. Every executable statement must be exercised at least once. - Data Coupling and Control Coupling (DCCC) coverage
Required for Software Level A and B, and recommended for Level C. Data exchanges and control interactions between modules must be exercised. - Source to object code traceability
Required for Software Level A. Additional verification is required for object code that cannot be directly traced to source, such as compiler-generated constructs.

Structural coverage analysis strengthens confidence that testing is complete and representative. It supports disciplined verification, bidirectional traceability, and compliance with DO-178C objectives. Achieving this typically relies on automated tools to measure coverage and identify gaps.
How are statement and decision coverage achieved?
Requirements-based testing must demonstrate that every part of the software has been exercised. Statement coverage and decision coverage are the foundational metrics for doing so.
Statement coverage confirms that every executable statement has been exercised at least once during testing. Decision coverage goes further, requiring that every decision in the code (such as an “if” statement) has evaluated to both true and false at least once. Combining the two ensures that all statements are exercised fully, including both outcomes of any statement containing a decision.
DO-178C defines statement coverage as an objective for software at Levels A, B, and C. Decision coverage is an objective for Levels A and B. Neither metric alone guarantees the absence of defects, but together they provide a measurable, verifiable baseline that testing has been thorough and complete.
Automate statement and decision coverage analysis
The LDRA tool suite measures statement and decision coverage directly from requirements-based test execution, giving you clear, reportable evidence of the coverage achieved. Where gaps exist, the results identify exactly which statements or decisions remain unexercised, so you can extend your test cases with confidence rather than guesswork.
How is Modified Condition/Decision Coverage (MC/DC) achieved?
MC/DC is a coverage metric for decisions with multiple conditions. It does not require every possible combination of inputs to be executed. Instead, it requires a minimum set of tests in which each condition is shown to independently affect the outcome.
For example, a decision with six conditions has 64 possible input combinations, yet only seven carefully constructed tests are needed to achieve MC/DC coverage.
Identifying those tests is not always straightforward. Each condition must be varied in isolation while all others are held constant, and it is not always obvious which input values will achieve this. Deriving and executing an effective MC/DC test set is a precise exercise, and one that lends itself well to automated support.
Automate MC/DC analysis
The LDRA tool suite automates the derivation and execution of MC/DC test sets. It identifies which input combinations are needed to demonstrate independent influence for each condition, reducing the manual effort involved and providing clear evidence of MC/DC achievement aligned with DO-178C Software Level A objectives.
How is Data Coupling and Control Coupling (DCCC) coverage achieved?
Organizing software into well-defined functional units with clear interfaces (modularization) is a foundational principle. In DO-178C, this is not only good practice but a regulatory expectation. Data coupling and control coupling are subject to explicit verification.
See automated DCCC analysis in practice
See how the TASKING LDRA tool suite combines static and dynamic analysis to automate data coupling and control coupling coverage for DO-178C.
Control coupling is defined as “The manner or degree by which one software component influences the execution of another software component.” Data coupling is defined as “The dependence of a software component on data not exclusively under the control of that software component.”
Both forms of coupling must be exercised and verified through requirements-based testing. Section 6.4.4.2.c calls for analysis to confirm that testing has exercised data coupling and control coupling between software components.
In practice, evidence is derived from test execution. Procedure and function call coverage are used to assess control coupling, while data flow analysis is used to assess data coupling. Structural coverage analysis supports these activities and helps meet Objective A-7.8, which requires coverage of software structure, including data coupling and control coupling.
Achieving structural coverage typically relies on automated tools to measure coverage and identify gaps.
Automate data coupling and control coupling verification
The LDRA tool suite derives data coupling and control coupling coverage directly from requirements-based test execution, covering both low-level tests and tests that exercise interactions between software components.
Control coupling evidence is built from procedure and function call coverage, confirming that the control relationships between components have been exercised. Data coupling evidence is supported by data flow analysis, verifying that data exchanges between components have been tested as required.
Where gaps exist, the results identify exactly which coupling relationships remain unexercised, so you can extend test cases with confidence. Pass/fail reporting is aligned to the DO-178C objectives applicable to your Software Level, providing the traceable, certification-ready evidence expected by the certification authorities.
How is source to object code traceability verified using Object Code Verification (OCV)?
Explore Object Code Verification with the LDRA tool suite
Understand how TASKING helps automate source-to-object traceability and structural coverage analysis for DO-178C Level A software.
When structural coverage is measured at source code level, there is an implicit assumption that the compiler faithfully reproduces the developer’s intent in the resulting object code. That assumption does not always hold.
Compilers are permitted to modify code in any way they choose, provided the binary behaves as if the original source had been executed. Optimizations and compiler-generated constructs can produce object code structures with no direct equivalent in the source. The consequence is that 100% source code coverage does not guarantee that all object code paths have been exercised.
For Level A software, DO-178C §6.4.4.2b is explicit: where the compiler generates object code that cannot be directly traced to source code statements, additional verification should be performed.
Because object code and assembly code have a one-to-one relationship, demonstrating source-to-assembly traceability is equivalent to demonstrating source-to-object traceability. Object Code Verification (OCV) uses this relationship to expose which object code paths remain unexercised, enabling additional tests to be devised to address them.
Automate source-to-object code verification (OCV)
Additional verification is required where compiler-generated object code cannot be directly traced to source code. The LDRA tool suite supports source-to-object code verification (OCV), enabling comparison between source-level and object-level behavior to establish confidence in the correctness of generated code.
Together, these capabilities provide a clear and traceable view of how thoroughly the software has been exercised, supporting the production of certification-ready evidence and helping you achieve the level of rigor expected for DO-178C compliance.
Timing, multicore, and interference analysis
Modern airborne systems increasingly rely on multicore processors, and that introduces verification challenges that go beyond those addressed by DO-178C alone. Shared hardware resources, concurrent execution across cores, and interference between software components can all affect timing behavior in ways that are difficult to predict and harder to bound.
A(M)C 20-193 provides guidance for demonstrating that these effects are understood and controlled. It requires developers to identify interference channels, verify that mitigation measures are effective, and demonstrate that resource demands do not exceed availability under realistic operating conditions. Worst-Case Execution Time (WCET) analysis is central to meeting those objectives, but on a multicore processor, interference from shared resources means that execution times can be wide and unpredictable. Demonstrating safe bounds requires measurement under realistic load conditions, not just analysis of the code in isolation.

Analyze timing and multicore interference
The LDRA tool suite supports Worst-Case Execution Time (WCET) analysis, helping assess timing behavior and identify potential interference from shared resources and concurrent activity.
BlueBox complements this by providing non-intrusive hardware-based trace on target hardware, enabling observation of timing behavior, task interaction, and execution flow without modifying the code.
Together, these capabilities support the analysis and evidence needed to demonstrate that interference effects are understood and controlled in line with A(M)C 20-193.
What other standards are related to DO-178C?
DO-178C does not operate in isolation. It sits within a broader framework of standards and guidance documents that together cover system safety, tool qualification, model-based development, object-oriented technology, formal methods, cybersecurity, and multicore processors. Understanding how they relate helps you navigate your certification obligations with confidence.

DO-178C certification standards framework for aerospace software systems.
DO-178C and SAE ARP4754B
SAE ARP4754B “Guidelines for Development of Civil Aircraft and Systems” provides the overarching framework for system-level development. DO-178C defines software-specific guidance within it.
DO-178C and SAE ARP4761A
SAE ARP4761A “Guidelines and Methods for Conducting the Safety Assessment Process on Civil Airborne Systems and Equipment” guides safety assessments for systems and equipment developed in accordance with the ARP4754 framework. DO-178C defines software-specific guidance within that framework.
DO-178C and DO-278A/ED-109
RTCA DO-278A “Software Integrity Assurance Considerations for Communication, Navigation, Surveillance and Air Traffic Management (CNS/ATM) Systems” was developed in parallel with DO-178C. It serves a similar purpose for ground-based systems.
DO-178C and DO-330/ED-215
RTCA DO-330 “Software Tool Qualification Considerations” guides tool qualification in compliance with DO-278A and DO-178C. It is equally applicable to other safety-critical sectors.
DO-178C and DO-331/ED-218
RTCA DO-331 “Model-Based Development and Verification Supplement to DO-178C and DO-278A” defines how design assurance levels (DAL), model-based development, and model-based verification are applied together within the certification process.

DO-178C and DO-332/ED-217
RTCA DO-332 “Object-Oriented Technology and Related Techniques Supplement to DO-178C and DO-278A” defines additional objectives for the use of object-oriented programming and complementary practices and guides the application of DO-178C and DO-278A objectives within an object-oriented (OO) environment.
DO-178C and DO-333/ED-216
RTCA DO-333 “Formal Methods Supplement to DO-178C and DO-278A” defines additional objectives for the use of formal methods and guides the application of DO-178C and DO-278A objectives when they are used.
DO-178C and DO-326B/ED-202A
RTCA DO-326B “Airworthiness Security Process Specification” defines a framework for managing security risks in airborne systems and complements DO-178C by addressing security considerations alongside software development and verification activities.
DO-178C and DO-356A/ED-203A
RTCA DO-356A “Airworthiness Security Methods and Considerations” provides detailed guidance on performing security analyses and implementing protective measures, supporting the application of DO-326B alongside DO-178C objectives.
DO-178C and DO-200B/ED-76A
RTCA DO-200B “Standards for Processing Aeronautical Data” defines criteria for managing the quality of aeronautical data used in navigation, flight planning, terrain and obstacle awareness, flight deck displays, simulators, and related applications. It covers the development, validation, and maintenance of aeronautical databases that may interface with DO-178C compliant airborne software.
DO-178C and A(M)C 20-193
A(M)C 20-193 “Use of Multi-Core Processors” defines additional DO-178C and DO-278A objectives for multicore processors (MCPs) and guides the application of DO-178C and DO-278A objectives in a multicore context.
Download our DO-178C white paper
Learn more about how TASKING products can help streamline your DO-178C project.
Additional information
DO-178C PDF free downloads
Whitepaper: DO-178C demystified: Strategies for efficient certification
Whitepaper: Following the recommendations of CAST-32A & A(M)C 20-193
Technical briefing: Getting to grips with CAST-32A & A(M)C 20-193
Technical note: Achieve DO-178C compliance with LDRA tool suite
Data sheet: DO-178C with the LDRA tool suite
Data sheet: LDRA Productivity Package – Aerospace and Defense
Blog: DO-178C & Structural Coverage AnalysisCertification and Regulatory Support
DO-178C further information
Website: DO-330 Software tool qualification considerations
News article: Ensuring the compliance of avionics software with DO-178C
Training: On Demand DO-178C “First Flight” Self-paced online training course
Case study: Richland technologies case study
DO-178C FAQs
DO-178C is a formal process standard covering the complete software lifecycle for airborne systems, including planning, development, verification, quality assurance, configuration management, and certification liaison. It is the primary reference used by certification authorities including the FAA and EASA to approve software for commercial civil airborne systems.
Level D is one of the DO-178C Design Assurance Levels (DALs), assigned according to the potential effect of software failure on aircraft safety. DO-178C defines verification and structural coverage objectives appropriate to each DAL, with Level D requiring less stringent verification than higher criticality levels such as DAL A or DAL B.
DO-178C replaced DO-178B in January 2012 as the de facto reference standard for airborne embedded software development in civil aviation. Its introduction improved the treatment of modern development and verification technologies, including model-based development, object-oriented techniques, and formal methods.
DO-178C itself is not a personal qualification. Such a phrase likely refers either to tool qualification under DO-330 or to training courses covering DO-178C processes, verification activities, structural coverage, and certification workflows for airborne software development projects.
Colloquially, “dead code” is the term used for parts of the software code that cannot be reached logically through the control flow and therefore can never be executed during requirements-based testing. Structural coverage analysis is used to identify dead code, which will then need to be removed or analyzed further.
In the DO-178C context, dead code is specifically executable object code that cannot be executed or used in the operational target environment and is not traceable to a system or software requirement because of a design error.
It is distinct from deactivated code which is intentionally present but not executed in the current configuration. Extraneous code is the collective term for dead code and deactivated code in this context.
DO-178C replaced DO-178B in 2012 and expanded the guidance to better address newer development techniques and technologies. DO-178B remains recognized for legacy projects, but new projects are strongly encouraged to adopt DO-178C and its associated supplements covering areas such as model-based development and formal methods.
Modified Condition/Decision Coverage (MC/DC) is a structural coverage objective required for the highest DO-178C software levels. It requires each condition within a decision to be shown to independently affect the outcome. Importantly, MC/DC achieves a high level of confidence in software logic without requiring every possible combination of conditions to be tested, which would rapidly become impractical as complexity increases.
DO-178C defines software levels according to the potential effect of software failure on aircraft safety. These levels are derived from system-level Design Assurance Levels (DALs) established through ARP4754B safety assessment activities.
DO-178C defines software lifecycle objectives and processes for airborne systems development. These include planning, development, verification, traceability, configuration management, quality assurance, and certification activities, together with the evidence needed to demonstrate that the objectives have been satisfied.
DO-178C training courses are commonly used to introduce engineers and managers to airborne software certification processes. LDRA provides technical briefings, training material, and an on-demand DO-178C “First Flight” self-paced online training course covering certification workflows and verification activities.
DO-178C compliance, as opposed to conformance, refers to the fulfillment of software assurance expectations associated with airborne certification. Developers demonstrate conformance to the objectives and processes defined by DO-178C, while certification authorities determine whether the resulting evidence supports regulatory compliance for the aircraft or system.
DO-178C refers to unit testing as low-level testing. These tests are often used in the verification of software behavior against low-level requirements and are typically combined with structural coverage analysis to demonstrate that the software has been exercised appropriately.
DO-178C requires bidirectional traceability throughout the software lifecycle. Requirements, source code, tests, coverage, and verification artifacts must be linked to demonstrate that all requirements are implemented and verified, and that no unintended functionality has been introduced into the airborne software.
In DO-178C, “DO” is shorthand for “document”. It is in accordance with the naming convention used by RTCA across published guidance material.
DO-178C expanded and modernized the earlier DO-178B standard. It introduced supplementary guidance covering model-based development, object-oriented technologies, formal methods, and tool qualification, while maintaining the core lifecycle and verification principles established by DO-178B.
CC1 and CC2 are shorthand references historically associated with coverage objectives under DO-178B. DO-178C describes structural coverage objectives more directly, using terms such as statement coverage, decision coverage, MC/DC, and data coupling and control coupling analysis.
DO-178C and ISO 26262 both address safety-critical software, but they originate from different industries. DO-178C is focused on safety-by-design as applied to airborne software certification for civil aviation. ISO 26262 addresses functional safety for automotive electrical and electronic systems.