Towards a Formally Verified Space Mission Software using SPARK - Neto, Paulo Miguel Ferreira (2019)
This research work is in the scope of the Master course in Computer Science of University of Beira Interior dissertation and introduces the research undertaken in a Master Thesis done in collaboration with Critical Software, SA. This document presents the effort for verification and validation of ExoMars Trace Gas Orbiter Central Software that was fully implemented by Critical Software in cooperation with Thales Alenia Space, for an European Space Agency exploration of Mars atmosphere mission. The work was an Ada implemented code reformulation to SPARK aiming the capability evaluation of code analysis and Design-by-Contract techniques for validation and verification of a spacecraft on board software. On Safety Mission-Critical systems the importance of secure and reliable software path to the introduction of new high integrity development methods as an efficient and low cost alternative of software testing. As Edger Dijsktra said, testing software only detect the presence of bugs but not prove his absence and, besides that, it is a late detection. There is an increased need of safety and functional properties assurance before the system deployment. Design-by-Contract approach is a kind of formal code verification, based on Hoare Logic, that can reduce the costs in two ways, because it gave earlier high guarantees that code is free of runtime errors and run as expected, in the development phase where bugs correction is cheaper. SPARK toolset is used to perform formal code verification for Ada programming language, mostly used on Safety Mission-Critical systems development. SPARK analysis is targeted for assurance of correct information flow and the correct behaviour of programs execution.