^

Standards Compliance

Standards Compliance

DO-278

DO-278A & ED-109A

What is DO-278A?

RTCA DO-278A is a document that provides guidance for the development of software for communication, navigation, surveillance, and air traffic management (CNS/ATM) systems. Its full title is “DO-278A, Software Integrity Assurance Considerations for Communication, Navigation, Surveillance and Air Traffic Management (CNS/ATM) Systems.”

What is ED-109A?

EUROCAE ED-109A is the same document as DO-278A. The alternative nomenclature is used to align with EUROCAE naming conventions.

What are the primary differences between DO-278 and DO-278A?

DO-278 was written as a supplemental document to modify the guidance of DO-178B for CNS/ATM software. Hence, both DO-178B and DO-278 together were to be referenced for the ground side.

DO-178C and DO-278A were developed in tandem, and for the most part are remarkably similar.

For airborne systems, DO-178C is the key document and it is a direct derivative of DO-178B. On the ground side, DO-278A is the key document, but it is not a direct derivative of DO-278. Rather, DO-278A combines the guidance of DO-178C and DO-278 to produce a stand-alone reference for ground-based software verification.

What is the relationship between DO-178C and DO-278A?

The lengthy name attributed to DO-278A, “Guidelines for Communication, Navigation, Surveillance, and Air Traffic Management (CNS/ATM) systems software integrity assurance”, hints at the relationship it has with DO-178C. DO-278A was deliberately designed to be analogous to DO-178C and was developed in tandem with it. For the most part, developers who are familiar with DO-178C terminology, practices, and processes will be similarly comfortable with the DO-278A guidelines & objectives. There are differences only where necessary.

What are the key differences between DO-178C and DO-278A?

Despite the similarity between DO-178C and DO-278A, there are some differences to be aware of.

Many of these differences simply concern differing terminology reflecting the differing circumstances. For example:

  • The authority responsible for “certification” in DO-178C is substituted by the “approval” authority in DO-278A.
  • The scope of “aircraft” or “airborne system” in DO-178C is replaced with “CNS/ATM system” in DO-278A.
  • The equivalent to “adaptation” data in DO-178C is known as “parameter” data in DO-278A.
  • The document known as the “Plan for Software Aspects of Certification (PSAC)” in DO-178C is denoted as the “Plan for Software Aspects of Approval (PSAA)” in DO-278A.

What are the differences between DO-178C Design Assurance Levels (DALs) & DO-278A Assurance Levels (ALs)?

DO-178C DALs map directly to DO-278A ALs with one exception. There is no equivalent to DO-278A’s AL4, which was included to account for certain CNS/ATM systems where AL-3 was too stringent, and AL-5 was too lenient.

How does DO-278A AL4 account for the use of COTS and legacy code in ground-based systems?

DAL C and AL3 are each concerned with how software is designed and implemented. On the other hand, DAL D and AL5 are concerned only that software fulfils its intended function within a system-level engineering process. AL4 represents a “halfway house” in that it retains some design-level verification (unlike AL5) but it does not require any code-level analysis (unlike AL3).

This is pertinent to DO-278A but not DO-178C because ground-based systems often make far more extensive use of both COTS and legacy technologies.

CNS/ATM system developers and certification authorities are generally more accepting of reused proven technology, even if not developed in accordance with DO-278A. As a result, DO-278A provides explicit provisions for potentially utilizing “alternate methods” which become Alternate Means of Compliance (AMC). Software that has been verified as compliant using an alternative method is assured to AL4.

What other standards are related to DO-278A?

There are several standards and other documents that are intended to be used as a collective in the development of software systems that are applicable to civil avionics systems.

DO-278A and DO-330/ED-215

DO-330 “Software tool qualifications considerations.”

The term “tool qualification” is a broad description of a process aimed at guaranteeing that the risk of a tool error affecting the safety of a system is sufficiently low—either due to a low occurrence of errors or because such errors cannot compromise safety. DO-330 outlines the tool qualification process for tools employed in meeting the objectives outlined in DO-178C and

DO-278A, incorporating provisions for the addition of AL4 in the latter case. Unlike other supplementary documents like DO-332 and DO-333, DO-330 is also intended for use in various domains beyond aviation.

DO-278A and DO-332/ED-217

DO-332 “Object Oriented Technology and related technologies supplement to DO-178C and DO-278A”.

DO-332 complements DO-178C and DO-278A by introducing extra objectives relevant to the use of object-oriented programming and associated practices. It also offers guidance on how to approach the objectives outlined in DO-278A within an Object-Oriented (OO) environment.

DO-278A and DO-333/ED-218

DO-333 “Formal Methods Supplement to DO-178C and DO-278A”.

DO-333 serves as a supplement to DO-178C and DO-278A, introducing additional objectives relevant when incorporating formal methods into a software life cycle. Furthermore, it offers guidance on how to approach the objectives outlined in DO-278A when formal methods are used.

DO-278A, CAST-32A, and A(M)C 20-193

CAST-32A, authored by the Certification Authorities Software Team (CAST), was a Position Paper addressing the challenges posed by multicore processors (MCPs) in civil aviation. This document outlines a set of objectives to adhere to when incorporating such processors into projects compliant with DO-178C or DO-278A. Despite not constituting official guidance, CAST papers carry authority, and their recommendations are often embraced even before formal integration into subsequent published standards.

