Software engineering for adaptive and evolvable systems

Instructor: Prof. Carlo Ghezzi, Politecnico di Milano, Italy


Jun 14, 2010 10:00 AM to Jun 17, 2010 01:00 PM (Europe/Madrid / UTC200)


Ω s215 (floor -2), Campus Nord, UPC, Barcelona

Add event to calendar


Monday 14th June, 10-12
Tuesday 15th June 10-13
Wednesday 16th June 10-12
Thursday 17th June 10-13

Room: S2 S215, building Omega

The course is organized under the mobility program for professors in University Master degrees funded by the Spanish Ministry of Education.

Software evolution has been both an opportunity and a challenge since many years. Through continuous evolution, in fact, software systems can cope with changes in the requirements arising in the business world. But software evolution does not come for free. It requires suitable support methods and technologies. Recently, however, the
nature and goals of evolution became more radical. Software increasingly lives in an open world that changes dynamically, and must respond to these changes by adapting its behavior in a self-managed manner. Notable examples of this situation are ubiquitous systems, whose functionalities are largely context-dependent. Service-oriented computing is another notable example. It is expected that in the future the network will make available a huge number of services that will be exposed for use through standardized protocols. Applications will be built by dynamically searching and composing services. The course explores the main issues and challenges that adaptive and evolvable systems raise to software engineering and illustrates some of the promising approaches that are
investigated by current research.

Course outline:

1.Historical perspective of software evolution From the closed-world assumption to the open world

2. Capturing and modeling requirements for adaptive and evolvable Systems Functional and extra-functional requirements Static adaptation: variation points for software product-lines Dynamic adaptation: modeling and reasoning about uncertainty

3. Software architectures and languages supporting adaptation and evolution Architectural styles and middleware support Self-organizing architectures Language support for dynamic software evolution Dynamic change management

4. Modeling and analysis Modeling the system and the environment Assume/guarantee analysis

5. Verification and validation Development-time vs. run-time verification and validation Monitoring and feedback to support dynamic adaptation

Course organization: the course is organized as a series of lectures (10 hours) and reading assignments to students. The students will be asked to red recent research papers that deal with the subject of the course, and present and discuss them in class.

Students' evaluations will be based on attendance and on the presentations.

Note: to better organize the course, please confirm you attendance to Xavier Franch