Skip to main content

Unintrusive ways to integrate formal specifications in practice

  • Papers
  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 551))

Abstract

Formal methods can be neatly woven in with less formal, but more widely-used, industrial-strength methods. We show how to integrate the Larch two-tiered specification method [GHW85a] with two used in the waterfall model of software development: Structured Analysis [Ros77] and Structure Charts [YC79]. We use Larch traits to define data elements in a data dictionary and the functionality of basic activities in Structured Analysis data-flow diagrams; Larch interfaces and traits to define the behavior of modules in Structure Charts. We also show how to integrate loosely formal specification in a prototyping model by discussing ways of refining Larch specifications as code evolves. To provide some realism to our ideas, we draw our examples from a non-trivial Larch specification of the graphical editor for the Miró visual languages [HMT+90].

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

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. J. Chen. The Larch/Generic Interface Language. S.B. Thesis, MIT, May 1989.

    Google Scholar 

  2. T. DeMarco. Structured Analysis and System Specification. Yourdon Press, New York, 1978.

    Google Scholar 

  3. E.W. Dijkstra. A Discipline of Programming. Prentice-Hall, 1976.

    Google Scholar 

  4. C. Easteal and G. Davies. Software Engineering: Analysis and Design. McGraw-Hill, London, 1989.

    Google Scholar 

  5. K. Futatsugi, J.A. Goguen, J.-P. Jouannaud, and J. Meseguer. Principles of OBJ2. In Proceedings of ACM POPL, pp. 52–66, 1985.

    Google Scholar 

  6. J.V. Guttag and J.J. Horning. Formal specification as a design tool. In Proceedings of the 7th Symposium on Principles of Programming Languages, pp. 251–261, Las Vegas, Jan. 1980.

    Google Scholar 

  7. J.V. Guttag, J.J. Horning, and A. Modet. Report on the Larch Shared Language: Version 2.3. TR, DEC-SRC, 1990.

    Google Scholar 

  8. John V. Guttag, James J. Horning, and Jeannette M. Wing. The Larch family of specification languages. IEEE Software, pp. 24–36, Sept. 1985.

    Google Scholar 

  9. J.V. Guttag, J.J. Horning, and J.M. Wing. Larch in five easy pieces. TR, DEC-SRC, 1985.

    Google Scholar 

  10. D. Gries. The Science of Programming. Springer-Verlag, New York, 1981.

    Google Scholar 

  11. J.V. Guttag. The Specification and Application to Programming of Abstract Data Types. PhD thesis, University of Toronto, Toronto, Canada, Sept. 1975.

    Google Scholar 

  12. [HMT+90] A. Heydon, M. W. Maimone, J.D. Tygar, J. M. Wing, and A. M. Zaremski. Miró: Visual specification of security. IEEE TSE, 16(10):1185–1197, Oct. 1990.

    Google Scholar 

  13. M. Jackson. System Development. Prentice-Hall, Englewood Cliffs, 1983.

    Google Scholar 

  14. C.B. Jones. Systematic Software Development Using VDM. Prentice-Hall International, 1986.

    Google Scholar 

  15. R.A. Lerner. Modular Specifications of Concurrent Programs. PhD thesis, CMU, 1991. TR CS-91-131.

    Google Scholar 

  16. B.A. Myers et al. The Garnet toolkit reference manuals: Support for highly-interactive, graphical user interfaces in Lisp. TR CS-89-196, CMU, Nov. 1989.

    Google Scholar 

  17. C. Morgan and B. Sufrin. Specification of the UNIX filing system. IEEE TSE, 10(2):128–142, 1984.

    Google Scholar 

  18. M. W. Maimone, J. D. Tygar, and J. M. Wing. Formal semantics for visual specification of security. In S.K. Chang, ed., Visual Languages and Visual Programming. Plenum Publishing Corporation, 1990.

    Google Scholar 

  19. B.T. Mynatt. Software Engineering with Student Project Guidance. Prentice-Hall, Englewood Cliffs, 1990.

    Google Scholar 

  20. S.L. Pfleeger. Software Engineering: The Production of Quality Software. Macillan, N.Y., 1991. Second edition.

    Google Scholar 

  21. D.T. Ross. Structured analysis (SA): A language for communicating ideas. IEEE TSE, pp. 16–34, Jan. 1977.

    Google Scholar 

  22. D.T. Ross. Applications and extensions of SADT. IEEE Computer, pp. 25–34, April 1985.

    Google Scholar 

  23. J.M. Spivey. Introducing Z: a Specification Language and its Formal Semantics. Cambridge University Press, 1988.

    Google Scholar 

  24. J.M. Wing. Specification firms: A vision for the future. InProceedings of the 3 rd International Workshop on Software Specification and Design, pp. 241–243, 1985.

    Google Scholar 

  25. J. Wing. Using Larch to specify Avalon/C++ objects. IEEE TSE, 16(9):1076–1088, Sept. 1990.

    Google Scholar 

  26. E. Yourdon and L. Constantine. Structured Design. Prentice-Hall, Englewood Cliffs, 1979.

    Google Scholar 

  27. A.M. Zaremski. A Larch specification of the Miro editor. TR CS-91–111, CMU, 1991.

    Google Scholar 

  28. P. Zave. An operational approach to requirements specification for embedded systems. IEEE TSE, 8(3):250–269, May 1972.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

S. Prehn W. J. Toetenel

Rights and permissions

Reprints and permissions

Copyright information

© 1991 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Wing, J.M., Zaremski, A.M. (1991). Unintrusive ways to integrate formal specifications in practice. In: Prehn, S., Toetenel, W.J. (eds) VDM'91 Formal Software Development Methods. VDM 1991. Lecture Notes in Computer Science, vol 551. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-54834-3_32

Download citation

  • DOI: https://doi.org/10.1007/3-540-54834-3_32

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-54834-8

  • Online ISBN: 978-3-540-46449-5

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics