CZT Support for Z Extensions

Community Z Tools (CZT) is an integrated framework for the Z formal specification language. In this paper, we show how it is also designed to support extensions of Z, in a way that minimises the work required to build a new Z extension. The goals of the framework are to maximise extensibility and reuse, and minimise code duplication and maintenance effort. To achieve these goals, CZT uses a variety of different reuse mechanisms, including generation of Java code from a hierarchy of XML schemas, XML templates for shared code, and several design patterns for maximising reuse of Java code. The CZT framework is being used to implement several integrated formal methods, which add object-orientation, real-time features and process algebra extensions to Z. The effort required to implement such extensions of Z has been dramatically reduced by using the CZT framework.

[1]  Michael Winikoff,et al.  Analysing Modes and Subtypes in Z Specifications , 1998 .

[2]  Jim Woodcock,et al.  Operational Semantics for Model Checking Circus , 2005, FM.

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

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

[5]  Jim Woodcock,et al.  Unifying Theories in ProofPower-Z , 2006, UTP.

[6]  Leo Freitas,et al.  Model checking Circus , 2005 .

[7]  Jin Song Dong,et al.  ZML: XML Support for Standard Z , 2003, ZB.

[8]  Jim Davies,et al.  A Brief History of Timed CSP , 1995, Theor. Comput. Sci..

[9]  Rance Cleaveland,et al.  Testing equivalence as a bisimulation equivalence , 1989, Formal Aspects of Computing.

[10]  Michel de Champlain,et al.  A Pattern Language To Visitors , 2001 .

[11]  Jim Woodcock,et al.  A tactic calculus — abridged version , 1996, Formal Aspects of Computing.

[12]  Andrew William Roscoe,et al.  The Theory and Practice of Concurrency , 1997 .

[13]  Ana Cavalcanti A refinement calculus for Z , 1997 .

[14]  Carroll Morgan,et al.  Programming from specifications (2nd ed.) , 1994 .

[15]  Petra Malik,et al.  CZT: A Framework for Z Tools , 2005, ZB.

[16]  Jin Song Dong,et al.  Timed Communicating Object Z , 2000, IEEE Trans. Software Eng..

[17]  Jim Woodcock,et al.  A Concurrent Language for Refinement , 2001, IWFM.

[18]  Martin E. Nordberg Default and extrinsic visitor , 1997 .

[19]  Robert C. Martin,et al.  Acyclic visitor , 1997 .

[20]  Clemens Fischer,et al.  How to Combine Z with Process Algebra , 1998, ZUM.

[21]  Mark Saaltink,et al.  The Z/EVES Reference Manual (for Version 1.5) , 1997 .

[22]  Jifeng He,et al.  Towards a Time Model for Circus , 2002, ICFEM.

[23]  Mark Utting,et al.  Data structures for Z testing tools. , 2001 .

[24]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[25]  Andrew Martin,et al.  A Tactic Calculus , 1996 .

[26]  Andrew William Roscoe,et al.  Model-checking CSP , 1994 .

[27]  Jim Woodcock,et al.  Unifying theories in ProofPower-Z , 2006, Formal Aspects of Computing.

[28]  Marcel V. M. Oliveira A Refinement Calculus for Circus - Mini-thesis , 2004 .

[29]  C. A. R. Hoare,et al.  Unifying theories of programming , 1998, RelMiCS.

[30]  Augusto Sampaio,et al.  Unifying classes and processes , 2005, Software & Systems Modeling.

[31]  Carroll Morgan,et al.  Programming from specifications , 1990, Prentice Hall International Series in computer science.

[32]  Jim Woodcock,et al.  Towards mobile processes in unifying theories , 2004, Proceedings of the Second International Conference on Software Engineering and Formal Methods, 2004. SEFM 2004..