The Qualifying Machine

A Qualifying Machine (QM) is an agile and lean infrastructure to ease DO-178 tool qualification. The main goal of a QM is to ease the manipulation of all artifacts within the whole application life cycle and to track the activities performed by the development team. The following picture represents the high-level concept of a QM.

The QM - High-level vision Technically speaking, a QM may take the form of a web application whose interface is generated starting from a description of the artifacts and activities the QM has to track. The web application provides a cohesive interface for manipulating qualification material, and in particular:
  • Tool Qualification Plan (TQP), Software Configuration Management Plan (SCMP) and Software Quality Assurance Plan (SQAP)
  • Tool Operational Requirements (TOR)
  • Test Cases and Tests
The QM acts as a high-level front-end for the artifacts deployed in the repository: each single artifact (a fragment of a plan, a TOR, a Test Case, etc.) is deployed on a single physical file. This permits fine-grained configuration management, tracking and traceability of each single artifact within the complete application lifecycle.
The QM interfaces also to a testing and process tracking framework. The testing framework permits to execute tests in native, cross and virtualized environments and to gather test results to display in the web interface. The process tracking can inspect the repository to verify that all activities have been performed following the process described in the Metadata and Activities Model.
The QM is beneficial to several stakeholders:
  • Engineers can use a high-level frontend to manage artifacts and perform (verification) activities;
  • Project managers can use the automatically generated reports to check the advancement status of the qualification process;
  • Certification authorities can access all required material directly from the web interface
A QM for GNATcheck
Within Open-DO, we release an instantiation of the QM concept for GNATcheck. GNATcheck is a coding standard checking tool used for the development of high-integrity applications. You can download the GNATcheck QM from the open-do forge (look for "scm" in the forge page). Then follow the instructions in the README file to install the QM. Once installed, the first page of the GNATcheck QM will look like this:

The GNATcheck QM: front page You can edit artifacts by clicking the "Edit" button on the sidebar on the left. We use wiki technology as our main editing environment. In addition, we support tracking of manual activities (in particular those listed in the SQAP) directly from the QM interface by clicking the "Activities" button on the sidebar on the left:

GNATcheck QM: tracking activities Activities are tracked for each single artifact and are saved in a separate file named verification.xml. It is thus possible to automatically check the status of each single artifact and, by interfacing with the configuration management system, to ascertain that verification activities followed artifacts editing.

Editing Tool Operational Requirements
Supposing the QM is up and running on your machine, you can navigate to Tool Operational Requirements main page to edit TOR, Test Cases and Tests. For example, take a look at the Too_Many_Parents requirement. You can access the test cases for the requirements from this page, and also execute them by clicking on the "Suite" button on the left:

GNATcheck QM: executing tests Succesful tests are highlighted in green, while wrong ones in red. Note that you can even look at the log of test execution by clicking on "log" in the tables.

An open perspective
The GNATcheck Qualifying Machine is released as fully open source. With this initiative, we intend to promote open collaborations in the high-assurance domain and to show how to deploy a lean and agile qualification process.