Formal Methods for Verification and Synthesis of Software Systems
Data is displayed for academic year: 2023./2024.
Lecturers
Associate Lecturers
Course Description
The role of specification and verification during software system development. The advantages and disadvantages of applying formal methods.
Theory and practice during the development of software systems. Formal approaches to modelling software systems. Theoretical background: process algebras, Petri nets and temporal logic.
The difference between model checking, testing and run-time verification. Formal communication models. Practical application of specification, verification and testing languages.
Model checking tools as well as software testing tools. Testing automatization. Procedures of automata based programming for rigid and robust software development.
The application of inductive synthesis for process mining: proces discovery, process conformance testing and process repair. Aplication to business proces mining and specification mining.
Study Programmes
University graduate
[FER3-HR] Audio Technologies and Electroacoustics - profile
Elective Courses
(1. semester)
(3. semester)
[FER3-HR] Communication and Space Technologies - profile
Elective Courses
(1. semester)
(3. semester)
[FER3-HR] Computational Modelling in Engineering - profile
Elective Courses
(1. semester)
(3. semester)
[FER3-HR] Computer Engineering - profile
Elective Courses
(1. semester)
(3. semester)
[FER3-HR] Computer Science - profile
Elective Courses
(1. semester)
(3. semester)
[FER3-HR] Control Systems and Robotics - profile
Elective Courses
(1. semester)
(3. semester)
[FER3-HR] Data Science - profile
Elective Courses
(1. semester)
(3. semester)
[FER3-HR] Electrical Power Engineering - profile
Elective Courses
(1. semester)
(3. semester)
[FER3-HR] Electric Machines, Drives and Automation - profile
Elective Courses
(1. semester)
(3. semester)
[FER3-HR] Electronic and Computer Engineering - profile
Elective Courses
(1. semester)
(3. semester)
[FER3-HR] Electronics - profile
Elective Courses
(1. semester)
(3. semester)
[FER3-HR] Information and Communication Engineering - profile
Elective Courses
(1. semester)
(3. semester)
[FER3-HR] Network Science - profile
Elective Courses
(3. semester)
Elective Courses of the Profile
(3. semester)
[FER3-HR] Software Engineering and Information Systems - profile
Elective Courses
(1. semester)
(3. semester)
Learning Outcomes
- analyse the problem domain
- create usable (formal) model that describe the problem
- identify method(s) to find the solution
- analyse the model: Is model describing problem in a usable way?
- derive problem solution
- compare results with other similar approaches
- revise solution if results are not satisfactory
Forms of Teaching
Lectures
Before each lecture lecture notes and presentations are on course web page
Seminars and workshopsthe application of formal methods on rigid software development ("design-for-verification" and "correct-by-construction" systems)
Independent assignmentshomework assignments, preparation for work in laboratory
Laboratorycomplex laboratory assignments which includes: model checking tool application on selected examples, rigid software development
Grading Method
Continuous Assessment | Exam | |||||
---|---|---|---|---|---|---|
Type | Threshold | Percent of Grade | Threshold | Percent of Grade | ||
Laboratory Exercises | 0 % | 20 % | 0 % | 20 % | ||
Homeworks | 0 % | 15 % | 0 % | 15 % | ||
Seminar/Project | 0 % | 10 % | 0 % | 10 % | ||
Mid Term Exam: Written | 0 % | 30 % | 0 % | |||
Final Exam: Written | 0 % | 35 % | ||||
Exam: Written | 0 % | 65 % |
Week by Week Schedule
- Role of formal specification and analysis techniques in the software development cycle for concurrent reactive systems. Rigid and robust software development.
- Formal program and software system modeling: process algebras, Petri nets and finite discrete automaton
- Formal model driven software development: specification, testing and verification languages. Model and communicating processes semantic.
- Temporal logic, program and software system models. Behavior equivalence.
- Verification: Spin model checker and Promela language
- Verification: model checking and Petri nets
- Software model checking
- Midterm exam
- Program and software system synthesis: from verified specification to target code skeleton
- Inductive synthesis and process mining: process discovery and specification mining
- Process mining: conformance testing and process repair
- Automatized software testing with model checkers. Runtime verification
- New trends for rigid and robust software development. Conections beetwen artificial inteligence and software design.
- Project
- Final exam
Literature
(.), razni članci iz časopisa i konferencijski zbornici koji će tek biti objavljeni,
For students
General
ID 222520
Winter semester
5 ECTS
L1 English Level
L2 e-Learning
30 Lectures
0 Seminar
0 Exercises
15 Laboratory exercises
0 Project laboratory
Grading System
90 Excellent
75 Very Good
60 Good
50 Sufficient