Abstract
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.
Similar content being viewed by others
References
Barden, R., S. Stepney, and D. Cooper (1994), Z in Practice, Prentice-Hall, London.
Baumann, P. and K. Lermer (1995), “A Framework for the Specification of Reactive and Concurrent Systems in Z,” In Proc. 15th Conference on Foundation of Software Technology and Theoretical Computer Science, Bangalore, India, P. Thiagarajan, Ed., Lecture Notes in Computer Science, vol. 1026, Springer-Verlag, Berlin, pp. 62–79.
Benjamin, M. (1989), “A Message Passing System. An example of combining Z and CSP,” In Proc. 4th Z Users Workshop (ZUM89), Oxford, J. Nicholls, Ed., Workshops in Computing, Springer-Verlag, Berlin, pp. 221–228.
Berry, G. and G. Boudol (1992), “The Chemical Abstract Machine,” Theoretical Computer Science 96, 217–248.
Bloesch, A., E. Kazmierczak, P. Kearney, and O. Traynor, (1995), “Cogito: Methodology and System for Formal Software Development,” Int. Journal on Software Engineering and Knowledge Engineering 5,4, 599–618.
Boudol, G. (1993), “Some Chemical Abstract Machines,” In A Decade of Concurrency, J. de Bakker, W. de Roever, and G. Rozenberg, Eds., Lecture Notes in Computer Science, Vol. 803, Springer-Verlag, Berlin, pp. 92–123.
Bowen, J. and M. Gordon (1994), “Z and HOL,” In Proc. 8th Z Users Workshop (ZUM94), Cambridge, J. Bowen and J. Hall, Eds., Workshops in Computing, Springer-Verlag, Berlin, pp. 141–167.
Bowen, J. and M. Gordon (1995), “A Shallow Embedding of Z in HOL,” Information and Software Technology 37,5–6, 269–276.
Breuer, P. and J. Bowen (1994), “Towards Correct Executable Semantics for Z,” In Proc. 8th Z Users Workshop (ZUM94), Cambridge, J. Bowen and J. Hall, Eds., Workshops in Computing, Springer-Verlag, Berlin, pp. 185–212.
Brien, S. and J. Nicholls (1992), “Z Base Standard, November 1992,” Programming Research Group.
Carrington, D., D. Duke, R. Duke, P. King, G. Rose, and G. Smith (1989), “Object-Z: an Object-Oriented Extension to Z,” In Formal Description Techniques (FORTE 89), North-Holland, Amsterdam, pp. 281–296.
Chandy, K. M. and J. Misra (1988), Parallel Programming Design, Addison-Wesley, Reading, MA.
Ciaccia, P., P. Ciancarini, and W. Penzo (1996), “A Formal Approach to Software Design: The Clepsydra Methodology,” Int. Journal on Software Engineering and Knowledge Engineering. To appear.
Ciancarini, P. (1991), “Parallel Logic Programming Using the Linda Model of Computation,” In Research Directions in High-Level Parallel Programming Languages, Mont Saint-Michel, France, J. Banatre and D. LeMetayer, Eds., Lecture Notes in Computer Science, Vol. 574, Springer-Verlag, Berlin, pp. 110–125.
Ciancarini, P. and M. Gaspari (1996), “Rule Based Coordination of Logic Programs,” Computer Languages. To appear.
Cuellar, J., I. Wildgruber, and D. Barnard (1994), “Combining the Design of Industrial Systems with Effective Verification Techniques,” In FME'94: Industrial Benefit of Formal Methods, Barcelona, Spain, Lecture Notes in Computer Science, Vol. 873, Springer-Verlag, Berlin, pp. 639–658.
Damon, C. and D. Jackson (1996), “Efficient Search as a Means of Executing Specifications,” In Proc. TACAS '96, T. Margaria and B. Steffen, Eds., Lecture Notes in Computer Science, Vol. 1055, Springer-Verlag, Berlin, pp. 70–86.
Dick, A., P. Krause, and J. Cozens (1989), “Computer Aided Transformation of Z into Prolog,” In Proc. 4th Z Users Workshop, J. Nicholls Ed., Workshops in Computing, Springer-Verlag, Berlin, pp. 71–85.
Diller, A. (1990), Z: An Introduction to Formal Methods, Wiley.
Doma, V. and R. Nicholl (1991), “EZ: A System for Automatic Prototyping of Z Specifications,” In VDM 91: Formal Software Development Methods, Noordwijkerhout, S. Prehn and W. Toetenel, Eds., Lecture Notes in Computer Science, Vol. 551, Springer-Verlag, Berlin, pp. 189–203.
Evans, A. (1994a), “Visualizing Concurrent Z Specifications,” In Proc. 8th Z Users Workshop (ZUM94), Cambridge, J. Bowen and J. Hall, Eds., Workshops in Computing, Springer-Verlag, Berlin, pp. 269–281.
Evans, A. (1994b), “Specifying and Verifying Concurrent Systems Using Z,” In Proc. FME'94 Industrial Benefits of Formal Methods, M. Bertran, T. Denvir, and M. Naftalin, Eds., Lecture Notes in Computer Science, Vol. 873, Springer-Verlag, Berlin, pp. 366–380.
Fuchs, N. (1992), “Specifications are (Preferably) Executable,” IEE Software Engineering Journal 7,5, 323–334.
Gardiner, P., P. Lupton, and J. Woodcock (1990), “A Simpler Semantics for Z,” In Proc. 5th Z Users Workshop, Oxford, J. Nicholls, Ed., Workshops in Computing, Springer-Verlag, Berlin, pp. 3–11.
Garzotto, F., C. Ghezzi, D. Mandrioli, and A. Morzenti (1987), “On the Specification of Real-Time Systems Using Logic Programming,” In Proc. 1st European Software Eng. Conf. (ESEC 87), Lecture Notes in Computer Science, Vol. 289, Springer-Verlag, Berlin, pp. 180–190.
Hayes, I. (1993), Specification Case Studies, Prentice-Hall, 2nd edition.
Hayes, I. and C. Jones (1989), “Specifications are not (Necessarily) Executable,” IEE Software Engineering Journal 4,6, 330–338.
He, X. (1995), “PZ Nets: A Formal Method Integrating Petri Nets with Z,” In Proc. 7th Int. Conf. on Software Engineering and Knowledge Engineering, Rockville, Maryland, Knowledge Systems Institute, pp. 173–180.
Inverardi, P. and A. Wolf (1995), “Formal Specification and Analysis of Software Architectures Using the Chemical Abstract Machine Model,” IEEE Transactions on Software Engineering 21,4, 373–386.
Jackson, D. (1994), “Abstract Model Checking of Infinite Specifications,” In Proc. 2nd Int. Symp. of Formal Methods Europe (FME), Barcelone, Spain, M. Naftalin, T. Denvir, and M. Bertran, Eds., Lecture Notes in Computer Science, Vol. 873, Springer-Verlag, Berlin, pp. 519–531.
Jia, X. (1994), “ZTC: A Type Checker for Z,” User's Guide, 1994. Institute of Software Engineering.
Kemmerer, R. (1985), “Testing Formal Specifications to Detect Design Errors,” IEEE Transactions on Software Engineering 11,1, 32–43.
Knott, R. and P. Krause (1992), In The Unified Computation Laboratory, Oxford, C. Rattray and R. Clark, Eds., IMA Conference Series, Vol. 35, Clarendon Press, pp. 207–220.
Lamport, L. (1994), In Proc. 8th Z Users Workshop (ZUM94), Cambridge, J. Bowen and J. Hall, Eds., Workshops in Computing, Springer-Verlag, Berlin, pp. 267–268.
Richardson, D., S. Aha, and T. O'Malley (1992), “Specification-based Test Oracles for Reactive Systems,” In Proc. 14th IEEE Int. Conf. on Software Engineering, Melbourne, Australia, pp. 105–118.
Saaltnik, M. (1989), “Z and Eves,” In Proc. Z User Workshop, Oxford, UK, J. Nicholls, Ed., Workshops in Computing, Springer-Verlag, Berlin, pp. 223–242.
Spivey, J. (1988a), Understanding Z, Cambridge Tracts in Theoretical Computer Science, Cambridge University Press.
Spivey, J. (1988b), The f Uzz Manual.
Spivey, J. (1992), The Z Notation, A Reference Manual, Prentice-Hall, 2nd edition.
Sterling, L., P. Ciancarini, and T. Turnidge (1996), “On the Animation of Not Executable Specifications by Prolog,” Int. Journal on Software Engineering and Knowledge Engineering 6,1, 63–88.
Valentine, S. (1995), “The Programming Language Z-,” Information and Software Technology 37,5–6, 293–302.
van Hee, K., L. Somers, and Voorhoeve (1991), “Z and High Level Petri Nets,” In Proc. VDM 91: Formal Software Development Methods, S. Prehn and W. Toetenel, Eds., Lecture Notes in Computer Sciences, Vol. 551, Springer-Verlag, Berlin, pp. 204–219.
Wordsworth, J. (1992), Software Development with Z, Addison-Wesley.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Ciancarini, P., Cimato, S. & Mascolo, C. Engineering formal requirements: An analysis and testing method for Z documents. Annals of Software Engineering 3, 189–219 (1997). https://doi.org/10.1023/A:1018965316985
Issue Date:
DOI: https://doi.org/10.1023/A:1018965316985