Details Year 3

SLR301 Dependability and fault tolerance in software systems. 

Period 2 (24h, 2,5 ECTS)

Thomas Robert

SLR303: Security in distributed systems from the game-theoretic perspective (security, risk management, attack modelling, attack graphs, security games). 

Period 1 (24h, 2,5 ECTS


SLR304: Dynamic, autonomic and self-adapting systems. 

Period 1 (24h, 2,5 ECTS) 


SLR305: Algorithms for dynamic and reconfigurable distributed systems. 

Period 2 (24h, 2,5 ECTS)



We discuss algorithms behind distributed systems that may change their configurations (e.g., the set and placement of computing units), due to explicit application calls or adversarial churn. A part of ythe course is going to take the form of a seminar where we discuss related work and open problems. 



SLR306: Collaborative Software Development. 

Period 1 (24h, 2,5 ECTS) 

Theo Zimmermann.


This course offers an advanced overview of the software development process when using modern tools (in particular software forges, such as GitHub/GitLab, which are becoming pervasive in the industry) to collaborate. The course focuses on general principles of organization and collaboration processes and the tools that are typically used to apply these principles, independent of the programming language of the software project.


- Use of software forges for collaboration: issues and pull requests.

- Automatic testing and continuous integration.

- Code review.

- Advanced git: branches and worktrees, patch management, merging and rebasing, using multiple remotes, bisecting, etc.

- Release management: branch management, backporting, time- vs feature-based releases, fast releases, continuous deployment, version numbering and documentation, managing breaking changes, etc.

- Process automation, bots.

- Managing your software supply chain: package managers, licenses, risks. 



SLR307: Advanced Verification of Distributed Systems

Period 1 (24h, 2,5 ECTS) 

Vadim Malvone, Gerard Memmi

The aim of this module is to introduce advanced concepts related to the formal verification of concurrent and distributed systems. The following aspects are addressed:

- Introduction to formal verification and temporal logic

- How to model a multi-agent system

- Strategies and their memory

- How to specify properties on multi-agent systems

- Multi-agent systems with imperfect information

- Distributed systems and various transition systems

- Notions of states, behavioral properties (monotonicity, repetitivity, liveness,...)

- Invariant definitions, fundamental algebraic properties

- Reasoning with invariants 


Follow-up of SLR204, basic knowledge of formal verifications and temporal logic is required.