Resolute: An Assurance Case Language for Architecture Models
This work addresses the challenge of maintaining safety and correctness in system development for engineers, though it is incremental as it builds on existing assurance case and formal methods approaches.
The authors tackled the problem of ensuring consistency and rigor in assurance cases for complex systems by developing a framework that automatically generates assurance cases from architectural models and formal analyses, resulting in more rigorous arguments with a formal logical foundation.
Arguments about the safety, security, and correctness of a complex system are often made in the form of an assurance case. An assurance case is a structured argument, often represented with a graphical interface, that presents and supports claims about a system's behavior. The argument may combine different kinds of evidence to justify its top level claim. While assurance cases deliver some level of guarantee of a system's correctness, they lack the rigor that proofs from formal methods typically provide. Furthermore, changes in the structure of a model during development may result in inconsistencies between a design and its assurance case. Our solution is a framework for automatically generating assurance cases based on 1) a system model specified in an architectural design language, 2) a set of logical rules expressed in a domain specific language that we have developed, and 3) the results of other formal analyses that have been run on the model. We argue that the rigor of these automatically generated assurance cases exceeds those of traditional assurance case arguments because of their more formal logical foundation and direct connection to the architectural model.