Automated Verification of Completeness and Consistency of Abstract State Machine Specifications using a SAT Solver

Abstract In the requirements engineering community, consistency and completeness have been identified as important properties of system specifications. Custom algorithms to verify these properties automatically have been devised for a number of specification languages, including SCR, RSML, and Statecharts. In this paper, we provide means to automatically verify completeness and consistency of Abstract State Machine (ASM) specifications. The verification is performed using a widely available tool, a SAT solver. The use of a SAT solver removes the need for designing and fine tuning language specific verification algorithms. Furthermore, the use of a SAT solver automates the verification procedure and produces a counterexample automatically when a specification is incomplete or inconsistent. We provide an algorithm to translate ASM specifications to a SAT problem instance. The translation is illustrated using the TASM toolset in conjunction with the “production cell system” case study.

[1]  R. Stärk,et al.  Abstract State Machines , 2003, Springer Berlin Heidelberg.

[2]  Kristina Lundqvist,et al.  The Timed Abstract State Machine Toolset: Specification, Simulation, and Verification of Real-Time Systems , 2007, CAV 2007.

[3]  Margus Veanes,et al.  Test Case Generation from AsmL Specifications , 2003, Abstract State Machines.

[4]  Kristina Lundqvist,et al.  The Production Cell System , 2007 .

[5]  Wolfram Schulte,et al.  Semantic essence of AsmL , 2003, Theor. Comput. Sci..

[6]  Angelo Gargantini,et al.  ASM-Based Testing: Coverage Criteria and Automatic Test Sequence , 2001, J. Univers. Comput. Sci..

[7]  Egon Börger,et al.  Abstract State Machines , 2003 .

[8]  Kristina Lundqvist,et al.  The TASM Language Reference Manual Version 1.1 , 2007 .

[9]  Sarfraz Khurshid,et al.  TestEra: a novel framework for automated testing of Java programs , 2001, Proceedings 16th Annual International Conference on Automated Software Engineering (ASE 2001).

[10]  Christian Morgenstern,et al.  Why Use Evolving Algebras for Hardware and Software Engineering ? ? , 1995 .

[11]  Giuseppe Del Castillo,et al.  Towards Comprehensive Tool Support for Abstract State Machines: The ASM Workbench Tool Environment and Architecture , 1998, FM-Trends.

[12]  J. How,et al.  Mixed-integer programming for control , 2005, Proceedings of the 2005, American Control Conference, 2005..

[13]  Nancy G. Leveson,et al.  Completeness and Consistency in Hierarchical State-Based Requirements , 1996, IEEE Trans. Software Eng..

[14]  Kristina Lundqvist,et al.  Modeling an electronic throttle controller using the timed abstract state machine language and toolset , 2006, MoDELS'06.

[15]  Michael Sipser,et al.  Introduction to the Theory of Computation , 1996, SIGA.

[16]  Kirsten Winter,et al.  Model Checking for Abstract State Machines , 2008, J. Univers. Comput. Sci..

[17]  Pretschner,et al.  Model Based Testing with Constraint Logic Programming: First Results and Challenges , 2001 .

[18]  Constance L. Heitmeyer,et al.  Automated consistency checking of requirements specifications , 1996, TSEM.

[19]  Phyllis G. Frankl Proceedings of the 2002 ACM SIGSOFT international symposium on Software testing and analysis , 2002 .

[20]  Mikael Sjödin,et al.  The Timed Abstract State Machine Language: An Executable Specification Language for Reactive Real-Time Systems , 2006, RTSS 2006.

[21]  Margus Veanes,et al.  Generating finite state machines from abstract state machines , 2002, ISSTA '02.