For projects falling under EASA’s jurisdiction, CAST-32A has been deprecated, and a similar phase-out is anticipated for FAA-overseen projects. Its directives concerning multicore processors have been assimilated into the harmonized standards EASA AMC 20-193 and FAA AC 20-193, collectively known as A(M)C 20-193. The guidance provided in these documents is intended to complement DO-178C and other related standards like DO-278A.

The LDRA tool suite supports the use of MCPs, which brings a host of challenges associated with interference paths and their potential impact on worst-case execution timing (WCET).

What is involved with DO-278A compliance?

DO-278A encompasses the entire software lifecycle, including planning, development, and integral processes aimed at guaranteeing correctness and robustness in the software. These integral processes encompass software verification, software quality assurance, configuration management assurance, and certification liaison with regulatory authorities.

While developers are not compelled to use analysis, test, and traceability tools, their adoption enhances efficiency in all but the most straightforward projects. The level of effort is commensurate with the risk associated with potential software failures, thus directly proportionate to the Assurance Level (AL) assigned to it.

How does LDRA help with DO-278A compliance?

The DO-278A standard calls for phased development with the application of verification and validation techniques along the way to confirm compliance with the standard. LDRA verification tools lend themselves to that approach.

Static analysis

The LDRA tools conduct static analysis on the code, aligning with the recommended practices of DO-278A. Static analysis can be likened to an automated “inspection” of the source code, where the code under review is compared to the selected software coding standard. Any non-conformances, as mandated by DO-278A, are identified, along with other undesirable characteristics like elevated complexity.

Dynamic analysis

Dynamic analysis involves executing a portion or the entirety of the code during low-level (unit) tests, integration tests, and system tests. The primary objectives are to demonstrate that the code has been sufficiently exercised and aligns with the specified requirements. The dynamic test capabilities, specifically conducted on the target system, play a vital role in confirming the suitability of the code for its intended environment.

Structural coverage is employed to pinpoint which code structures and component interfaces are activated during the execution of requirements-based test procedures, providing an empirical measurement of the effectiveness of these tests. The results of this structural coverage analysis are scrutinized to identify any parts of the code that haven’t been adequately exercised, and the reasons behind it. The required coverage level corresponds to the Assurance Level (AL) assigned to the software being developed.

Bidirectional requirements traceability

DO-278A mandates that systems requirements must be traceable throughout every development stage, and conversely, to ensure the full traceability of the code base back to requirements. LDRA employs a comprehensive, role-based approach to traceability.

Team members can be assigned systems requirements and verification tasks, and all resulting artefacts can be consolidated and interconnected. This results in a thorough bidirectional process throughout the life cycle, guaranteeing that any modifications to requirements, design, or source code are easily comprehensible, verified, and traceable.

LDRA tools assist in identifying changes in requirements or the developed software and facilitate the seamless organization and rerunning of appropriate tests for any affected components. They create an optimal environment for conducting impact analysis, whether upstream to requirements or design, or downstream to implementation and testing.

Data Coupling and Control Coupling

DO-278A places considerable importance on test coverage, including this data and control coupling emphasis in §6.4.4:

“The objectives for test coverage analysis are…

  1. Test coverage of high-level requirements is achieved.”

LDRA verification tools offer the capability to meet the coupling metrics requirements outlined in DO-278A, as exemplified by this data coupling reporting.

The objective is to demonstrate that software modules influence each other as intended by the software design, preventing unintended, anomalous, or erroneous behaviours. Documenting data and control coupling during the design phase establishes a set of requirements to be tested during the software integration process. Similarly, validating that the data and control coupling between modules are exercised and exhibit no faults during software testing serves as evidence that the software’s integration and architecture are thoroughly verified.

Modified Condition / Decision Coverage (MC/DC)

In addition to statement and branch coverage, for level 1 software MC/DC coverage is obligatory. MC/DC requires that ‘Each condition in a decision has been shown to independently affect that decision’s outcome’. LDRA verification tools provide a mechanism to automate that process.

Source code to object code traceability

For Level 1 systems, structural coverage at the source level isn’t enough. Compilers often add additional code or alter control flow, and often their behaviour is not deterministic. To ensure that functionality is not compromised, DO-278A 6.4.4.2.b states:

“if the assurance level is A1 and a compiler, linker, or other means generates additional code that is not directly traceable to Source Code statements, then additional verification should be performed to establish the correctness of such generated code sequences”

Automating the verification process can significantly enhance efficiency in providing evidence for that verification. Given the direct one-to-one correlation between object code and assembly code, this relationship can be established by comparing a graphical representation of the source code with that of the equivalent assembly code. Object Code Verification (OCV) assesses code coverage at both the source and assembly levels by sequentially instrumenting each.

Tool Qualification

The LDRA Tool Qualification Support Packs (TQSPs) contain the test cases to establish both the tool suite’s structural coverage analysis and programming rules checking capabilities, aligning with the DO-330 Software Tool Qualification. Additionally, they provide related documentation for product development and verification, encompassing plans, procedures, and anticipated outcomes.

Additional information

DO-278A pdf free downloads

Other DO-278A training materials & information

FREE 30 Day
TRIAL

Email Us

Email: info@ldra.com

Call Us

EMEA: +44 (0)151 649 9300

USA: +1 (855) 855 5372

INDIA: +91 80 4080 8707

Connect with LDRA