This free booklet, “AdaCore Technologies for DO-178C / ED-12C”, written by Quentin Ochem (AdaCore) and certification expert Frédéric Pothon, addresses the DO-178C / ED-12C standards suite – the “core” DO-178C / ED-12C standard and its technology supplements – and explains many of their more subtle aspects in the context of several different development scenarios. In so doing, the booklet provides insights into how the Ada and SPARK languages, combined with AdaCore’s products and services, can help engineers develop and verify airborne software. Many of AdaCore’s tools have been qualified on safety-critical projects and have qualification material available; using a qualified tool can save considerable effort in demonstrating that various objectives in the DO-178C / ED-12C standards suite have been met.
“DO-178C is one of the most complex software safety standards in the industry,” said Quentin Ochem, lead of Business Development at AdaCore. “This booklet is aimed at software engineers and architects, to help them read between the lines of the standard and better understand the intent, using AdaCore’s technologies to illustrate how to meet the various requirements.”
The booklet approaches its subject matter from several angles. One chapter summarises the Ada and SPARK languages and describes various AdaCore tools, many of which have been qualified or are qualifiable for safety-critical systems:
- The GNAT Pro Assurance development environment, including support for “sustained branches”, which allows customers to evolve their software on a stable but maintained version of the GNAT Pro environment;
- The CodePeer advanced static analysis tool for Ada, which can find subtle bugs and vulnerabilities both during development and retrospectively on existing codebases;
- Basic static analysis tools, including the GNATcheck code standard enforcer and the GNATstack tool for computing maximum stack usage;
- Dynamic analysis tools: GNATtest (a test harness generator), GNATemulator (a target emulator), and GNATcoverage (a code coverage analyser at both the object and source levels, handling statement coverage, decision coverage, and