SE301 B
This course is an extension of skills and concepts learnt in SE301a. This course will be given in english only (exam included). It extends yours understanding of software design of critical and real time embedded systems (it is expected that students that want to register followed SE301a).
This course covers engineering methods and skill for criticial software design and development. It also explains how such concerns can be combined with real time system deployment concerns.
The following point will be covered in 7 half a day sessions (4h approx). You will see an introduction to dependability concerns and how means to achieve it mainly rely on three practices: fault prevention, fault elimination, and fault tolerance. Fault prevention is illustrated with Model Driven Engineering approach for safety critical software, Fault elimination is covered through model checking approaches, and redundancy based and dedicated real time fault tolerance mecanismes are presented.
Course main topics:
- Introduction to dependability objectives and threats
- Fault tolerance content
- Error confinement design parterns
- Modular redundancy active and passive architectures (data interactions)
- (optional depending on how fast we go …) Error confinement in real time behavior (timing interactions).
- Model driven approaches for critical software deployment
- Model checking of concurrent systems (fault removal)
- Introduction to formal verification and temporal logic
- How to model a concurrent system
- Strategies and memory
- How to specify properties on concurrent systems
- Concurrent systems with imperfect information
pre-requisites : SE301A, and minimal knowledge of C and Java programming, INF105
or detailed required background:
- C programming (multi threading included)
- Scheduling theory and schedulability tests (mono multi cores + EDF, RMS …)
- Basic knowledge in propositional logic and automata theory
Course material: (provided asap)
- Tools to dig some topics :