F21RS - Rigorous Methods for Software Engineering
Course leader(s):
Aims
To provide knowledge and understanding of tools and techniques which support rigorous software engineering.
Syllabus
1. High-integrity software development. (1.1 Practical experience of developing high-integrity software using static analysis and formal verification., 1.2 Understanding and application of theoretical aspects of static analysis and formal verification.)
2. Design-level modelling. (2.1 Practical experience of design-level modelling and verification via model checking., 2.2 Understanding and application of theoretical aspects of model checking.)
Learning outcomes
By the end of the course, students should be able to do the following:
- use static analysis and formal verification tools in support of software development.
- analyse small-scale programming problems using the theoretical foundations of program analysis.
- analyse small-scale programming problems using the theoretical foundations of assertion-based program verification.
- use simulation and model checking tools in support of design-level modelling.
- analyse small-scale design problems using the theoretical foundations of model checking.
- compare high-integrity programming languages with mainstream programming languages.
- assess the merits of formal modelling within the context of real-world cases studies.
Further details
Curriculum explorer: Click here
SCQF Level: 11
Credits: 15