Model checking RSML/sup -e/ requirements

Model checking is a promising technique for automated verification or refutation of software systems. Nevertheless, it has not been used widely in practice mainly due to the lack of the supporting tools that incorporate the model checking activity into the development process. As a part of our overall method supporting specification centered system development, we have implemented a translator between a formal specification language RSML/sup -e/ and a symbolic model checker NuSMV. Our translation and abstraction approach aims at usability in practice so that model checking can be used as a routine process during requirement analysis without requiring much knowledge about formal methods. Preliminary results from applying the system in a commercial setting is quite promising. We discuss our translation and abstraction approach in some depth and illustrate its feasibility with some preliminary results.

[1]  Stephan Merz,et al.  Model Checking , 2000 .

[2]  Mats Per Erik Heimdahl,et al.  Specification-based prototyping for embedded systems , 1999, ESEC/FSE-7.

[3]  Nancy G. Leveson,et al.  Requirements Specification for Process-Control Systems , 1994, IEEE Trans. Software Eng..

[4]  David Harel,et al.  Statecharts: A Visual Formalism for Complex Systems , 1987, Sci. Comput. Program..

[5]  Joanne M. Atlee,et al.  State-Based Model Checking of Event-Driven System Requirements , 1993, IEEE Trans. Software Eng..

[6]  Maria Gini,et al.  Structuring formal state-based specifications for reuse and the development of product families , 2002 .

[7]  Pascal Raymond,et al.  The synchronous data flow programming language LUSTRE , 1991, Proc. IEEE.

[8]  Kedar S. Namjoshi,et al.  Syntactic Program Transformations for Automatic Abstraction , 2000, CAV.

[9]  Edmund M. Clarke,et al.  Model checking and abstraction , 1994, TOPL.

[10]  David Notkin,et al.  Model checking large software specifications , 1996, SIGSOFT '96.

[11]  John Rushby,et al.  User guide for the pvs specification and verification system (beta release) , 1991 .

[12]  Bernd Finkbeiner,et al.  Abstraction and Modular Verification of Infinite-State Reactive Systems , 1997, Requirements Targeting Software and Systems Engineering.

[13]  James C. Corbett,et al.  Constructing compact models of concurrent Java programs , 1998, ISSTA '98.

[14]  Nicolas Halbwachs,et al.  Programming and Verifying Real-Time Systems by Means of the Synchronous Data-Flow Language LUSTRE , 1992, IEEE Trans. Software Eng..

[15]  Klaus Havelund,et al.  Model checking JAVA programs using JAVA PathFinder , 2000, International Journal on Software Tools for Technology Transfer.

[16]  Richard Gerber,et al.  Model-checking concurrent systems with unbounded integer variables: symbolic representations, approximations, and experimental results , 1999, TOPL.

[17]  Myla Archer,et al.  Using Abstraction and Model Checking to Detect Safety Violations in Requirements Specifications , 1998, IEEE Trans. Software Eng..

[18]  Hassen Saïdi,et al.  Construction of Abstract State Graphs with PVS , 1997, CAV.

[19]  Sanjai Rayadurgam,et al.  Automatic abstraction for model checking software systems with interrelated numeric constraints , 2001, ESEC/FSE-9.

[20]  Jürgen Dingel,et al.  Model Checking for Infinite State Systems Using Data Abstraction, Assumption-Commitment Style reasoning and Theorem Proving , 1995, CAV.

[21]  Mats Per Erik Heimdahl,et al.  Specifying and Analysing System-Level Inter-Component Interfaces , 2000, Requirements Engineering.

[22]  James C. Corbett,et al.  Bandera: extracting finite-state models from Java source code , 2000, ICSE.

[23]  Sérgio Vale Aguiar Campos,et al.  Symbolic Model Checking , 1993, CAV.

[24]  Orna Grumberg,et al.  Model checking and modular verification , 1994, TOPL.