2024 Self-adaptive Systems

Font size  SML

Register update notification mail Add to favorite lecture list
Academic unit or major
Graduate major in Computer Science
Instructor(s)
Tei Kenji 
Class Format
Lecture / Exercise    (HyFlex)
Media-enhanced courses
Day/Period(Room No.)
Mon5-6(W8E-308(W834))  Thr5-6(W8E-308(W834))  
Group
-
Course number
CSC.T528
Credits
2
Academic year
2024
Offered quarter
2Q
Syllabus updated
2024/3/14
Lecture notes updated
-
Language used
English
Access Index

Course description and aims

A self-adaptive system is a software system that can autonomously change its own structure or behavior at runtime in response to environmental changes. It has been applied to various domains including cloud systems, IoT, and robot systems. This course is designed to assist students in gaining a comprehensive understanding of fundamental development approaches and techniques for self-adaptive systems through lectures. Additionally, students will acquire practical knowledge and skills in applying these development techniques to the development of self-adaptive systems through hands-on exercises.

Student learning outcomes

The goals of this course are to
(1) be able to understand and explain basic concept and design principles of self-adaptive systems,
(2) be able to understand and explain basic self-adaptive system development approaches and techniques such as architecture-based adaptation, requirement-driven adaptation, and control-based adaptation, and
(3) be able to apply those knowledge to actual self-adaptive system development.

Keywords

self-adaptive systems, MAPE-K loop, architecture-based adaptation, requirement-driven adaptation, runtime models, control-based adaptation

Competencies that will be developed

Specialist skills Intercultural skills Communication skills Critical thinking skills Practical and/or problem-solving skills

Class flow

The classes from 1st to 7th will deliver lectures on self-adaptive system development using lecture materials such as slides. In the 8th and 9th classes, each student will give a presentation about a research paper related to self-adaptive systems and engage in discussions. The 10th to 14th classes will involve team-based hands-on exercises related to self-adaptive system development. Intermediate presentation will be given in the 12th class and final presentation will be in the 14th class.

Course schedule/Required learning

  Course schedule Required learning
Class 1 Introduction to self-adaptive systems Undersdand course overview, principles of self-adaptation, and conceptual model of a self-adaptive system
Class 2 Automating tasks Understand autonomic computing, self-* properties, and MAPE-K loop
Class 3 Architecture-based adaptation Understand three layer model for self-adaptive systems, self-adaptation on component-based architecture, and architecture-based adaptation
Class 4 Runtime models Understand runtime model for self-adaptation, dimensions of runtime models (structure vs behavior, declarative vs procedural, functional vs qualitative, formal vs informal), and principal strategies for using runtime models
Class 5 Requirements-driven adaptation Understand relaxing requirements for self-adaptation, meta-requirements for self-adaptation, and functional requirements of feedback loops
Class 6 Guarantees under uncertainties Understand uncertainties in self-adaptive systems, taming uncertainty with formal techniques (exhaustive/statistical verification, proactive decision making), and an integrated process to tame uncertainty
Class 7 Control-based software adaptation Understand a brief introduction to control theory, automatic construction of SISO/MIMO controllers, and model predictive control
Class 8 Recent research topics in self-adaptive systems (1) Students introduce research papers related to this course and engage in discussion.
Class 9 Recent research topics in self-adaptive systems (2) Students introduce research papers related to this course and engage in discussion.
Class 10 Self-adaptive systems development hands-on (1): Team-building and exemplar selection Organize development team and select an exemplar for team development
Class 11 Self-adaptive systems development hands-on (2): Team development Develop an self-adaptive system with the selected exemplar
Class 12 Self-adaptive systems development hands-on (3): Self-adaptive system development Intermediate presentation and demonstration
Class 13 Self-adaptive systems development hands-on (4): Team development Evolve an self-adaptive system with the selected exemplar
Class 14 Self-adaptive systems development hands-on (4): Presentation and Demonstration Final presentation and demonstration

Out-of-Class Study Time (Preparation and Review)

To enhance effective learning, students are encouraged to spend approximately 100 minutes preparing for class and another 100 minutes reviewing class content afterwards (including assignments) for each class.
They should do so by referring to textbooks and other course material.

Textbook(s)

Not specified

Reference books, course materials, etc.

Danny Weyns, An Introduction to Self-adaptive Systems: A Contemporary Software Engineering Perspective, IEEE Press.
Others will be introduced in the lecture slides as appropriate.

Assessment criteria and methods

Class attendance and attitude in class, research paper presentation: 40%
Hands-on exercises: 60%

Related courses

  • CSC.T361 : Software Design and Quality
  • CSC.T435 : Advanced Software Engineering
  • CSC.T426 : Software Design Methodology
  • CSC.T424 : Workshop on Software Development

Prerequisites (i.e., required knowledge, skills, courses, etc.)

Students should have taken related courses or have equivalent knowledge and experience in software engineering and software development.

Other

Each student is required to prepare his/her own laptop PC for the paper presentation and hands-on exercises.

Page Top