- Self-Adaptive Systems
- Summary
This course introduces Self-Adaptive Systems (SAS), which are able to address and manage variabilities, uncertainties, and changes at runtime. Such systems and context-aware and self-aware. They use reasoning mechanisms to identify the proper solutions to meet their adaptation goals. And they exploit appropriate approaches to apply the adaptations during the execution of SAS.
The schedule of the course is the following:
- Tuesdays 10:30-12:30 – Lessons – U24-C1 – Zifera
- Wednesdays 15:30-18:30 – Lessons, Seminars and Project Work – U24-C1 – Zifera
Course Syllabus
Obiettivi
Lo studente acquisirà competenze relative alle problematiche principali della progettazione e sviluppo di sistemi self-adaptive, sistemi che sono in grado di gestire incertezze/variabilità e effettuare compromessi tra vari attributi di qualità in fase di esecuzione. Lo studente sarà in grado di valutare i vantaggi di un sistema self-adaptive e l’effort necessario per il suo sviluppo.
Contenuti sintetici
Il corso presenta i concetti principali dei sistemi self-adaptive. Descrive come specificare gli obiettivi di adattamento e come progettare e sviluppare un ciclo di adattamento - MAPE-K - Monitoraggio del contesto di esecuzione, Analisi delle informazioni raccolte per rivelare le esigenze di adattamento, Pianificazione delle strategie di adattamento ed Esecuzione delle strategie di adattamento identificate. Tutte le fasi del ciclo di adattamento possono condividere una base di conoscenza comune.
Il corso introduce anche modelli di adattamento, oltre a strutture e strumenti per lo sviluppo di sistemi self-adaptive. Presenta approcci di valutazione per i sistemi self-adaptive basati sull'analisi costi-benefici.
Programma esteso
- Introduzione ai concetti self-adaptive. Definizione di adattività. Principali problematiche di progettazione e sviluppo di sistemi self-adaptive.
- Self-adaptive vs sistemi smart, intelligenti, autonomi. Machine learning per sistemi self-adaptive.
- Proprietà di self*-: self-(re)configuration, self-organization, self-healing, self-protection, self-optimization, self-management, self-adaptation, self-evolution.*
- Incertezze e variabilità nei sistemi self-adaptive: come affrontarle in fase di progettazione ed execuzione. Specifica dei requisiti. Linguaggio RELAX.
- Un approccio basato sull'architettura per progettare e implementare software adattivo utilizzando cicli di feedback di controllo, ad esempio MAKE-K: monitoraggio, analisi, pianificazione, esecuzione utilizzando una base di conoscenza.
- Strategie di adattamento. Design e architectural pattern per sistemi self-adaptive.
- Adattamento reattivo e proattivo.
- Framework e strumenti per supportare la progettazione e lo sviluppo di sistemi self-adaptive. Meccanismi di basso livello utili per l'adattamento, ad esempio la reflection.
- Valutazione di sistemi self-adaptive. Trade-offs tra attributi di qualità. Analisi costi benefici.
- Esempi di sistemi self-adaptive in vari domini applicativi (ad esempio, applicazioni Web, controllo del traffico, droni, elaborazione dati). Adattività per raggiungere la sostenibilità.
Prerequisiti
Concetti base di Ingegneria del Software
Programmazione Orientata agli Oggetti
Unified Modeling Language
Modalità didattica
Il corso sarà erogato in lingua Inglese.
Consisterà in lezioni frontali che introdurranno i principali argomenti dei sistemi self-adaptive e in seminari riguardanti l'applicazione dell'adattamento in esempi concreti in vari domini applicativi.
Materiale didattico
Weyns, Danny. Software engineering of self-adaptive systems: an organized tour and future challenges. Chapter in Handbook of Software Engineering. Springer. 2017. Available at: https://people.cs.kuleuven.be/~danny.weyns/papers/Self-Adaptation-Organized-Tour.pdf
Danny Weyns. An Introduction to Self-adaptive Systems: A Contemporary Software Engineering Perspective. Wiley. ISBN: 978-1-119-57494-1. October 2020.
Self-adaptive Exemplars: https://www.hpi.uni-potsdam.de/giese/public/selfadapt/exemplars/
Materiale didattico (e.g., articoli scientifici) distribuito sulla piattaforma eLearning.
Periodo di erogazione dell'insegnamento
II semestre
Modalità di verifica del profitto e valutazione
Gli studenti saranno valutati attraverso un progetto di gruppo.
Identificheranno uno scenario di adattamento e progetteranno il ciclo di adattamento, indicando i passaggi necessari per l'adattamento.
Gli studenti possono utilizzare i linguaggi di programmazione, le strategie e i pattern, nonché i framework disponibili per lo sviluppo dell'adattamento.
Gli studenti valuteranno i loro sistemi self-adaptive utilizzando le metriche disponibili. Illustreranno i vantaggi dell'utilizzo dei meccanismi di adattamento. Gli studenti valuteranno anche l'effort di sviluppo del software adattivo.
Il progetto del team includerà attività sull'identificazione della necessità di adattamento, progettazione e implementazione del ciclo di adattamento e valutazione dei benefici dell'adattamento, nonché dell'effort di sviluppo. Ogni team fornirà un repository con il progetto sviluppato, la relativa documentazione e valutazione e la sua presentazione.
Valutazione del progetto: 0 – 20 punti.
Presentazione orale del progetto e dei concetti relativi al corso: 0 – 8 punti.
Compito assegnato durante il corso: 0 – 6 punti.
Orario di ricevimento
Su appuntamento.
Sustainable Development Goals
Aims
Students will learn how to design and develop Self-Adaptive Systems able to deal with uncertainties/variabilities and trade-offs among various quality attributes at runtime. Students will also learn how to evaluate the benefits of a Self-Adaptive System and its development effort.
Contents
The course presents the main concepts of Self-Adaptive Systems. It describes how to specify adaptation goals and how to design and develop an adaptation loop – MAPE-K - Monitoring its execution context, Analyzing the gathered information to reveal adaptation needs, Planning adaptation strategies, and Executing the identified adaptation strategies. All the steps in the adaptation loop may share a common Knowledge base.
The course introduces also adaptation patterns, as well as frameworks and tools for the development of Self-Adaptive Systems. It presents evaluation approaches for Self-Adaptive Systems based on cost-benefit analysis.
Detailed program
- Introduction to self-adaptive concepts. Definition of adaptivity. Design and development of the main issues for self-adaptive systems.
- Self-adaptivity vs smart, autonomous, intelligent system. Machine learning for self-adaptive systems.
- Self-* properties: self-(re)configuration, self-organization, self-healing, self-protection, self-optimization, self-management, self-adaptation, self-evolution.
- Uncertainties and variabilities in self-adaptive systems: how to address them at design and runtime. Requirements specification. RELAX language.
- An architectural based approach to design and implement adaptive software using control feedback loops, e.g., MAKE-K – Monitor, Analyze, Plan, Execute using a Knowledge base.
- Adaptation strategies. Design and architectural patterns for self-adaptive systems.
- Reactive, responsive, and proactive adaptation.
- Frameworks and tools to support design and development of self-adaptive systems. Low level mechanisms useful for adaptation, e.g., reflection.
- Evaluation of self-adaptive systems. Trade-offs among quality attributes. Cost-benefit analysis.
- Examples of self-adaptive systems in various application domains (e.g., Web applications, traffic control, drones, could computing). Adaptivity to achieve sustainability.
Prerequisites
Software Engineering basis
Object Oriented Programming
Unified Modeling Language
Teaching form
The course will be taught in English.
It will consist of lectures introducing the main topics of Self-Adaptive Systems and of seminars concerning application of adaptation in concrete examples in various applications domains.
Textbook and teaching resource
Weyns, Danny. Software engineering of self-adaptive systems: an organized tour and future challenges. Chapter in Handbook of Software Engineering. Springer. 2017. Available at: https://people.cs.kuleuven.be/~danny.weyns/papers/Self-Adaptation-Organized-Tour.pdf
Danny Weyns. An Introduction to Self-adaptive Systems: A Contemporary Software Engineering Perspective. Wiley. ISBN: 978-1-119-57494-1. October 2020.
Self-adaptive Exemplars: https://www.hpi.uni-potsdam.de/giese/public/selfadapt/exemplars/
Material (e.g., scientific papers) distributed on the eLearning platform.
Semester
II semester.
Assessment method
Students will be assessed via a team project.
They will identify an adaptation scenario and design the adaptation loop, by indicating all the steps needed for adaption.
Students may use available programming languages, strategies, and patterns, as well as available frameworks for adaptation development.
Students will evaluate their self-adaptive systems using available metrics. They will outline the benefits of using adaptivity mechanisms. Students will also evaluate the development effort of adaptive software.
The team project will include activities about identification of adaptive needs, design and implementation of the adaptation loop, and evaluation of the benefits of adaptation, as well as its development effort. Each team will provide a repository with the developed project, its related documentation and evaluation, and its presentation.
Project evaluation: 0 – 20 points.
Oral presentation of the project and course related concepts: 0 – 8 points.
Task assigned during the course: 0 – 6 points.
Office hours
On appointment.
Sustainable Development Goals
Key information
Staff
-
Claudia Raibulet