Skip to main content
Log in

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

  • Published:
Annals of Software Engineering

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  • Barden, R., S. Stepney, and D. Cooper (1994), Z in Practice, Prentice-Hall, London.

    MATH  Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • Berry, G. and G. Boudol (1992), “The Chemical Abstract Machine,” Theoretical Computer Science 96, 217–248.

    Article  MATH  MathSciNet  Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • Bowen, J. and M. Gordon (1995), “A Shallow Embedding of Z in HOL,” Information and Software Technology 37,5–6, 269–276.

    Article  Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • Chandy, K. M. and J. Misra (1988), Parallel Programming Design, Addison-Wesley, Reading, MA.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • Fuchs, N. (1992), “Specifications are (Preferably) Executable,” IEE Software Engineering Journal 7,5, 323–334.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Article  Google Scholar 

  • Valentine, S. (1995), “The Programming Language Z-,” Information and Software Technology 37,5–6, 293–302.

    Article  Google Scholar 

  • 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.

    Google Scholar 

  • Wordsworth, J. (1992), Software Development with Z, Addison-Wesley.

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints 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

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1023/A:1018965316985

Keywords

Navigation