Skip to main content
Log in

Practice-oriented courses in formal methods using VDM++

  • Original Article
  • Published:
Formal Aspects of Computing

Abstract

We describe the design and delivery of two courses that aim to develop skills of use to students in their subsequent professional practice, whether or not they apply formal methods directly. Both courses emphasise skills in model construction and analysis by testing rather than formal verification. The accessibility of the formalism is enhanced by the use of established notations (VDM-SL and VDM++). Motivation is improved by using credible examples drawn from industrial projects, and by using an industrial-strength tool set. We present examples from the courses and discuss student evaluation and examination performance. We stress the need for exercises and tests to support the development of abstraction skills.

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

  1. Andrews DJ (ed) Information technology—Programming languages, their environments and system software interfaces—Vienna development method—specification language—Part 1: Base language. International Organization for Standardization, December 1996. International Standard ISO/IEC 13817–1

  2. Agerholm S, Sunesen K (1999) Reasoning about VDM-SL proof obligations in HOL. Technical report, IFAD

  3. Bicarregui JC, Fitzgerald JS, Lindsay PA, Moore R, Ritchie B (1994) Proof in VDM: a practitioner’s guide. FACIT. Springer, Heidelberg

    Google Scholar 

  4. Brookes TM, Fitzgerald JS, Larsen PG (1996) Formal and informal specifications of a secure system component: final results in a comparative study. In: Gaudel M-C, Woodcock J (eds) FME’96: industrial benefit and advances in formal methods. Springer, Heidelberg, pp 214–227

    Google Scholar 

  5. Boute RT (2003) Can lightweight formal methods carry the weight? In: Duce DA et al (eds) Teaching formal methods: practice and experience 2003. Oxford Brookes University. Available at http://cms.brookes.ac.uk/tfm2003/

  6. Berry DM, Tichy WF (2003) Comments on “Formal methods application: an empirical tale of software development”. IEEE Trans Softw Eng 29(6):567–571

    Article  Google Scholar 

  7. Elmstrøm R, Larsen PG, Lassen PB (1994) The IFAD VDM-SL Toolbox: a practical approach to formal specifications. ACM Sigplan Notices 29(9):77–80

    Article  Google Scholar 

  8. Fitzgerald J, Brookes TM, Green MA, Larsen PG (1994) Formal and informal specifications of a secure system component: first results in a comparative study. In: Denvir BT, Naftalin M, Bertran M (eds) Formal methods Europe’94: industrial benefit of formal methods. Lecture notes in computer science, vol 873. Springer, Heidelberg, pp 35–44

    Google Scholar 

  9. Fitzgerald J, Larsen PG (1998) Modelling systems—practical tools and techniques in software development. Cambridge University Press, The Edinburgh Building, Cambridge CB2 2RU, UK. ISBN 0–521–62348–0

  10. Fitzgerald JS, Larsen PG (2007) Balancing insight and effort: the industrial uptake of Formal methods. In: Jones CB, Liu Z, Woodcock J (eds) Formal methods and hybrid real-time systems, essays in Honour of Dines Bjørner and chaochen zhou on the occasion of their 70th birthdays. Lecture notes in computer science, vol 4700, Springer, Heidelberg, pp 237–254. ISBN 978-3-540-75220-2

  11. Fitzgerald JS, Larsen PG (2008) Triumphs and challenges for the industrial application of model-oriented formal methods. In: Margaria T, Philippou A, Steffen B (eds) Proc. 2nd intl. symp. on leveraging applications of formal methods, verification and validation. Also Technical Report CS-TR-999, School of Computing Science, Newcastle University

  12. Fitzgerald J, Larsen PG, Mukherjee P, Plat N, Verhoef M (2005) Validated Designs for Object-oriented Systems. Springer, New York

    MATH  Google Scholar 

  13. Fitzgerald JS, Larsen PG, Tjell S, Verhoef M (2007) Validation support for real-time embedded systems in VDM++. In: Cukic B, Dong J (eds) Proceedings of HASE 2007: 10th IEEE high assurance system engineering symposium, pp 331–340. IEEE

  14. Fitzgerald J, Larsen PG, Sahara S (2008) VDMTools: advances in support for Formal modeling in VDM. Sigplan Not (submitted)

  15. The VDM Tool Group (2005) A “Cash-point” service example. Technical report, CSK, June 2005. http://www.vdmportal.org/twiki/pub/Main/VDMPPexamples/cashdispenser_a4.pdf

  16. The VDM Tool Group (2006) Development guidelines for real time systems using VDMTools. Technical report, CSK

  17. Hazzan O, Kramer J (2007) Abstraction in computer science and software engineering: a pedagogical perspective. Front J 4(1):6–14

    Google Scholar 

  18. Jones CB, Hayes IJ (1989) Specifications are not (necessarily) executable. Softw Eng J 330–338

  19. Jones CB (1990) Systematic software development using VDM 2nd edn. Prentice-Hall International, Englewood Cliffs

    Google Scholar 

  20. Jones CB (1996) A rigorous approach to formal methods. IEEE Comput 29(4):20–21

    Google Scholar 

  21. Jackson D, Wing J (1996) Lightweight Formal Methods. IEEE Comput 29(4):22–23

    Google Scholar 

  22. Kramer J (2007) Is abstraction the key to computing? Commun ACM 50(4):37–42

    Article  Google Scholar 

  23. Loomes M, Christianson B, Davey N (2004) Formal systems, not methods. In: Dean CN, Boute RT (eds) Teaching formal methods, Lecture notes in computer science, vol 3294. Springer, Heidelberg, pp 47–64

    Google Scholar 

  24. Larsen PG, Fitzgerald JS, Brookes T (1996) Applying formal specification in industry. IEEE Softw 13(3):48–56

    Article  Google Scholar 

  25. Larsen PG, Lassen PB (1991) An executable subset of Meta-IV with loose specification. In: VDM’91: formal software development methods. VDM Europe, Springer, Heidelberg

  26. Lewerentz C, Lindner T (eds) (1995) Formal development of reactive systems: case study production cell. LNCS, vol 891. Springer, New York

    Google Scholar 

  27. NASA (1997) Formal methods, specification and verification guidebook for verification of software and computer systems. A Practitioner’s Companion. Technical Report NASA-GB-001-97, vol 2. Washington, DC 20546, USA, May 1997. Available from http://eis.jpl.nasa.gov/quality/Formal_Methods/

  28. Pepper P (2004) Distributed teaching of formal methods. In: Dean CN, Boute RT (eds) Teaching formal methods. Lecture notes in computer science, vol 3294. Springer, Heidelberg, pp 140–152

    Google Scholar 

  29. Paige RF, Ostroff JS (2004) Specification-driven design with Eiffel and agents for teaching lightweight formal methods. In: Dean CN, Boute RT (eds) Teaching formal methods. Lecture notes in computer science, vol 3294. Springer, Heidelberg, pp 107–123

    Google Scholar 

  30. Reed JN, Sinclair JE (2004) Motivating study of formal methods in the classroom. In: Dean CN, Boute RT (eds) Teaching formal methods. Lecture notes in computer science, vol 3294. Springer, Heidelberg, pp 32–46

    Google Scholar 

  31. RTRI (2006) The Concept of CyberRail. http://cyberrail.rtri.or.jp/english/

  32. Kelley Sobel AE, Clarkson MR (2002) Formal methods application: an empirical tale of software development. IEEE Trans Softw Eng 28(3):308–320

    Article  Google Scholar 

  33. Kelley Sobel AE, Clarkson MR (2003) Response to “Comments on ‘Formal methods application: an empirical tale of software development”. IEEE Trans Softw Eng 29(6):572–575

    Article  Google Scholar 

  34. Saltzer JH, Schroeder MD (1975) The protection of information in computer systems. Proc IEEE 63(9):1278–1308

    Article  Google Scholar 

  35. Utting M, Reeves S (2001) Teaching formal methods lite via testing. J Softw Testing Verif Reliab 11(3):181–195

    Article  Google Scholar 

  36. Verhoef M, Larsen PG (2007) Interpreting distributed system architectures using VDM++—a case study. In: Sauser B, Muller G (eds). Proceedings of 5th annual conference on systems engineering research. Available at http://www.stevens.edu/engineering/cser/

  37. Vermolen S (2007) Automatically discharging VDM proof obligations using HOL, Radboud University Nijmegen, computer science department

  38. Verhoef M, Larsen PG, Hooman J (2006) Modeling and validating distributed embedded real-time systems with VDM++. In: Misra J, Nipkow T, Sekerinski E (eds) FM 2006: formal methods. Lecture notes in computer science, vol 4085. Springer, Heidelberg, pp 147–162

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Peter Gorm Larsen.

Additional information

D. A. Duce, J. Oliveira, P. Boca and R. Boute

Rights and permissions

Reprints and permissions

About this article

Cite this article

Larsen, P.G., Fitzgerald, J.S. & Riddle, S. Practice-oriented courses in formal methods using VDM++ . Form Asp Comp 21, 245–257 (2009). https://doi.org/10.1007/s00165-008-0068-5

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00165-008-0068-5

Keywords

Navigation