Skip to main content

Animation of Object-Z Specifications with a Set-Oriented Prototyping Language

  • Conference paper
Z User Workshop, Cambridge 1994

Part of the book series: Workshops in Computing ((WORKSHOPS COMP.))

Abstract

Within the computer science community, it is a well-known fact that the cost to correct an error in a computer system increases dramatically as the system life cycle progresses. The cost of correcting an error increases by orders of magnitude as the system moves from the development stages of analysis and design, to become most expensive during the maintenance and operation phase. Formal specification and prototyping help to eliminate many of these errors in the very early stages of a project before any production-level code has been written.

Formal methods are used to diminish ambiguity, incompleteness, and inconsistency in a system. When used early in the system development process, they can reveal design flaws that otherwise might be discovered only during the costly testing and debugging phases. Even when using a formal specification one is left with the problem of validating the specification against the informal requirements. Consequently, after specifying the formal semantics of a proposed system a prototype should be built rapidly to validate the formal specification. Such a prototype enables us to test the specification with respect to its adequacy.

A common problem with software products is that the users of the system may not be fully aware of what they require and they may be unable to communicate their desires to the development team. Using a prototype, the user can interact with the system and can discover requirement deficiencies early, enabling rapid correction of the requirements.

The original goal of our research is to design a language for prototyping parallel algorithms to make parallel program design easier. We construct this tool in a somewhat unconventional way: the informal specification is followed by a formal specification, which serves as the basis for a prototype implementation before the production-level implementation is undertaken. In this paper we present the Object-Z specification of our parallel programming language and a prototype implementation with the set-oriented language ProSet. Note, therefore, that this paper presents more a case study than a fully developed methodology for the combination of a formal specification language and a prototyping language. The specified parallel programming language combines ProSet with Linda.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Boehm B. Software engineering. IEEE Trans. Comput., 25 (12): 1226–1241, 1976.

    Article  MATH  Google Scholar 

  2. Budde R, Kautz K, Kuhlenkamp K, Züllighoven H. Prototyping — An Approach to Evolutionary System Development. Springer-Verlag, 1992.

    Google Scholar 

  3. Butcher P. A behavioural semantics for Linda-2. Software Engineering Journal, 6 (4): 196–204, 1991.

    Article  MathSciNet  Google Scholar 

  4. Carriero N, Gelernter D. How to write parallel programs. MIT Press, 1990.

    Google Scholar 

  5. Ciancarini P, Jensen K, Yanklevich D. The semantics of a parallel language based on a shared dataspace. Technical Report 26/92, University of Pisa, Pisa, Italy, 1992.

    Google Scholar 

  6. Diller A. Z: An introduction to formal methods. Wiley, 1990.

    Google Scholar 

  7. Doberkat EE, Fox D. Software Prototyping mit SETL. Leitfäden und Monographien der Informatik. Teubner-Verlag, 1989.

    MATH  Google Scholar 

  8. Doberkat EE, Franke W, Gutenbeil U, Hasselbring W, Lammers U, Pahl C. A First Implementation of PROSET. In Kastens U, Pfahler P (eds), International Workshop on Compiler Construction CC’92 (Poster Session), pp 23–27. University of Paderborn, Informatik-Bericht Nr. 103, 1992.

    Google Scholar 

  9. Doberkat EE, Franke.W, Gutenbeil U, Hasselbring W, Lammers U, Pahl C. PROSET–A Language for Prototyping with Sets. In Kanopoulos N (ed), Proc. Third International Workshop on Rapid System Prototyping, pp 235–248, Research Triangle Park, NC, 1992. IEEE Computer Society Press.

    Chapter  Google Scholar 

  10. Duke R, King P, Rose G, Smith G. The Object-Z Specification Language: Version 1. Technical Report 91–1, University of Queensland, Software Verification Research Center, Queensland, Australia, 1991.

    Google Scholar 

  11. Fuchs N. Specifications are (preferably) executable. Software Engineering Journal, 7 (5): 323–334, 1992.

    Article  Google Scholar 

  12. Ghezzi C, Jazayeri M, Mandrioli D. Fundamentals of Software Engineering. Prentice-Hall, 1991.

    Google Scholar 

  13. Gimnich R, Ebert J. Zur Definition und Interpretation ausführbarer Spezifikationen. In Boley H, Furbach U, Lippe WM (eds), Sprachen für KI-Anwendungen — Konzepte, Methoden, Implementierungen, pp 150–160. Münster (Schriftenreihe), 1992.

    Google Scholar 

  14. Gray R, Heuring V, Levi S, Sloane A, Waite W. Eli: A complete, flexible compiler construction system. Commun. ACM, 35 (2): 121–131, 1992.

    Article  Google Scholar 

  15. Hasselbring W. Combining SETL/E with Linda. In Wilson G (ed), Proc. Workshop on Linda-Like Systems and Their Implementation, pp 84–99. Edinburgh Parallel Computing Centre TR91–13, 1991.

    Google Scholar 

  16. Hasselbring W. A Formal Z Specification of PROSET-Linda. Informatik-Bericht 04–92, University of Essen, 1992.

    Google Scholar 

  17. Hasse’bring W. Prototyping Parallel Algorithms in a Set-Oriented Language. PhD thesis, University of Dortmund, 1994. (in preparation).

    Google Scholar 

  18. Hayes I, Jones C. Specifications are not (necessarily) executable. Software Engineering Journal, 4 (6): 330–338, 1989.

    Article  Google Scholar 

  19. Jabry Z, Austin S. An experiment in VDM to SQL translation. NPL Report DITC 193/91, National Physical Laboratory, Teddington, UK, 1991.

    Google Scholar 

  20. Johnston W, Rose G. Guidelines for the Manual Conversion of Object-Z to C++. Technical Report 93–14, University of Queensland, Software Verification Research Center, Queensland, Australia, 1993.

    Google Scholar 

  21. Kemmerer R. Testing formal specifications to detect design errors. IEEE Trans. Softw. Eng., 11 (1): 32–43, 1985.

    Article  Google Scholar 

  22. Kruchten P, Schonberg E, Schwartz J. Software prototyping using the SETL programming language. IEEE Software, pp 66–75, 1984.

    Google Scholar 

  23. Narem J. An informal operational semantics of C-Linda V2.3.5. Technical Report 839, Yale University, New Haven, CT, 1989.

    Google Scholar 

  24. O’Neill G. Automatic translation of VDM specifications into Standard ML programs. The Computer Journal, 35 (6): 623–624, 1992.

    Article  MathSciNet  Google Scholar 

  25. Padua D, Eigenmann R, Hoeflinger J, Petersen P, Tu P, Weatherford S, Faigin K. Polaris: A new-generation parallelizing compiler for MPPs. CSRD Report No. 1306, University of Illinois at Urbana-Champaign, Urbana, IL, 1993.

    Google Scholar 

  26. Parker C. Z tools catalogue. Technical Report ZIP/BAe/90/020, British Aerospace, Warton, UK, 1991.

    Google Scholar 

  27. Schwartz J, Dewar R, Dubinsky E, Schonberg E. Programming with Sets — An Introduction to SETL. Springer-Verlag, 1986.

    Google Scholar 

  28. Spivey J. The fuzz Manual. Computing Science Consultancy, Oxford, UK, 2nd edition, 1992.

    Google Scholar 

  29. Spivey J. The Z Notation: A Reference Manual. Prentice-Hall, 2nd edition, 1992.

    Google Scholar 

  30. Stepney S, Barden R, Cooper D (eds). Object Orientation in Z. Springer-Verlag, 1992.

    Google Scholar 

  31. Stroustrup B. The C++ Programming Language. Addison-Wesley, 1986.

    Google Scholar 

  32. Valentine S. Z, an executable subset of Z. In Nicholls J (ed), Z User Workshop, York 1991, Workshops in Computing, pp 157–187. Springer-Verlag, 1992.

    Google Scholar 

  33. West M, Eaglestone B. Software development: two approaches to animation of Z specifications using Prolog. Software Engineering Journal, 7 (4): 264–276, 1992.

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1994 British Computer Society

About this paper

Cite this paper

Hasselbring, W. (1994). Animation of Object-Z Specifications with a Set-Oriented Prototyping Language. In: Bowen, J.P., Hall, J.A. (eds) Z User Workshop, Cambridge 1994. Workshops in Computing. Springer, London. https://doi.org/10.1007/978-1-4471-3452-7_20

Download citation

  • DOI: https://doi.org/10.1007/978-1-4471-3452-7_20

  • Publisher Name: Springer, London

  • Print ISBN: 978-3-540-19884-0

  • Online ISBN: 978-1-4471-3452-7

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics