Translating Software Designs for Model Checking

This paper presents a systematic consideration of the major issues involved in translation of executable design level software specification languages to directly model-checkable formal languages. These issues are considered under the framework of integrated model/property translation and include: (1) translator architecture; (2) semantics translation from a software language to a formal language; (3) property specification and translation; (4) transformations for state space reduction; (5) translator validation and evolution. Solutions to these issues are defined, described, and illustrated in the context of translating xUML, an executable design level software specification language, to S/R, the input formal language of the COSPAN model checker.

[1]  Gerard J. Holzmann,et al.  The Model Checker SPIN , 1997, IEEE Trans. Software Eng..

[2]  Marius Bozga,et al.  Automated validation of distributed software using the IF environment , 2001, Proceedings IEEE International Symposium on Network Computing and Applications. NCA 2001.

[3]  Joseph Sifakis,et al.  Specification and verification of concurrent systems in CESAR , 1982, Symposium on Programming.

[4]  Edmund M. Clarke,et al.  Design and Synthesis of Synchronization Skeletons Using Branching-Time Temporal Logic , 1981, Logic of Programs.

[5]  Gerard J. Holzmann,et al.  An Automated Verification Method for Distributed Systems Software Based on Model Extraction , 2002, IEEE Trans. Software Eng..

[6]  Patrice Godefroid,et al.  Refining Dependencies Improves Partial-Order Verification Methods (Extended Abstract) , 1993, CAV.

[7]  Fei Xie,et al.  Translation-Based Compositional Reasoning for Software Systems , 2003, FME.

[8]  David E. Culler,et al.  System architecture directions for networked sensors , 2000, SIGP.

[9]  Diego Latella,et al.  Model checking UML Statechart diagrams using JACK , 1999, Proceedings 4th IEEE International Symposium on High-Assurance Systems Engineering.

[10]  Joseph Sifakis,et al.  IF: An intermediate representation for SDL and its applications , 1999, SDL Forum.

[11]  Delbert Tesar,et al.  A reusable operational software architecture for advanced robotics , 1996 .

[12]  Gerard J. Holzmann,et al.  Implementing statecharts in PROMELA/SPIN , 1998, Proceedings. 2nd IEEE Workshop on Industrial Strength Formal Specification Techniques.

[13]  Stephen J. Mellor,et al.  Executable UML - A Foundation for Model-Driven Architecture , 2002, Addison Wesley object technology series.

[14]  George S. Avrunin,et al.  Property specification patterns for finite-state verification , 1998, FMSP '98.

[15]  Doron A. Peled Combining Partial Order Reductions with On-the-fly Model-Checking , 1994, CAV.

[16]  James C. Browne,et al.  Model Checking Software via Abstraction of Loop Transitions , 2003, FASE.

[17]  Fei Xie,et al.  ObjectCheck: A Model Checking Tool for Executable Object-Oriented Software System Designs , 2002, FASE.

[18]  Jozef Hooman,et al.  Concurrency Verification: Introduction to Compositional and Noncompositional Methods , 2001, Cambridge Tracts in Theoretical Computer Science.

[19]  Tommaso Bolognesi,et al.  Tableau methods to describe strong bisimilarity on LOTOS processes involving pure interleaving and enabling , 1994, FORTE.

[20]  Hüsnü Yenigün,et al.  Compressing Transitions for Model Checking , 2002, CAV.

[21]  Fei Xie,et al.  Verified systems by composition from verified components , 2003, ESEC/FSE-11.

[22]  Hüsnü Yenigün,et al.  SDLcheck: A Model Checking Tool , 2001, CAV.

[23]  James C. Browne,et al.  A Formal Object-Oriented Analysis for Software Reliability: Design for Verification , 2001, FASE.

[24]  Johan Lilius,et al.  vUML: a tool for verifying UML models , 1999, 14th IEEE International Conference on Automated Software Engineering.

[25]  Joseph Sifakis,et al.  Compilation and verification of LOTOS specifications , 1990, PSTV.

[26]  Doron A. Peled,et al.  Static Partial Order Reduction , 1998, TACAS.

[27]  Klaus Havelund,et al.  Applying Model Checking in Java Verification , 1999, SPIN.

[28]  Andrew B. Whinston,et al.  E-Process Design and Assurance Using Model Checking , 2000, Computer.

[29]  Amir Pnueli,et al.  Translation Validation , 1998, TACAS.

[30]  Matthew B. Dwyer,et al.  Bandera: a source-level interface for model checking Java programs , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[31]  Fei Xie,et al.  Integrated State Space Reduction for Model Checking Executable Object-Oriented Software System Designs , 2002, FASE.

[32]  Kenneth L. McMillan,et al.  Symbolic model checking , 1992 .

[33]  Antti Valmari,et al.  A stubborn attack on state explosion , 1990, Formal Methods Syst. Des..

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

[35]  Sriram K. Rajamani,et al.  The SLAM project: debugging system software via static analysis , 2002, POPL '02.

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