Reliable
Aviation Software

Developing reliable aviation software is essential for safety, performance, and compliance with industry regulations

Reliable software methods can be integrated with DO178C

Reliable software methods can be integrated with Defense Aviation Standards

Cost-Effective Approaches to Enhancing Aviation Software Reliability and Safety

1. Increased Rigor in Software Testing
Implementing rigorous software testing reduces defects and ensures reliability across all operational scenarios. Key approaches include:
  • Comprehensive Requirement Testing: Validate user and system-level requirements, trajectories, boundaries, zero values, Go/No-Go scenarios, fault injection, state models, and usability testing.
  • Test Like You Fly (TLYF): Conduct real-world scenario testing to mirror actual flight conditions.
  • End-to-End Testing: Verify complete flight operations, from takeoff to landing, including refueling and transition to the next flight.
  • Hardware-in-the-Loop (HIL) Testing: Simulate real-world conditions using actual hardware components.
  • Endurance, Stress, and Load Testing: Assess system performance under extreme conditions, such as maximum flight duration.
2. Fault-Tolerant Design
Building fault tolerance into aviation software minimizes the risk of failures and ensures safe system behavior. Key strategies include:
  • Failure Modes and Effects Analysis (FMEA): Conduct software FMEA before coding to identify failure modes and root causes based on Common Defect Enumeration (CDE) principles.
  • Fault Injection Testing: Validate mitigation strategies by injecting faults into the system and verifying responses.
  • Continuous Monitoring: Detect and manage issues such as corrupt, missing, or invalid data, unexpected state transitions, and system faults.
  • Anomaly Management Hierarchy: Establish a structured approach to handling system faults efficiently.
  • Fail-Safe States: Implement fail-safe mechanisms to prevent failures from compromising safety.
  • Effective Error Messaging:
    • Prevent flooding users with multiple alerts for the same issue.
    • Clearly distinguish urgency levels in messages.
    • Provide warnings before executing irreversible commands.
    • Offer positive confirmations for successfully executed tasks.
3. Model-Based Systems Engineering (MBSE) for Software Design
Using MBSE before coding ensures a well-structured, defect-resistant design, reducing costly rework. Key methodologies include:
  • State, Timing, Flow, and Sequence Modeling: Define software behavior before implementation.
  • Integration of Software FMEA & CDE: Identify design weaknesses early and refine designs to prevent defects before coding.

Common Defect Enumeration

Leveraging the Common Defect Enumeration (CDE) for Aviation Software
The Common Defect Enumeration (CDE), developed by Mission Ready Software, is publicly available on the Defense Acquisition University R&M Community of Practice website.


Every root cause listed in the CDE is applicable to aviation and has the potential to cause software failures.
Requs Software FMEA intelligently identifies relevant CDEs, estimates their likelihood, and provides controls and testing recommendations. It integrates with MBSE tools, accelerating software design improvements.
Reliability-Driven Software Testing

Our Reliability-Driven Software Testing method ensures comprehensive coverage of CDE-based failure scenarios. These tests are cost-effective yet address critical failure cases often overlooked, making them a valuable investment for enhancing aviation software safety and reliability.