Skip to main content

Teaching Formal Methods: From Software in the Small to Software in the Large

  • Conference paper
  • First Online:
Formal Methods Teaching (FMTea 2019)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 11758))

Included in the following conference series:

Abstract

In this paper, we report the author’s experience teaching formal methods to undergraduate students in the fourth year of the Software Engineering degree at the University of Málaga. The subject is divided into three blocks devoted to explaining the application of formal methods at different abstraction levels during the process of developing software. Although we teach the theoretical basis for students to understand the techniques, we mainly focus on the practical application of formal methods. Students are asked to realize in pairs three modelling and specifying projects of medium size (one for each block). The practical work corresponds to \(60 \%\) of the student assessment, the remaining \(40 \%\) is assessed with an exam on the theory of the subject matter. We have been teaching the subject during the last five years with very good results.

This work has been supported by the Spanish Ministry of Science, Innovation and Universities project RTI2018-099777-B-I00 and the European Union’s Horizon 2020 research and innovation programme under grant agreement No. 815178 (5GENESIS).

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 EPUB and 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

Notes

  1. 1.

    http://www-users.math.umn.edu/~arnold/disasters/ariane.html.

  2. 2.

    http://www.ima.umn.edu/~arnold/disasters/patriot.html.

References

  1. Baier, C., Katoen, J.P.: Principles of Model Checking (Representation and Mind Series). The MIT Press, Cambridge (2008)

    MATH  Google Scholar 

  2. Bhargavan, K., Gunter, C.A., Gunter, E.L., Jackson, M., Obradovic, D., Zave, P.: The village telephone system: a case study in formal software engineering. In: Grundy, J., Newey, M. (eds.) TPHOLs 1998. LNCS, vol. 1479, pp. 49–66. Springer, Heidelberg (1998). https://doi.org/10.1007/BFb0055129. http://dl.acm.org/citation.cfm?id=646525.694731

    Chapter  Google Scholar 

  3. Cabot, J., Gogolla, M.: Object constraint language (OCL): a definitive guide. In: Bernardo, M., Cortellessa, V., Pierantonio, A. (eds.) SFM 2012. LNCS, vol. 7320, pp. 58–90. Springer, Heidelberg (2012). https://doi.org/10.1007/978-3-642-30982-3_3

    Chapter  Google Scholar 

  4. Gallardo, M., Panizo, L.: Modelling and specifying software system with alloy (tutorial). In: Accepted to be presented in the Spanish Workshop on Programming Languages PROLE 2019 (Sistedes) (2019)

    Google Scholar 

  5. Gogolla, M., Büttner, F., Richters, M.: USE: a UML-based specification environment for validating UML and OCL. Sci. Comput. Program. 69(1–3), 27–34 (2007)

    Article  MathSciNet  Google Scholar 

  6. Group, O.M.: OMG Object Constraint Language (2014). https://www.omg.org/spec/OCL/About-OCL/

  7. Holzmann, G.: The SPIN Model Checker: Primer and Reference Manual. Addison-Wesley Professional, Reading (2003)

    Google Scholar 

  8. Jackson, D.: Software Abstractions: Logic, Language, and Analysis. The MIT Press, Cambridge (2006)

    Google Scholar 

  9. Lavado, L., Panizo, L., Gallardo, M., Merino, P.: A characterisation of verification tools for software defined networks. J. Reliable Intell. Environ. 3(3), 189–207 (2017)

    Article  Google Scholar 

  10. Zave, P.: Understanding SIP through model-checking. In: Schulzrinne, H., State, R., Niccolini, S. (eds.) IPTComm 2008. LNCS, vol. 5310, pp. 256–279. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-89054-6_13

    Chapter  Google Scholar 

Download references

Acknowledgement

The authors would like to thank Dr. Francisco Durán and Dr. José María Álvarez for their help in designing the form and content of the course.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to María-del-Mar Gallardo .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2019 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Gallardo, MdM., Panizo, L. (2019). Teaching Formal Methods: From Software in the Small to Software in the Large. In: Dongol, B., Petre, L., Smith, G. (eds) Formal Methods Teaching. FMTea 2019. Lecture Notes in Computer Science(), vol 11758. Springer, Cham. https://doi.org/10.1007/978-3-030-32441-4_7

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-32441-4_7

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-32440-7

  • Online ISBN: 978-3-030-32441-4

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics