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).
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Baier, C., Katoen, J.P.: Principles of Model Checking (Representation and Mind Series). The MIT Press, Cambridge (2008)
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
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
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)
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)
Group, O.M.: OMG Object Constraint Language (2014). https://www.omg.org/spec/OCL/About-OCL/
Holzmann, G.: The SPIN Model Checker: Primer and Reference Manual. Addison-Wesley Professional, Reading (2003)
Jackson, D.: Software Abstractions: Logic, Language, and Analysis. The MIT Press, Cambridge (2006)
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)
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
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
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2019 Springer Nature Switzerland AG
About this paper
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)