252-0216-00L  Rigorous Software Engineering

SemesterFrühjahrssemester 2022
DozierendeM. Schwerhoff, M. Vechev
Periodizitätjährlich wiederkehrende Veranstaltung
LehrspracheEnglisch


KurzbeschreibungThe course provides an overview of techniques to build correct software, with a strong focus on testing and program analysis.
LernzielThe course has two main objectives:

- Understand the core techniques for building correct software.
- Understand how to apply these techniques in practice.
InhaltThe course presents an overview of techniques to build correct software, including:
- Code documentation
- Modularity and coupling (Design patterns)
- Dynamic program analysis (Testing, fuzzing, concolic execution)
- Static program analysis (Numerical abstract interpretation, pointer analysis, symbolic execution)
- Formal modeling (Alloy)

In addition, students apply the learned techniques to solve a group project in the area of program analysis.
LiteraturWill be announced in the lecture.