This paper’s goal is to provide guidance on how to use Ada’s Object Oriented (OO) features for High-Integrity applications; i.e. high-reliability systems with requirements for safety and/or security which may need to demonstrate compliance with domain-specific certification standards.
The paper was written by AdaCore experts with extensive experience in this area through their participation in industrial working groups such as EUROCAE’s WG-91, the DO-178C design committee, and ISO’s Ada Rapporteur Group that manages the Ada language standardization process. Another source of experience comes from the support of AdaCore customers, in domains such as aerospace and transportation, since the company’s inception in the mid 1990s. Many customers are using AdaCore tools during their certification process, and some have already completed the highest level of certification with Ada code while extensively using Object Oriented features.
The Object Orientation Concepts chapter summarizes the principal concepts in order to establish the terminology and provide criteria for comparing languages’ approaches. The Object Orientation in Ada chapter introduces Ada’s model for Object Orientation. Readers familiar with Ada 95 can move quickly to the last sections of this chapter, which describe several new features that are being added to the next revision of language, known as Ada 2012, and which are extremely relevant to safe Object-Oriented programming. The next three chapters – Vulnerabilities and Their Mitigation, Complexity Management, and Safety and Verification Considerations – describe known concerns related to using Object Oriented technology in a High-Integrity environment and discuss recommended solutions. The final chapter, Directions for GNAT Pro Users, starts with a user checklist summarizing the steps we suggest taking when starting out in this area, and then presents the relevant elements and tools of the GNAT Pro technology.
Help us Improve This Document
We expect this document to evolve over time, so we kindly ask readers to provide as much feedback as possible to AdaCore at firstname.lastname@example.org with the name of the document mentioned on the subject line.