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.
Similar content being viewed by others
References
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
Agerholm S, Sunesen K (1999) Reasoning about VDM-SL proof obligations in HOL. Technical report, IFAD
Bicarregui JC, Fitzgerald JS, Lindsay PA, Moore R, Ritchie B (1994) Proof in VDM: a practitioner’s guide. FACIT. Springer, Heidelberg
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
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/
Berry DM, Tichy WF (2003) Comments on “Formal methods application: an empirical tale of software development”. IEEE Trans Softw Eng 29(6):567–571
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
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
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
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
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
Fitzgerald J, Larsen PG, Mukherjee P, Plat N, Verhoef M (2005) Validated Designs for Object-oriented Systems. Springer, New York
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
Fitzgerald J, Larsen PG, Sahara S (2008) VDMTools: advances in support for Formal modeling in VDM. Sigplan Not (submitted)
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
The VDM Tool Group (2006) Development guidelines for real time systems using VDMTools. Technical report, CSK
Hazzan O, Kramer J (2007) Abstraction in computer science and software engineering: a pedagogical perspective. Front J 4(1):6–14
Jones CB, Hayes IJ (1989) Specifications are not (necessarily) executable. Softw Eng J 330–338
Jones CB (1990) Systematic software development using VDM 2nd edn. Prentice-Hall International, Englewood Cliffs
Jones CB (1996) A rigorous approach to formal methods. IEEE Comput 29(4):20–21
Jackson D, Wing J (1996) Lightweight Formal Methods. IEEE Comput 29(4):22–23
Kramer J (2007) Is abstraction the key to computing? Commun ACM 50(4):37–42
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
Larsen PG, Fitzgerald JS, Brookes T (1996) Applying formal specification in industry. IEEE Softw 13(3):48–56
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
Lewerentz C, Lindner T (eds) (1995) Formal development of reactive systems: case study production cell. LNCS, vol 891. Springer, New York
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/
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
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
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
RTRI (2006) The Concept of CyberRail. http://cyberrail.rtri.or.jp/english/
Kelley Sobel AE, Clarkson MR (2002) Formal methods application: an empirical tale of software development. IEEE Trans Softw Eng 28(3):308–320
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
Saltzer JH, Schroeder MD (1975) The protection of information in computer systems. Proc IEEE 63(9):1278–1308
Utting M, Reeves S (2001) Teaching formal methods lite via testing. J Softw Testing Verif Reliab 11(3):181–195
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/
Vermolen S (2007) Automatically discharging VDM proof obligations using HOL, Radboud University Nijmegen, computer science department
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
Author information
Authors and Affiliations
Corresponding author
Additional information
D. A. Duce, J. Oliveira, P. Boca and R. Boute
Rights 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
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00165-008-0068-5