GS/EECS 6432, Engineering Adaptive Systems


Adaptive software systems change their behaviour and structure to cope with changes in environment conditions or in user requirements. New computing paradigms, such us cloud computing, big data and cyber-physical systems rely heavily on adaptation which includes self-optimization, self-protection, self-configuration and self-healing. This course covers basic and advanced concepts of engineering adaptive software systems and has a special focus on cloud, big data and elasticity in clouds. An elastic application will monitor itself and the cloud environment, analyze its behaviour, plan and execute a sequence of actions to adapt its structure and behaviour. The students will learn about the architecture and design of adaptive systems,  their runtime models, implementation and validation. 

The course consists of lecture presentations by instructor or invited guests, paper presentations by students and in class discussions. The topics covered by the course include:

  1. Introduction to Adaptive Software
  2. Requirements of Cyber-Physical Systems, Ultra Large Scale Systems, Internet of Things
  3. Adaptive Architecture: Monitoring, Analysis, Planning, Execution
  4. Software Defined Infrastructure: Cloud Computing, Big Data, Containers
  5. Runtime Models for Elastic Applications: Machine Learning, Queuing, Control Theory Linear Models
  6. Analysis and Planning
    1. Searched Based, Proportional, Integrative, Derivative Controllers
    2. Control Theory
  7. Engineering Adaptive Applications
    1.  Policy Languages, Utility Functions
    2. Case Studies
RESOURCES. Available on Moodle.
  • Senate Policy on Academic Honesty
  • Academic Integrity
  • Student Rights and Responsibilities
  • Religious Observance
  • Academic Accommodation for Students with Disabilities