A course on formal methods in software engineering: Matching requirements with design

  • Paolo Ciancarini
  • Paolo Ciaccia
Education Session
Part of the Lecture Notes in Computer Science book series (LNCS, volume 967)


In this paper we shortly describe the course plan and syllabus used in a course included in the degree in Computer Science of University of Bologna since 1992. We discuss a project developed by students using formal notations for the specification of both requirements and design. The formal methods we use are based on Z notation for requirements specification and Larch for design specifications.


Course Plan Project Assignment 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    G. Abowd, R. Allen, and D. Garlan. Using Style to Understand Descriptions of Software Architecture. In D.Notkin, editor, Proc. ACM SIGSOFT 1st Conf. on Fundamentals of Software Engineering, volume 18:5 of ACM SIGSOFT Software Engineering Notes, 1993.Google Scholar
  2. [2]
    D. Berry. Academic legitimacy of the software engineering discipline. Technical Report CMU-SEI-92-34, Software Engineering Institute, Carnegie Mellon Univ., 1992.Google Scholar
  3. [3]
    B. Boehm. A spiral model of software development and enhancement. IEEE Computer, 21(5):61–72, May 1988.Google Scholar
  4. [4]
    G. Booch. Object-oriented development. IEEE Transactions on Software Engineering, 12(2):211–220, Feb. 1986.Google Scholar
  5. [5]
    J. Bowen. Formal Specification of Window Systems. Technical Report PRG-74, Oxford University Computing Laboratory, England, June 1989.Google Scholar
  6. [6]
    B. Chen, W. Harwood, and M. Jackson. The Specification of Complex Systems Addison Wesley, 1986.Google Scholar
  7. [7]
    P. Ciaccia, P. Ciancarini, and W. Penzo. A Formal Approach to Software Design: The Clepsydra Methodology. In Proc. 9th Annual Z Users Meeting, Workshops in Computing, Limerick, Ireland, 1995 (to appear). Springer-Verlag, Berlin.Google Scholar
  8. [8]
    P. Ciancarini. Artificial Chess Players (in Italian). Mursia, 1992.Google Scholar
  9. [9]
    P. Coad and E. Yourdon. Object-Oriented Design. Yourdon Press, 1991.Google Scholar
  10. [10]
    B. Curtis, M. Kellner, and J. Over. Process Modeling. Communications of the ACM, 35(9):75–90, September 1992.Google Scholar
  11. [11]
    A. Diller. Z: An Introduction to Formal Methods. Wiley, 1990.Google Scholar
  12. [12]
    H. Ehrig, B. Mahr, I. Classen, and F. Orejas. Introduction to Algebraic Specification. Part 1: Formal Methods for Software Development. The Computer Journal, 35(5):460–467, 1992.Google Scholar
  13. [13]
    H. Ehrig, B. Mahr, and F. Orejas. Introduction to Algebraic Specification. Part 2: From Classical View to Foundations of System Specifications. The Computer Journal, 35(5):468–477, 1992.Google Scholar
  14. [14]
    D. Garlan. Formal Methods for Software Engineers: Tradeoff in Curriculum Design. In C. Sledge, editor, Software Engineering Education, Proc. SEI Conference, volume 640 of Lecture Notes in Computer Science, pages 131–142, SanDiego, CA, October 1992. Springer-Verlag, Berlin.Google Scholar
  15. [15]
    D. Garlan and M. Shaw. An Introduction to Software Architecture. In V. Ambriola and G. Tortora, editors, Advances in Software Engineering and Knowledge Engineering, pages 1–40. World Scientific Publishing Co., 1992.Google Scholar
  16. [16]
    D. Garlan, M. Shaw, C. Okasaki, C. Scott, and R. Swonger. Experience with a course on architectures for software systems. In Proc. Conf. on Software Engineering Education, volume 640 of Lecture Notes in Computer Science, pages 23–43. Springer-Verlag, Berlin, 1992.Google Scholar
  17. [17]
    S. Garland and J. Guttag. An overview of LP, the Larch Prover. In B. Springer-Verlag, editor, Proc. 3rd Int. Conf. on Rewriting Techniques and Applications, volume 355 of Lecture Notes in Computer Science, pages 137–151, 1989.Google Scholar
  18. [18]
    C. Ghezzi, M. Jazayeri, and D. Mandrioli. Fundamentals of Software Engineering. Prentice Hall, 1991.Google Scholar
  19. [19]
    J. Guttag, S. Garland, and J. Horning. Debugging Larch Shared Language Specifications. IEEE Transactions on Software Engineering, 16(9):1044–1075, September 1990.Google Scholar
  20. [20]
    J. Guttag and J. Horning. Larch: Languages and Tools for Formal Specification. Springer-Verlag, Berlin, 1993.Google Scholar
  21. [21]
    R. Kemmerer. Testing Formal Specifications to Detect Design Errors. IEEE Transactions on Software Engineering, 11(1):32–43, January 1985.Google Scholar
  22. [22]
    A. Kierulf, K. Chen, and J. Nievergelt. Smart game board and go explorer: A study in software and knowledge engineering. Communications of the ACM, 33(2):152–166, February 1990.Google Scholar
  23. [23]
    B. Meyer. Object-Oriented Software Construction. Prentice Hall, 1988.Google Scholar
  24. [24]
    D. Perry and G. Kaiser. Models of Software Development Environments. IEEE Transactions on Software Engineering, 17(3):283–295, 1991.Google Scholar
  25. [25]
    D. Perry and A. Wolf. Foundations for the Study of Software Architecture. ACM SIGSOFT Software Engineering Notes, 17(4):40–52, October 1992.Google Scholar
  26. [26]
    I. Sommerville. Software Engineering. Addison Wesley, 4 edition, 1991.Google Scholar
  27. [27]
    J. Spivey. The Z Notation. A Reference Manual. Prentice Hall, 2 edition, 1992.Google Scholar
  28. [28]
    P. Tutelaers. A Font and a style for Typesetting Chess using LaTeX or TeX. TU Gboat, 13(1):85–90, 1992.Google Scholar
  29. [29]
    J. Wing. A Study of 12 Specifications of the Library Problem. IEEE Software, 5(4):66–76, July 1988.Google Scholar
  30. [30]
    J. Wing. A Specifier's Introduction to Formal Methods. IEEE Computer, 23(9):8–24, September 1990.Google Scholar
  31. [31]
    J. Wing and A. Zaremski. A Formal Specification of a Visual Language Editor. In C. Ghezzi and G. Roman, editors, Proc. 6th IEEE Int. Workshop on Software Specification and Design, pages 120–129, Como, Italy, October 1991. IEEE Computer Society Press.Google Scholar
  32. [32]
    E. Yourdon and L. C. Constantine. Structured Design. Yourdon Press, 1979.Google Scholar
  33. [33]
    A. Zaremski. A Larch Specification of the Miró Editor. Technical Report CMU-CS-91-111, Carnegie Mellon Univerity, February 1991.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1995

Authors and Affiliations

  • Paolo Ciancarini
    • 1
  • Paolo Ciaccia
    • 1
  1. 1.Corso di Laurea in Scienze dell'InformazioneUniversity of BolognaItaly

Personalised recommendations