Skip to main content

Challenges of Using Artificial Intelligence in Safety-Critical Systems

Artificial Intelligence (AI) has transformed the world of technology, enabling systems to learn, adapt, and make decisions without explicit programming. From autonomous vehicles to medical diagnostics and flight control systems, AI promises unprecedented efficiency and capability. However, when it comes to safety-critical systems—where failure could result in injury, loss of life, or significant damage—the use of AI introduces profound challenges that go far beyond traditional software engineering. Unlike conventional software, which behaves predictably according to its programmed logic, AI is built on learning and training. Its decisions and outputs depend heavily on the data it has been trained on and the patterns it recognizes during runtime. This adaptive, data-driven behavior means that an AI system’s responses may vary with changing inputs or environments, often in ways that are not explicitly defined or foreseen by developers. While this flexibility is a strength in many applica...

Software Verification and DO-178C Certification: Ensuring Safety in the Skies

Software Verification and DO-178C Certification: Ensuring Safety in the Skies

In the world of safety-critical systems, especially in aerospace, there is absolutely no room for software failure. A single defect can have catastrophic consequences. That’s where DO-178C, the gold standard for airborne software certification, steps in. Having spent time around safety-critical projects myself, I’ve seen how DO-178C transforms the software development process from a creative exercise into a disciplined engineering craft — one where every line of code must earn its place in the aircraft.

What is DO-178C?

DO-178C (Software Considerations in Airborne Systems and Equipment Certification) is a guidance document published by RTCA, defining how software should be developed, verified, and certified for use in aviation systems. It sets the framework that ensures flight software behaves predictably, consistently, and safely.

System Lifecycle Processes
Figure: Aircraft Development Lifecycle Processes and Standards

Each system is assigned a Design Assurance Level (DAL) — from A (catastrophic failure) to E (no effect) — based on the potential impact of failure. The higher the DAL, the stricter the verification and documentation requirements.

Why DO-178C is Crucial for Safety-Critical Domains

DO-178C is not just a regulatory necessity; it’s a safeguard for lives. In aerospace, every software-driven action — from flight control surfaces to navigation systems — must work precisely as intended. DO-178C enforces a systematic verification process, ensuring that software errors are caught early and thoroughly documented.

While it originated in aviation, the principles of DO-178C are now influencing other safety-critical domains such as automotive, medical devices, and rail systems, where software reliability is equally vital.

The Central Role of Verification — “Verify That”

One of the most striking things about DO-178C is its emphasis on software verification. Roughly 60% of the objectives for DAL A — the highest assurance level — are related to verification activities. The standard revolves around the principle of “verify that,” meaning that every requirement, design artifact, and line of code must be verified for correctness, completeness, and consistency.

DO-178C Objectives Distribution as per Processes
Figure: DO-178C Objectives Distributed to Processes for DAL A

Verification is not a single step but a continuous process that runs in parallel with development — ensuring that what’s being built always aligns with what’s required.

Verification Objectives and Activities

DO-178C defines objectives that guide verification activities across all software life cycle phases. In essence, it answers the question: Have we done what we said we would do, and does it work as intended?

Here’s a summary of key verification activities:

  1. Requirements Verification: Ensure that high-level and low-level requirements are accurate, consistent, and testable.

  2. Design and Code Reviews: Confirm that design implements requirements correctly and code follows design, standards, and safety constraints.

  3. Static Analysis: Use tools to detect data and control flow errors, variable misuse, or unreferenced functions — often a vital step for DAL A and B systems.

  4. Testing:

    • Requirements-Based Testing (RBT): Each requirement must be verified through tests.

    • Structural Coverage Analysis (e.g., MC/DC): Ensures that every logical condition in the code has been exercised during testing.

    • Integration Testing: Verifies interactions between software components and hardware.

  5. Traceability: Maintain bidirectional traceability between requirements, design, code, and tests to ensure completeness and detect any missing or extraneous functionality.
DO-178C Traceability Requirements
Figure: DO-178C Traceability Requirements per DALs

Qualified Tools in Safety-Critical Verification

In high-assurance environments, automation is both a necessity and a responsibility. For safety-critical projects, automated verification tools must themselves be qualified — meaning they are proven to operate correctly within their defined context.

Qualified tool suites from vendors like LDRA, Parasoft, and VectorCAST play a key role in automating code analysis, coverage measurement, and testing. They not only reduce human error and testing effort but also make tasks like Modified Condition/Decision Coverage (MC/DC) feasible — something nearly impossible to perform manually at scale.

Qualified Tools DO-178C
Figure: DO-178C and DO-330 Qualified Tools

How Verification Ensures Safety and Quality

Software verification under DO-178C is not about bureaucracy — it’s about trust. It enforces the discipline that ensures safety, quality, and confidence in flight-critical systems. Through exhaustive analysis, structured testing, and traceability, verification confirms that:

  • The software meets its intended function.

  • No unintended behavior is introduced.

  • Every potential failure path is understood and mitigated.

Ultimately, it’s this relentless focus on verification that allows pilots, engineers, and passengers to trust the unseen lines of code keeping them aloft.

Final Thoughts

DO-178C has often been described as rigid or document-heavy, but that’s only half the story. In truth, it’s a philosophy — one that reminds us that when lives depend on software, precision and verification are not optional.

For anyone working in or transitioning to safety-critical software, understanding DO-178C’s verification principles is like learning the heartbeat of dependable flight systems. It’s where engineering meets ethics, ensuring that every byte of software earns the right to fly. 

Comments