Formal Methods and Specifications
Code | Completion | Credits | Range | Language |
---|---|---|---|---|
MI-FME | Z,ZK | 4 | 2+1 | Czech |
- Lecturer:
- Stefan Ratschan (gar.)
- Tutor:
- Stefan Ratschan (gar.)
- Supervisor:
- Department of Software Engineering
- Synopsis:
-
Students are able to describe semantics of software formally and to use sound reasoning for construction of correct software. They learn to use some software tools that allow to prove basic properties of software.
- Requirements:
-
Knowledge of basic notions of mathematical logic and set theory and ability to use them.
- Syllabus of lectures:
-
1. Program specification and basics of practical logic
2. Logical theories and modeling of data structures
3. Operational program semantics
4. Bounded software model checking
5. Verification of unbounded program correctness
6. Termination, total program correctness
7. Formal methods for embedded systems
- Syllabus of tutorials:
-
Practical training of the lecture material.
- Study Objective:
-
The goal of the module is to provide students with the ability to apply formal reasoning in software development. On one hand, this includes the ability to base their own software development activities on sound reasoning, even within an environment that does not systematically employ formal methods. On the other hand, this includes the ability to understand and use automated techniques and tools for supporting formal methods within the software development process.
- Study materials:
-
1. Aaron R. Bradley and Zohar Manna: ''The Calculus of Computation'', Springer Verlag, 2007
2. Edmund M. Clarke, Orna Grumberg, and Doron A. Peled: ''Model Checking'', MIT Press, 1999
3. Zohar Manna and Amir Pnueli: ''Temporal Verification of Reactive Systems'', Springer Verlag, 1995
4. Glynn Winskel: ''Formal Semantics of Programming Languages'', MIT Press, Cambridge, Massachusetts, 1993
- Note:
- Time-table for winter semester 2011/2012:
- Time-table is not available yet
- Time-table for summer semester 2011/2012:
-
06:00–08:0008:00–10:0010:00–12:0012:00–14:0014:00–16:0016:00–18:0018:00–20:0020:00–22:0022:00–24:00
Mon Tue Fri Thu Fri - The course is a part of the following study plans:
-
- Branch Software Engineering, Version for Students who Enrolled in 2010, Presented in Czech (compulsory course of the branch)
- Branch Web and Software Engineering, Presented in Czech, Version for Students who Enrolled in 2011 (compulsory course of the branch)
- Branch Web and Software Engineering, Presented in Czech, Version for Students who Enrolled in 2012 (compulsory course of the branch)