Modelchecking Correctness of Refactorings - Some Experiments

Refactorings are changes made to programs, models or specifications with the intention of improving their structure and thus making them clearer, more readable and re-usable. Refactorings are required to be behaviour-preserving in that the external behaviour of the program/model/specification remains unchanged. In this paper we show how a simple type of refactorings on object-oriented specifications (written in Object-Z) can be formally shown to be behaviour-preserving using a modelchecker (SAL). The class of refactorings treated covers those operating on a single method only.

[1]  DPhil John Derrick BSc,et al.  Refinement in Z and Object-Z , 2001, Formal Approaches to Computing and Information Technology.

[2]  John Derrick,et al.  Using Coupled Simulations in Non-atomic Refinement , 2003, ZB.

[3]  John Derrick,et al.  Issues in Implementing a Model Checker for Z , 2006, ICFEM.

[4]  Eerke Albert Boiten,et al.  IO-refinement in Z , 1998, FM-Trends 1998.

[5]  Alan Bundy,et al.  Constructing Induction Rules for Deductive Synthesis Proofs , 2006, CLASE.

[6]  Natarajan Shankar,et al.  The SAL Language Manual , 2003 .

[7]  Alexander K. Petrenko,et al.  Electronic Notes in Theoretical Computer Science , 2009 .

[8]  Graeme Smith,et al.  Architectural design in object-Z , 2004, 2004 Australian Software Engineering Conference. Proceedings..

[9]  Graeme Smith,et al.  Model Checking Z Specifications Using SAL , 2005, ZB.

[10]  Christie Marr,et al.  Using the Alloy Analyzer to Verify Data Refinement in Z , 2005, Electron. Notes Theor. Comput. Sci..

[11]  Jean-Marc Jézéquel,et al.  Refactoring UML Models , 2001, UML.

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

[13]  Edmund M. Clarke,et al.  Using Branching Time Temporal Logic to Synthesize Synchronization Skeletons , 1982, Sci. Comput. Program..

[14]  John Derrick,et al.  Verifying data refinements using a model checker , 2006, Formal Aspects of Computing.

[15]  Graeme Smith,et al.  Refactoring Object-Oriented Specifications: A Process for Deriving Designs , 2006 .

[16]  Tom Mens,et al.  A survey of software refactoring , 2004, IEEE Transactions on Software Engineering.

[17]  Jim Woodcock,et al.  Using Z - specification, refinement, and proof , 1996, Prentice Hall international series in computer science.

[18]  Bernhard Rumpe,et al.  Refactoring of Programs and Specifications , 2003 .

[19]  Thomas Ruhroth Refactoring Object-Z specifications , 2006 .

[20]  Kai Engelhardt,et al.  Data Refinement: Model-Oriented Proof Methods and their Comparison , 1998 .

[21]  Heike Wehrheim,et al.  Behavioural Subtyping Relations for Object-Oriented Formalisms , 2000, AMAST.