Towards Refactoring FRETish Requirements

Like software, requirements evolve and change frequently during the development process. Refactoring is the process of reorganising software without changing its behaviour, to make it easier to understand and modify. We propose refactoring for formalised requirements to reduce repetition in the requirement set so that they are easier to maintain as the system and requirements evolve. This work-in-progress paper describes our motivation for and initial approach to refactoring requirements in NASA’s Formal Requirements Elicitation Tool (FRET). This work was directly triggered by our experience with an industrial aircraft engine software controller use case. In this paper, we reflect on the requirements that were obtained and, with a view to their maintainability, propose and outline functionality for refactoring fretish requirements.

[1]  Yang Gao,et al.  Journal-First: Formal Modelling and Runtime Verification of Autonomous Grasping for Active Debris Removal , 2022, IFM.

[2]  Marie Farrell,et al.  A Methodology for Developing a Verifiable Aircraft Engine Controller from Formal Requirements , 2021, 2022 IEEE Aerospace Conference (AERO).

[3]  Johann Schumann,et al.  The Ten Lockheed Martin Cyber-Physical Challenges: Formalized, Analyzed, and Explained , 2020, 2020 IEEE 28th International Requirements Engineering Conference (RE).

[4]  Guenther Ruhe,et al.  Data-Driven Elicitation and Optimization of Dependencies between Requirements , 2019, 2019 IEEE 27th International Requirements Engineering Conference (RE).

[5]  Claire Pagetti,et al.  CoCoSim, a code generation framework for control/command applications An overview of CoCoSim for multi-periodic discrete Simulink models , 2020 .

[6]  Marie Farrell,et al.  Integrating Formal Verification and Assurance: An Inspection Rover Case Study , 2021, NFM.

[7]  Mauricio A. Saca Refactoring improving the design of existing code , 2017, 2017 IEEE 37th Central America and Panama Convention (CONCAPAN XXXVII).

[8]  Dimitra Giannakopoulou,et al.  Automated formalization of structured natural language requirements , 2021, Inf. Softw. Technol..

[9]  Marie Farrell,et al.  FRETting about Requirements: Formalised Requirements for an Aircraft Engine Controller , 2021, ArXiv.

[10]  Martin Fowler,et al.  Refactoring - Improving the Design of Existing Code , 1999, Addison Wesley object technology series.

[11]  Dimitra Giannakopoulou,et al.  From Partial to Global Assume-Guarantee Contracts: Compositional Realizability Analysis in FRET , 2021, FM.