The goals of the course are:
1. To understand the role of quality models throughout the lifetime of software systems
2. To be able to design quality models for simple distributed systems
3. To be able to write and verify quality properties for simple distributed systems
4. To understand the principles of self-‐adaptation
5. To be able to design a simple feedback loop for a distributed self-‐adaptive system
Abstract:
Self-adaptation is an important field of research and engineering that aims to deal with the challenging problem of how to engineer software systems that have to deal with uncertainties that can only be resolved at runtime. We will use an Internet-of-Things (IoT) application as a running example throughout the course. Ensuring reliability and energy efficiency in IoT systems that have to operate under uncertainties such as interferences in the wireless network or continuously changing load of the network is an example problem that can be tackled using self-adaptation. The course will consist of three parts. The first part focuses on quality models, including automata (e.g. to model robustness), Markov models (e.g. for energy consumption), and queuing models (e.g. for latency). In the second part, we discuss how quality models can be used to estimate quality properties at design time using tools. Part three presents the basic principles of self-adaptation and introduces a conceptual feedback loop model of a self-adaptive system. We then zoom on how quality models are exploited at runtime by a self-adaptive system to provide guarantees for the quality goals, regardless of uncertainties. We discuss different techniques, incl. simulation and verification at runtime. The course will combine lectures with assignments and hands-on exercises.
This is a visiting professor course of the Vienna PhD School of Informatics.
It will be held by Danny Weyns / Katholieke Universiteit Leuven (Belgium).
Planning and Timing:
March 14 - April 6: Introduction assignment Automata & Uppaal: The students get a guide of the Uppaal tool and a few simple exercises to get familiar with automata and the Uppaal
tool. The students are expected to submit their solutions of the exercises by April 6.
Monday 9 April (14:00-16:00): Introduction Course: Introduction of the course; discussion and feedback on the solutions of the introduction assignment.
Tuesday 10 (9:00-12:00): Work session Uppaal: Short introduction followed by advanced exercises of modeling with Uppal (stochastic behavior, property verification)
Wednesday 11 (9:00-12:00): Introduction Quality Models: Lecture about different types of quality models
Thursday 12 (9:00-12:00): Work session Quality Models: Hands-on to design quality models for a simple IoT application
Thursday 12 (15:00 c.t.): Engineering Self-Adaptive Systems: Talk in the context of „Current trends in Computer Science“ for all members of the Faculty of Informatics and interested master / PhD students
Friday 13 (9:00-12:00): Introduction Self-Adaptation: Lecture about principles of self-adaptive systems and how to engineer such systems
Monday 16 (9:00-12:00): Work session Self-Adaptation: Hands-on to design a self-adaptive solution for different quality models of a simple IoT application
Tuesday 17 (9:00-12:00): Work-session Self-Adaptation: continue the work of a self-adaptive IoT application; wrap up lectures; introduction project assignment
April 18 – May 9: Final project assignment: The students get a final project assignment that extends the hands-on exercises of the lectures; students submit their solutions by May 9.
A final evaluation session will then be planned.