DO-178B and DO-178C for Software Professionals

1-3 Day Customizable Course

This course covers the key concepts behind DO-178B/C avionics certification. It also summarizes the differences between DO-178B and DO-178C, with a particular focus on how to apply the guidance in the Object-Oriented Technologies and Related Techniques supplement (DO-332). One entire day is dedicated to presenting how to best use the Ada language and GNAT Pro tool suite to comply with the certification objectives, again applicable both to DO-178B and DO-178C.

Target Audience Software developers and project managers. No previous experience with DO-178B or DO-178C, or with avionics programming, is required. Ada knowledge is necessary for the third day.

Course Duration 1-3 Day Customizable Course

Day 1 – DO-178B and DO-178C Basics

This session describes the DO-178C / DO-178C software life cycle model and its constituent processes. It presents common pitfalls and problems together with concrete examples showing how to address them. Topics to be addressed include:

  • Planning
  • Environment considerations (compiler, run-time libraries, tools, etc.)
  • Requirements and Architecture
  • Software verification process
  • MC/DC structural coverage
  • Determinism considerations (memory usage, Worst Case Execution Time, language semantics, etc.)
  • Differences between DO-178B and DO-178C
  • Overview of the DO-178C supplements
  • Introduction to tool qualification

Day 2 - High-Integrity Object Oriented Programming with the DO-178C OO Technology Supplement

This session comprehensively covers DO-332, the DO-178C supplement that describes the vulnerabilities associated with Object-Oriented Technology and related techniques and shows how to address them. DO-332’s guidance can be used in developing High Integrity application in other domains besides avionics. Topics to be covered include:

  • Rationale for using OOP in certified avionics
  • New objectives and activities in DO-178C for OOP
  • OOP-specific vulnerabilities and verification
    • Inheritance
    • Polymorphism, dynamic binding, and local type consistency
    • Overloading
  • Virtualization vulnerabilities and verification
  • Memory management vulnerabilities and verification
  • Related techniques vulnerabilities and verification
    • Type conversion
    • Exceptions
  • Additional vulnerabilities and verification
    • Traceability
    • Structural Coverage
    • Component-based development
    • Timing analysis

Day 3 - Using GNAT Pro to Meet DO-178B and DO-178C Objectives

This session is specific to the GNAT Pro technology. It demonstrates how to use the Ada language (including features introduced in Ada 2012) and the GNAT Pro toolset to develop certified avionics applications. Sample topics include:

  • Considerations for tool qualification (DO-330)
  • Using Ada for certified avionics applications
  • Custom GNAT Pro Run-Time Profiles
  • Enforcing style checks and restrictions through GNATcheck
  • Unit testing with GNATtest
  • Code coverage with GNATcoverage
  • Understanding the GNAT switches to use with certification
  • Static stack analysis through GNATstack
  • Source to Object Traceability with GNAT Pro
  • Using CodePeer to analyze software vulnerabilities