Formal Requirements Validation
Flaws in requirements may have severe impacts on the subsequent phases of the development flow. These also undermine the formal verification activity, which typically formalizes the requirements into formal properties that are considered as golden and used to check the correctness of the design or software/hardware implementation. Most of the efforts in formal methods have historically been devoted to comparing a design against a set of requirements. The validation of the requirements themselves, however, has often been disregarded and poses several challenges. First, requirements are often written in natural language, and may thus contain a high degree of ambiguity. Second, the informal requirements often express global constraints on the system-to-be (e.g., mutual exclusion), and, in order to retain a direct connection with the informal requirements, the formalization cannot follow standard model-based approaches, but must be complemented with more suitable formalisms such as temporal logics. Third, the formal validation of requirements suffers from the lack of a clear correctness criterion (which in the case of design verification is basically given by the availability of high-level properties). Finally, the expressiveness of the language used in the formalization may go beyond the typical level used for formal verification (e.g., propositional logic).
The methodology for requirements analysis proposed in the PROSYD project [FRV1, FRV2] is based on a series of checks in terms of satisfiability of LTL to verify the consistency of properties, their compatibility with some scenario, and their entailment of some assertions. This work has been extended to more expressive logic to represent requirements of hybrid systems [FRV3, FRV4] and to temporal satisfiability modulo theories [FRV5]. Other formal checks that can be used to pinpoint issues in the requirements specification are based on the notions of realizability [FRV6], vacuity [FRV7], or unconstrained outputs [FRV8].
- The formal validation helps in identifying issues in the requirements specification;
- Detecting issues at the requirements level in the early phases of the design may yield a huge saving in terms of costs.
- The formalization requires effort and expertise in interpreting the results.
- [FRV1] Ingo Pill, Simone Semprini, Roberto Cavada, Marco Roveri, Roderick Bloem, Alessandro Cimatti: Formal analysis of hardware requirements. DAC 2006: 821-826
- [FRV2] Roderick Bloem, Roberto Cavada, Ingo Pill, Marco Roveri, Andrei Tchaltsev: RAT: A Tool for the Formal Analysis of Requirements. CAV 2007: 263-267
- [FRV3] Alessandro Cimatti, Marco Roveri, Stefano Tonetta: Requirements Validation for Hybrid Systems. CAV 2009: 188-203 Requirements Validation for Hybrid Systems. CAV 2009: 188-203
- [FRV4] Alessandro Cimatti, Marco Roveri, Angelo Susi, Stefano Tonetta: Validation of requirements for hybrid systems: A formal approach. ACM Trans. Softw. Eng. Methodol. 21(4): 22:1-22:34 (2012)
- [FRV5] Alessandro Cimatti, Alberto Griggio, Enrico Magnago, Marco Roveri, Stefano Tonetta: SMT-based satisfiability of first-order LTL with event freezing functions and metric operators. Inf. Comput. 272: 104502 (2020)
- [FRV6] Amir Pnueli, Roni Rosner: On the Synthesis of a Reactive Module. POPL 1989: 179-190
- [FRV7] Dana Fisman, Orna Kupferman, Sarai Sheinvald-Faragy, Moshe Y. Vardi: A Framework for Inherent Vacuity. Haifa Verification Conference 2008: 7-22
- [FRV8] Koen Claessen: A Coverage Analysis for Safety Property Lists. FMCAD 2007: 139-145