Formal Requirements-Driven Verification

Apply formal methods at the requirements phase to ensure that they are correct and checkable.

A system’s requirements drive what features are included in its design. Ensuring that the design adequately reflects the system’s requirements can often be difficult. Formal methods are effective when checking this sort of relationship between artefacts, but only when the artefacts are described formally. However, requirements are often expressed in natural language, and often at a level of detail that is not suitable for direct formalisation [SFM1]. 

Eliciting the system’s requirements and formalising them is a task best completed by a collaboration between those knowledgeable about the system and those knowledgeable about formalisation. But using a formal language during this process can slow down progress, as the systems engineers are taught the intricacies of the formal method, and the formalists try to formalise too much detail too quickly. Thus, semi-formal languages are used as an intermediate between natural- and formal-languages. This avoids slowing down the requirements elicitation process, but still provides enough formalisation to both reduce ambiguities and make the requirements easier to (fully) formalise later on [SFM2]. 

Our tool of choice, the Formal Requirements Elicitation Tool (FRET), uses a structed natural-language called FRETISH as its input language. We manually encode the available natural-language requirements into FRETISH, then FRET automatically translates them into Temporal Logic. FRET is also capable of exporting the requirements as contracts for Simulink diagrams (in a language called CoCoSim). 

  • Quicker Translation to Formal Specifications
  • Identification of ambiguities in natural language requirements at an early stage in the development process.
  • Formal specifications are based on formal requirements and linked to the system model.
  • Intermediate language used to avoid requirements engineers needing to learn a formal language
  • Not all requirements can be formalised, depending on the tool that is used. 
  • Requirements engineers still must understand the intermediate language (though this is a much lower burden than learning a formal language). 
  • [SFM1] Rozier, Kristin Yvonne, "Specification: The Biggest Bottleneck in Formal Methods and Autonomy" (2016). Verified Software. Theories, Tools, and Experiments (pp. 8-26). Springer. https://doi.org/10.1007/978-3-319-48869-1_2 
  • [SFM2] Giannakopoulou, D., Pressburger, T., Mavridou, A., & Schumann, J. (2020). Generation of formal requirements from structured natural language. In International Working Conference on Requirements Engineering: Foundation for Software Quality (pp. 19-35). Springer. https://doi.org/10.1007/978-3-030-44429-7_2 
Method Dimensions
In-the-lab environment
Analytical - Formal
Model, Software
Requirement Analysis, Architecture Design, System Design, Detail Design
Thinking, Acting, Other, Sensing
Non-Functional - Safety, Functional
V&V process criteria, SCP criteria
Relations
Contents

There are currently no items in this folder.