Converting Specifications in a Subset of Object-Z to Skeletal Spec# Code for both Static and Dynamic Analysis

Construction of correctness is an essential issue for the implementation of a reliable software system. Formal methods based verification techniques provide programmers various ways to reason their program correctness through mathematically supported static analysis and dynamic analysis. In this paper, we introduce a tool that converts formal specifications in a subset of Object-Z to skeletal Spec# code with assertions. This tool aims at facilitating the refinement from formal specifications to Spec# and the full usage of the static and dynamic analysis techniques in Spec#.

[1]  Claude Caci,et al.  Testing object-oriented systems , 2000, SOEN.

[2]  John G. P. Barnes,et al.  High Integrity Software - The SPARK Approach to Safety and Security , 2003 .

[3]  Dr. David Crocker Developing Reliable Software using Object-Oriented Formal Specification and Refinement [ Extended abstract prepared 24 March 2003 ] , 2003 .

[4]  Gavin Mooney,et al.  Air vehicle Software Static Code Analysis Lessons Learnt , 2001 .

[5]  Per Capita,et al.  About the authors , 1995, Machine Vision and Applications.

[6]  Bertrand Meyer,et al.  Eiffel: The Language , 1991 .

[7]  Brian Stevens Implementing Object-Z with Perfect Developer , 2006, J. Object Technol..

[8]  Cui Zhang,et al.  Generating Java Skeletal Code with Design Contracts from Specifications in a Subset of Object Z , 2006, 5th IEEE/ACIS International Conference on Computer and Information Science and 1st IEEE/ACIS International Workshop on Component-Based Software Engineering,Software Architecture and Reuse (ICIS-COMSAR'06).

[9]  Cui Zhang,et al.  Support for Design by Contract™ in the C# Programming Language , 2005 .

[10]  Graeme Smith,et al.  The Object-Z Specification Language , 1999, Advances in Formal Methods.

[11]  G.-H. Bagherzadeh Rafsanjani,et al.  From Object-Z to C++: A Structural Mapping , 1992, Z User Workshop.

[12]  Jim Woodcock,et al.  First Steps in the Verified Software Grand Challenge , 2006, Computer.

[13]  Clemens Fischer Combination and implementation of processes and data: from CSP-OZ to Java , 2000 .

[14]  Jonathan P. Bowen,et al.  Formal Methods , 2010, Computing Handbook, 3rd ed..