Main content
This entry is from Winter semester 2020/21 and might be obsolete. You can find a current equivalent here.
CS 510 — Formal Methods in Software Engineering
(dt. Formale Methoden in der Softwaretechnik)
Level, degree of commitment | Specialization module, compulsory elective module |
Forms of teaching and learning, workload |
Lecture (4 SWS), recitation class (2 SWS), 270 hours (90 h attendance, 180 h private study) |
Credit points, formal requirements |
9 CP Course requirement(s): Successful completion of at least 50 percent of the points from the weekly exercises as well as at least 2 presentations of the tasks. Examination type: Oral or written examination |
Language, Grading |
German (ggf. englischsprachige Literatur),The grading is done with 0 to 15 points according to the examination regulations for the degree program M.Sc. Computer Science. |
Duration, frequency |
One semester, irregular |
Person in charge of the module's outline | Prof. Dr. Gabriele Taentzer |
Contents
Formal methods are used for the formal specification and analysis of software systems and as a suitable abstraction level for the description and solution of software problems. Starting from finite automata, we consider the formal specification of simple systems and analyze them with model checking. For the specification and analysis of more realistic systems we refine the state specification by data structures. Graphs can be used flexibly to specify data structures. Their changes can be systematically defined with graph transformations. On this basis, typical software development activities, such as system design and program testing, can be formally specified and analyzed. We also consider simple program verification. Finally, we focus on a selected problem in software engineering and jointly develop a specification and analysis technique for this problem.
Qualification Goals
Upon completion of this module, students will
- be able to formalize systems, system properties and software development activities,
- know how system properties can be automatically analyzed and verified,
- be able to assess the strengths and weaknesses of formal methods in software engineering,
- have practised scientific working methods (recognising, formulating, solving problems, training the ability to abstract), and
- have trained oral communication skills by practicing free speech in front of an audience and in discussion.
Prerequisites
None. The competences taught in the following modules are recommended: Theoretical Computer Science, Logic, Software Engineering.
Applicability
The module can be attended at FB12 in study program(s)
- B.Sc. Computer Science
- M.Sc. Computer Science
- M.Sc. Business Informatics
When studying M.Sc. Computer Science, this module can be attended in the study area Specialization Modules in Computer Science.
The module can also be used in other study programs (export module).
The module is assigned to Theoretical Computer Science. Further information on eligibility can be found in the description of the study area.
Recommended Reading
(not specified)
Please note:
This page describes a module according to the latest valid module guide in Winter semester 2020/21. Most rules valid for a module are not covered by the examination regulations and can therefore be updated on a semesterly basis. The following versions are available in the online module guide:
- Winter 2016/17 (no corresponding element)
- Summer 2018
- Winter 2018/19
- Winter 2019/20
- Winter 2020/21
- Summer 2021
- Winter 2021/22
- Winter 2022/23
- Winter 2023/24
The module guide contains all modules, independent of the current event offer. Please compare the current course catalogue in Marvin.
The information in this online module guide was created automatically. Legally binding is only the information in the examination regulations (Prüfungsordnung). If you notice any discrepancies or errors, we would be grateful for any advice.