Engineering formal requirements: An analysis and testing method for Z documents

Z is a declarative, non‐executable specification language; its diffusion in the field of requirements engineering outside academia is slow but growing. In this paper we focus on some methods for analyzing and testing Z specification documents, with special emphasis on non‐sequential systems specifications. We describe two techniques we have adopted: the former allows the specifier to add to the requirements document a number of properties that then can be checked using a formal semantics; the latter makes it possible to build directly from the requirements specification document a distributed prototype which can be executed and tested over a network of workstations.

[1]  Cliff B. Jones,et al.  Specifications are not (necessarily) executable , 1989 .

[2]  Andy Evans Visualising Concurrent Z Specifications , 1994, Z User Workshop.

[3]  Kees M. van Hee,et al.  Z and High Level Petri Nets , 1991, VDM Europe.

[4]  J. Michael Spivey,et al.  The Z notation - a reference manual , 1992, Prentice Hall International Series in Computer Science.

[5]  Paolo Ciancarini,et al.  Rule-Based Coordination of Logic Programs , 1996, Comput. Lang..

[6]  Daniel Le Métayer,et al.  Reasearch Directions in High-Level Parallel Programming Languages , 1991, Lecture Notes in Computer Science.

[7]  CiancariniP.,et al.  Engineering formal requirements , 1997 .

[8]  David A. Carrington,et al.  Object-Z: An Object-Oriented Extension to Z , 1989, FORTE.

[9]  Armond Inselbert The Institute for Software Engineering. , 1982 .

[10]  Ian J. Hayes,et al.  Specification case studies , 1987 .

[11]  Mark Saaltink,et al.  Z and Eves , 1991, Z User Workshop.

[12]  Daniel Jackson,et al.  Abstract Model Checking of Infinite Specifications , 1994, FME.

[13]  Leon Sterling,et al.  On the Animation of "not Executable" Specifications by Prolog , 1996, Int. J. Softw. Eng. Knowl. Eng..

[14]  J. B. Wordsworth,et al.  Software development with Z , 1992 .

[15]  Michael Z. Spivey,et al.  The Z notation , 1989 .

[16]  Gérard Berry,et al.  The chemical abstract machine , 1989, POPL '90.

[17]  Dieter Barnard,et al.  Combining the Design of Industrial Systems with Effective Verification Techniques , 1994, FME.

[18]  Robin A. Nicholl,et al.  EZ: A System for Automatic Prototyping of Z Specifications , 1991, VDM Europe.

[19]  Peter T. Breuer,et al.  Towards Correct Executable Semantics for Z , 1994, Z User Workshop.

[20]  Paolo Ciancarini Parallel Logic Programming Using the Linda Model of Computation , 1991, Research Directions in High-Level Parallel Programming Languages.

[21]  Samuel H. Valentine The programming language Z- , 1995, Inf. Softw. Technol..

[22]  Paolo Ciancarini,et al.  Formal Requirements and Design Specifications: The Clepsydra Methodology , 1997, Int. J. Softw. Eng. Knowl. Eng..

[23]  Hans Toetenel,et al.  VDM'91 Formal Software Development Methods , 1991, Lecture Notes in Computer Science.

[24]  M. Benjamin A Message Passing System. An example of combining CSP and Z , 1989, Z User Workshop.

[25]  Paola Inverardi,et al.  Formal Specification and Analysis of Software Architectures Using the Chemical Abstract Machine Model , 1995, IEEE Trans. Software Eng..

[26]  Paul Krause,et al.  Computer Aided Transformation of Z into Prolog , 1989, Z User Workshop.

[27]  Jonathan P. Bowen,et al.  A shallow embedding of Z in HOL , 1995, Inf. Softw. Technol..

[28]  Peter Baumann,et al.  A Framework for the Specification of Reactive and Concurrent Systems in Z , 1995, FSTTCS.

[29]  Antoni Diller,et al.  Z - an introduction to formal methods , 1990 .

[30]  Debra J. Richardson,et al.  Specification-based test oracles for reactive systems , 1992, International Conference on Software Engineering.

[31]  Andy Evans,et al.  Specifying & Verifying Concurrent Systems Using Z , 1994, FME.

[32]  Paolo Ciancarini,et al.  Parallel Symbolic Computing with the Shared Dataspace Coordination Model , 1994, ICLP Workshop: Process-Based Parallel Logic Programming.

[33]  Xiaoping Jia An approach to animating Z specifications , 1995, Proceedings Nineteenth Annual International Computer Software and Applications Conference (COMPSAC'95).

[34]  Daniel Jackson,et al.  Efficient Search as a Means of Executing Specifications , 1996, TACAS.

[35]  K. Mani Chandy,et al.  Parallel program design - a foundation , 1988 .

[36]  Jonathan P. Bowen,et al.  Z and HOL , 1994, Z User Workshop.

[37]  C. L. Hamblin,et al.  Computer Languages , 1985, Aust. Comput. J..

[38]  Michael W. Godfrey,et al.  VDM '91 Formal Software Development Methods , 1991, Lecture Notes in Computer Science.

[39]  Gérard Boudol,et al.  Some Chemical Abstract Machines , 1993, REX School/Symposium.

[40]  Xiaoping Jia ZTC: A Type Checker for Z User's Guide , 1994 .

[41]  Norbert E. Fuchs Specifications are (preferably) executable , 1992, Softw. Eng. J..

[42]  Franca Garzotto,et al.  On the Specification of Real-Time Systems Using Logic Programming , 1987, ESEC.

[43]  Paolo Ciancarini,et al.  A Formal Approach to Software Design: The Clepsydra Methodology , 1995, ZUM.

[44]  Edmund Kazmierczak,et al.  Cogito: a Methodology and System for Formal Software Development , 1995, Int. J. Softw. Eng. Knowl. Eng..

[45]  Susan Stepney,et al.  Z in practice , 1995, BCS practitioner series.

[46]  Jim Woodcock,et al.  A Simpler Semantics for Z , 1990, Z User Workshop.

[47]  Richard A. Kemmerer,et al.  Testing Formal Specifications to Detect Design Errors , 1985, IEEE Transactions on Software Engineering.