Development and Verification of a Flight Stack for a High-Altitude Glider in Ada/SPARK 2014
This work addresses software reliability challenges for high-integrity systems in aerospace, but it is incremental as it applies an existing verification method to a new domain.
The paper tackled the development and verification of a flight stack for a high-altitude unmanned glider using SPARK 2014, identifying limitations and pitfalls in the process and providing workarounds and design recommendations.
SPARK 2014 is a modern programming language and a new state-of-the-art tool set for development and verification of high-integrity software. In this paper, we explore the capabilities and limitations of its latest version in the context of building a flight stack for a high-altitude unmanned glider. Towards that, we deliberately applied static analysis early and continuously during implementation, to give verification the possibility to steer the software design. In this process we have identified several limitations and pitfalls of software design and verification in SPARK, for which we give workarounds and protective actions to avoid them. Finally, we give design recommendations that have proven effective for verification, and summarize our experiences with this new language.