Abstract
Compact and easy-to-learn educational material of core ideas in formal methods is prepared for students in software engineering courses. Although mathematical logic is usually employed to explore the basic ideas precisely and concisely, some students with limited background are not able to follow the contents. We adapt Alloy to sugar wrap logic, which makes it possible for students to learn the core ideas by experimenting with the tool. The proposed material covers model-oriented specification notations and SAT-based automatic formal verification methods. These are important subfields of formal methods in view of both theory and practice for software engineering courses.
S. Nakajima—also affiliated with The Graduate University for Advanced Studies (SOKENDAI).
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
We switch to the interactive proof when the automatic prover fails.
- 2.
hereafter called SBMC to stand for software bounded-model checker.
- 3.
Education Network for Practical Information Technologies, http://www.enpit.jp.
- 4.
Ministry of Education, Cultural, Sports, Science and Technology, Japan.
References
Abrial, J.R.: The B-Book - Assgining Programs to Meanings. Cambridge University Press, Cambridge (1996)
Abrial, J.R.: Formal methods in industry - achievements, problems, future. In: Proceedings of ICSE 2006, pp. 761–767 (2006)
Abrial, J.R.: Modeling in Event-B - System and Software Engineering. Cambridge University Press, Cambridge (2010)
Back, R.-J., Sere, K.: Superposition refinement of reactive systems. Formal Aspects Comput. 8(3), 324–346 (1995)
Ben-Ari, M.: Principles of Concurrent and Distributed Programming, 2nd edn. Addison-Wesley, Boston (2006)
Bjørner, D.: Software Engineering (three volumes). Springer, Berlin (2006)
Bolton, C.: Using the alloy analyzer to verify data refinement in Z. ENTCS 137, 23–44 (2005)
Clarke, E.M., Biere, A., Raimi, R., Zhu, Y.: Bounded model checking using satisfiability solving. Formal Methods Syst. Des. 19(1), 7–34 (2001)
Dick, J., Faivre, A.: Automating the generation and sequencing of test cases from model-based specifications. In: Proceedings of FME’93, pp. 268–284 (1993)
Dijkstra, E.W.: The humble programmer - ACM turing award lecture. Commun. ACM 15(10), 859–866 (1972)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns - Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1995)
He, J., Hoare, C.A.R., Sanders, J.W.: Date refinement refined - resume. In: Proceedings of ESOP’86, pp. 187–196 (1986)
Huth, M., Ryan, M.: Logic in Computer Science, 2nd edn. Cambridge University Press, Cambridge (2004)
Jackson, D., Wing, J.: Lightweight formal methods. In: Saidian, H. (ed.) An Invitation to Formal Methods, IEEE Computer (1996)
Jackson, D.: Software Abstractions - Logic, Language, and Analysis, revised edn. The MIT Press, London (2012)
Jones, C.: Systematic Software Development with VDM, 2nd edn. Prentice Hall, New York (1990)
Jones, C.: A rigorous approach to formal methods. In: Saidian, A. (ed.) An Invitation to Formal Methods, IEEE Computer (1996)
Kramer, J.: Is abstraction the key to computing? Comm. ACM 50(4), 37–42 (2007)
Larsen, P.G., Fitzgerald, J.S., Riddle, S.: Learning by Doing: Practical Courses in Lightweight Formal Methods using VDM++, CS-TR-992. University Newcastle upon Tyne, Tyne (2006)
Liu, S.: Formal Engineering for Industrial Software Development using the SOFL Method. Springer, Edinburgh (2004)
Magee, J., Kramer, J.: Concurrency - State Models & Java Programming, 2nd edn. Wiley, Chichester (2006)
Nakajima, S.: Introduction to Formal Methods - Logic-Based Software Development Methods (in Japanese), Ohm-sya (2012)
Ölveczky, P.C.: Teaching formal methods based on rewriting logic and maude. In: Gibbons, J., Oliveira, J.N. (eds.) TFM 2009. LNCS, vol. 5846, pp. 20–38. Springer, Heidelberg (2009)
Prasad, M.R., Biere, A., Gupta, A.: A survey of recent advances in SAT-based formal verification. J. STTT 7(2), 156–173 (2005)
Shaw, M.: Whither software engieering education?, an invited talk at IEEE CSEE&T 2011, Honolulu (2011)
Spivey, J.M.: The Z Notation - A Reference Manual. Prentice Hall, Englewood Cliffs (1992)
Wing, J.: A Specifier’s Introduction to Formal Methods. IEEE Comput. 23, 8–24 (1990)
Woodcock, J.C.P., Davies, J.: Using Z - Specification, Refinement, and Proof. Prentice-Hall, Englewood Cliffs (1996)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2015 Springer International Publishing Switzerland
About this paper
Cite this paper
Nakajima, S. (2015). Using Alloy in Introductory Courses of Formal Methods. In: Liu, S., Duan, Z. (eds) Structured Object-Oriented Formal Language and Method. SOFL+MSVL 2014. Lecture Notes in Computer Science(), vol 8979. Springer, Cham. https://doi.org/10.1007/978-3-319-17404-4_7
Download citation
DOI: https://doi.org/10.1007/978-3-319-17404-4_7
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-17403-7
Online ISBN: 978-3-319-17404-4
eBook Packages: Computer ScienceComputer Science (R0)