Skip to main content
If you continue browsing this website, you agree to our policies:
  • Condizioni di utilizzo e trattamento dei dati
Continue
x
If you continue browsing this website, you agree to our policies:
  • Condizioni di utilizzo e trattamento dei dati
Continue
x
e-Learning - UNIMIB
  • Home
  • More
Listen to this page using ReadSpeaker
 Log in
e-Learning - UNIMIB
Home
Percorso della pagina
  1. Science
  2. Master Degree
  3. Informatica [F1802Q - F1801Q]
  4. Courses
  5. A.A. 2023-2024
  6. 2nd year
  1. Self-Adaptive Systems
  2. Summary
Insegnamento Course full name
Self-Adaptive Systems
Course ID number
2324-2-F1801Q164
Course summary SYLLABUS
Software systems run in a dynamic, interconnected, and continuously evolving environment. They are expected to operate properly and continuously even in presence of internal faults, external changes, resource variabilities, and uncertainties. To achieve these expectations, they adapt themselves to the current execution environment without (or with minimum) human intervention while ensuring and guaranteeing a certain level of quality for the provided functionality.
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

  • Italiano ‎(it)‎
  • English ‎(en)‎
Export

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

  1. Introduzione ai concetti self-adaptive. Definizione di adattività. Principali problematiche di progettazione e sviluppo di sistemi self-adaptive.
  2. Self-adaptive vs sistemi smart, intelligenti, autonomi. Machine learning per sistemi self-adaptive.
  3. Proprietà di self*-: self-(re)configuration, self-organization, self-healing, self-protection, self-optimization, self-management, self-adaptation, self-evolution.*
  4. Incertezze e variabilità nei sistemi self-adaptive: come affrontarle in fase di progettazione ed execuzione. Specifica dei requisiti. Linguaggio RELAX.
  5. 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.
  6. Strategie di adattamento. Design e architectural pattern per sistemi self-adaptive.
  7. Adattamento reattivo e proattivo.
  8. 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.
  9. Valutazione di sistemi self-adaptive. Trade-offs tra attributi di qualità. Analisi costi benefici.
  10. 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

CITTÀ E COMUNITÀ SOSTENIBILI
Export

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

  1. Introduction to self-adaptive concepts. Definition of adaptivity. Design and development of the main issues for self-adaptive systems.
  2. Self-adaptivity vs smart, autonomous, intelligent system. Machine learning for self-adaptive systems.
  3. Self-* properties: self-(re)configuration, self-organization, self-healing, self-protection, self-optimization, self-management, self-adaptation, self-evolution.
  4. Uncertainties and variabilities in self-adaptive systems: how to address them at design and runtime. Requirements specification. RELAX language.
  5. 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.
  6. Adaptation strategies. Design and architectural patterns for self-adaptive systems.
  7. Reactive, responsive, and proactive adaptation.
  8. Frameworks and tools to support design and development of self-adaptive systems. Low level mechanisms useful for adaptation, e.g., reflection.
  9. Evaluation of self-adaptive systems. Trade-offs among quality attributes. Cost-benefit analysis.
  10. 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

SUSTAINABLE CITIES AND COMMUNITIES
Enter

Key information

Field of research
INF/01
ECTS
6
Term
Second semester
Activity type
Mandatory to be chosen
Course Length (Hours)
54
Degree Course Type
2-year Master Degreee
Language
English

Staff

    Teacher

  • CR
    Claudia Raibulet

Students' opinion

View previous A.Y. opinion

Bibliography

Find the books for this course in the Library

Enrolment methods

Manual enrolments
Self enrolment (Student)

Sustainable Development Goals

SUSTAINABLE CITIES AND COMMUNITIES - Make cities and human settlements inclusive, safe, resilient and sustainable
SUSTAINABLE CITIES AND COMMUNITIES

You are not logged in. (Log in)
Policies
Get the mobile app
Powered by Moodle
© 2025 Università degli Studi di Milano-Bicocca
  • Privacy policy
  • Accessibility
  • Statistics