Towards Verifying VDM Using SPIN

The Vienna Development Method (VDM) is a formal method that supports modeling and analysis of software systems at various levels of abstraction. Case studies have shown that applying VDM, or formal specification, in general, in software development processes is the key to achieving high-quality software development. However, to derive full benefit from the use of VDM in software development, associative activities such as validating and verifying VDM models are crucial. Since the primary way of verifying a VDM model is specification animation, we aim to utilize the animation feature of VDM to apply model checking techniques. In this paper, we propose an approach to supporting model check VDM models by constructing a hybrid verification model combining VDMJ, a VDM interpreter, and SPIN, one of the most popular model checkers, especially in practical use. Two case studies are reported, and the usability, scalability, and efficiency of our approach are discussed.

[1]  Nick Battle,et al.  The overture initiative integrating tools for VDM , 2010, ACM SIGSOFT Softw. Eng. Notes.

[2]  Alex Groce,et al.  Swarm Verification Techniques , 2011, IEEE Transactions on Software Engineering.

[3]  Taro Kurita,et al.  The Application of VDM to the Industrial Development of Firmware for a Smart Card IC Chip , 2009, Int. J. Softw. Informatics.

[4]  Cliff B. Jones,et al.  Systematic software development using VDM (2. ed.) , 1990, Prentice Hall International Series in Computer Science.

[5]  Taro Kurita,et al.  Application of a Formal Specification Language in the Development of the "Mobile FeliCa" IC Chip Firmware for Embedding in Mobile Phone , 2008, FM.

[6]  Kenneth Lausdahl,et al.  Translating VDM to Alloy , 2013, IFM.

[7]  Gerard J. Holzmann,et al.  Model-Driven Software Verification , 2004, SPIN.

[8]  Peter Gorm Larsen,et al.  Recent industrial applications of VDM in Japan , 2007 .

[9]  Dines Bjørner,et al.  The Vienna Development Method: The Meta-Language , 1978, Lecture Notes in Computer Science.

[10]  Keijiro Araki,et al.  A framework for formal specification considering review and specification-based testing , 2010, TENCON 2010 - 2010 IEEE Region 10 Conference.

[11]  Peter Gorm Larsen,et al.  Validated Designs for Object-oriented Systems , 2004 .

[12]  Markus Triska,et al.  The Finite Domain Constraint Solver of SWI-Prolog , 2012, FLOPS.

[13]  Peter Gorm Larsen,et al.  Combining VDM with Executable Code , 2012, ABZ.

[14]  Gerard J. Holzmann,et al.  The SPIN Model Checker - primer and reference manual , 2003 .

[15]  Peter Gorm Larsen,et al.  Combining VDM-SL Specifications with C++ Code , 1996, FME.

[16]  Peter Gorm Larsen,et al.  Modelling Systems: Practical Tools and Techniques in Software Development , 1998 .

[17]  Gerard J. Holzmann,et al.  Mars code , 2014, CACM.

[18]  Peter Gorm Larsen,et al.  The formal semantics of ISO VDM-SL , 1995 .

[19]  Peter Gorm Larsen,et al.  VDMTools , 2008, ACM SIGPLAN Notices.

[20]  Peter Gorm Larsen,et al.  An Executable Subset of Meta-IV with Loose Specification , 1991, VDM Europe.

[21]  Jozef Hooman,et al.  Modeling and Validating Distributed Embedded Real-Time Systems with VDM++ , 2006, FM.

[22]  Michael J. Butler,et al.  ProB: A Model Checker for B , 2003, FME.