Applying Formal Methods for Integrating Advanced Algorithms in Safety Critical Systems
In software engineering it is essential that updates are deployed for continual improvement. While software updates bring new functionality, updates also may introduce instability. This leads to failures of various kinds. This is especially problematic in safety-critical systems where there is a potential for injury or loss of life. However, newer and more sophisticated software carries potential advantages, including higher performance and reliability. Therefore, there are benefits in adopting newer software if the integration process is assured. In this thesis, I present a framework for assured integration; one that links requirements, design, and implementation. The proposed framework includes a new design approach and new software design tools. The approach calls for an embedded decision-making architecture in an autonomous system which contains constrained variants of the desired complex software. The modules are subject to an authoritative module that observes their behavior. Constrained modules are developed by creating verified formal models from underlying component requirements. Those models are used to generate runtime validation code that detects requirement failures.