Continuous Formal Verification for Aerospace Applications
File version
Author(s)
McColl, Callum
Pereira, Aaron
de Souza, Paulo
Tuxworth, Gervase
Hexel, René
Griffith University Author(s)
Primary Supervisor
Other Supervisors
Editor(s)
Date
Size
File type(s)
Location
Big Sky, MT, USA
License
Abstract
Aerospace systems have the most stringent requirements when it comes to safety and reliability. The harsh environment combined with the immense costs of designing and manufacturing space applications places huge concern over ensuring that applications are dependable and function as desired. Formal verification is a tool to guarantee correctness for software executing on aerospace platforms. The advantage of formal verification is the complete absence of error against a design specification. Many applications leverage formal verification to ensure correctness and even integrate it into the certification process (e.g. DO-178C).Formal verification is a highly complex and computationally intense process that requires validating complex structures and an iterative approach to achieve a final, formally verified design. This process is further complicated in aerospace applications as traditional methods often exhibit behavioural differences between a formally verified model and the final software when deployed onto embedded architectures. Thus, formal verification needs to ensure that the verified design is accurate and representative of the executable on the target platform. Another major limitation of formal verification is that current approaches place formal verification towards the end of a project lifecycle. This creates a waterfall design and validation process that often leads to significant rewrites that prevent iterative verification.This research introduces continuous verification, a methodology consistent with current principles and practices in Agile development. This approach allows the early detection and correction of errors during the early stages of a project lifecycle. Designers can now decompose the system as a whole and implement models iteratively. Continuous verification allows the partial verification of models while the programmer iteratively implements them, allowing the early correction of errors and identification of non-verifiable entities that require different forms of validation. Our approach uses executable models that ensure a continuously verifiable design as each new feature gets verified as the application evolves. At any point in time, the working system is also formally verified.We demonstrate the feasibility of this approach through continuous verification using GitHub workflows that continuously integrate and verify designs on target hardware. Verification is performed on the target hardware itself, ensuring a verified, executable model. We have evaluated this approach using flight software that utilises an FPGA and processor that communicate through a shared memory interface. The software components of this design follow trunk-based development with a formally verified main branch. This software is due to launch on a satellite in October 2024.
Journal Title
Conference Title
2024 IEEE Aerospace Conference
Book Title
Edition
Volume
Issue
Thesis Type
Degree Program
School
Publisher link
Patent number
Funder(s)
Grant identifier(s)
Rights Statement
Rights Statement
Item Access Status
Note
Access the data
Related item(s)
Subject
Aerospace engineering
Software testing, verification and validation
Persistent link to this record
Citation
McColl, M; McColl, C; Pereira, A; de Souza, P; Tuxworth, G; Hexel, R, Continuous Formal Verification for Aerospace Applications, 2024 IEEE Aerospace Conference, 2024