Sharper Specs for Smarter Drones: Formalising Requirements with FRET
摘要
[Context and motivation] Software requirements are commonly expressed in natural-language, which must be formalised if they are to be used by formal methods such as Runtime Verification (RV), where we verify that an implementation obeys its requirements during execution. [Question/problem] This paper reports on our experience of using the Formal Requirements Elicitation Tool (FRET) to formalise requirements for an autonomous tilt-rotor drone in the ProVANT Emergentia research project. Structured, formalised requirements help to refine the meaning of, and discover ambiguities in, a requirements set, which is beneficial for safety-critical systems. FRET generates a temporal logic semantics for each requirement, providing formulas that can be used for RV. [Principal ideas/results] We describe the process of formalising the natural-language requirements using FRET. We present the progress made in each of the four versions of the requirements set as new information was elicited and incorporated. Our two concrete outputs are the formalised requirement set, which we will use in our ongoing development and verification of ProVANT; and metrics about the requirements. [Contribution] From our experience, we present guidance for requirements elicitation and formalisation with FRET. We highlight situations where it was difficult to formalise these requirements and describe potential improvements to FRET to address these difficulties.