Modular Formal Requirements-Driven Verification

Adapt requirements refactoring to structure-textual requirements (written in the input language of FRET, FRETISH) to modularise the requirements set.

This method extends the base method, Formal Requirements-Driven Verification, to support refactoring of requirements and hence improve the modularity of requirements. Often, natural-language requirements have a lot of repetition of concepts across different individual requirements. Similar to repeated code in programs, this makes the requirements difficult to update. When translated into formal or semi-formal notations during the requirement engineering process, this can lead to confusion and extra work.  

We introduce refactoring steps for specific requirements engineering tool chains that enable practitioners to refactor their requirements so that they are easier to read, understand, and maintain. This is based on requirements refactoring literature like [MFRDV1], and ultimately program refactoring [MFRDV2].  Such refactoring steps allow us to address dependencies amongst requirements and reduce the repetition of definitions. Integrating the refactoring steps into the specific tool chains speeds up refactoring and enables the refactoring steps to be automatically checked – for example to formally prove that they have only altered the form of the requirements, not their function. 

  • 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 
  • Modular requirements that are easier to maintain as development progresses 
  • Traceability and explainability are improved because the individual requirements themselves are simplified 

Additional to the limitations of the base method: 

  • 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). 
  • Not all requirements can be refactored/modularised effectively. 
  • Not all software refactorings are suitable to apply to FRETISH requirements. 
  • [MFRDV1] Ramos, R., Piveta, E. K., Castro, J., Araujo, J., Moreira, A., Guerreiro, P., Pimenta, M. S., Price, R. T. Improving the Quality of Requirements with Refactoring. (2007) Simposio Brasileiro De Qualidade De Software (pp. 141-155). SBC. https://doi.org/10.5753/sbqs.2007.15573 
  • [MFRDV2] Fowler, M. Refactoring: Improving the Design of Existing Code, 2018. Addison-Wesley Professional.  
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.