Hasso-Plattner-Institut20 Jahre HPI
Hasso-Plattner-Institut20 Jahre HPI

Software Adaption (Sommersemester 2013)

Lecturer: Prof. Dr. Holger Giese (Systemanalyse und Modellierung) , Thomas Vogel (Systemanalyse und Modellierung)

General Information

  • Weekly Hours: 4
  • Credits: 6
  • Graded: yes
  • Enrolment Deadline: 10.2.2013 - 30.4.2013
  • Teaching Form: Lecture
  • Enrolment Type: Compulsory Elective Module

Programs & Modules

IT-Systems Engineering MA
  • IT-Systems Engineering A
  • IT-Systems Engineering B
  • IT-Systems Engineering C
  • IT-Systems Engineering D
IT-Systems Engineering BA
  • Software Architecture & Modeling Technology


While software is an immaterial object that does not decay with time, it is in fact “aging“ - as Parnas puts it [1] – as we usually fail at adapting the software such that it meets our changing needs and we make the software less valuable by doing the changes not carefully. One of Lehman's laws of software evolution [2] accordingly states that a system that is used either undergoes continuing adaption or degrades in effectiveness. Consequently, we can observe that the ability to cost-effectively adapt software has become one of the most important critical success factors for software development today.

In this lecture, we want review how software adaption is addressed at several levels and how far these approaches are able to cope with the need for cost-effective software adaption. We will at first review the need for adaption and study which different forms of adaption are relevant. We will then look into the classical software maintenance lifecycle phase and how adaption required due to changes in the environment is handled in this context. Then, we will look into approaches that contribute to adaptable software where the costs for future adaption steps are reduced by taking the need for adaption into account upfront. Both directions are highly relevant but cannot prevent that still major costs result due to necessary adaptions. Even worth, it seems that we can only limit the effects of the changes but cannot prevent aging in general. Therefore, the idea to automate software adaption by means of self-adaptive software has emerged and we will study such kind of software. As self-adaptive software has the capability to automatically adjust itself in response to changes in the environment, it promises to considerably reduce the costs for necessary adaptions and to avoid a decline in the software quality. We will discuss existing proposals and solutions as well as its current limitations.


[1] David Lorge Parnas. Software aging. In Proceedings of the 16th international conference on Software engineering, Pages 279-287, IEEE Computer Society Press, Los Alamitos, CA, USA , 1994. (Link)

[2] Meir Manny Lehman, Juan F. Ramil, P D. Wernick, Dewayne Perry and W M. Turski. Metrics and Laws of Software Evolution - The Nineties View. In METRICS '97: Proceedings of the 4th International Symposium on Software Metrics, Pages 20, IEEE Computer Society, Washington, DC, USA , 1997. (Link)


Literaturhinweise werden in der Vorlesung bzw. in den Vorlesungsmaterialien gegeben.


Es finden zu Beginn der Veranstaltung zwei 90-minütige Vorlesungen pro Woche statt. Danach wird der Projektblock mit unregelmäßigen Präsenzveranstaltungen stattfinden.

Projekt (vorläufige Beschreibung!)

Im Projekt wird forschungsnah mit Techniken für selbst-adaptive Software gearbeitet. Diese Techniken kommen zur Laufzeit der Software zum Einsatz, um die Selbst-Adaption mittels Laufzeitmodelle zu ermöglichen (cf. Models@run.time [4]).

Auf der einen Seite wird im Projekt insbesondere EUREMA [3] - ein modellgetriebener Ansatz zur Modellierung und Ausführung der Selbst-Adaption - verwendet. Daher werden Kenntnisse in Eclipse und im Eclipse Modeling Framework (EMF) erwartet. Weitere Kenntnisse mit modellgetriebenen Techniken, wie OCL, Story Diagramme, Triple Graph Grammatiken, ATL etc. sind hilfreich.

Auf der anderen Seite werden auch code-basierte Techniken aufbauend auf einem Laufzeitmodell der laufenden Software verwendet, um die Selbst-Adaption zu realisieren und auszuführen. 

Im Rahmen des Projekts werden die modellgetriebenen bzw. code-basierten Techniken zur Selbst-Adaption umgesetzt und in Experimenten miteinander verglichen.


[3] Thomas Vogel and Holger Giese. Model-Driven Engineering of Adaptation Engines for Self-Adaptive Software: Executable Runtime Megamodels. Technical report, 66, Hasso Plattner Institute at the University of Potsdam, Germany, 2013. (Link)

[4] Gordon Blair, Nelly Bencomo and Robert B. France. Models@run.time. In Computer, Vol. 42(10):22-27, IEEE Computer Society, Los Alamitos, CA, USA, 2009. (Link)


Die Leistungserfassung erfolgt durch eine mündliche Prüfung am Ende des Semesters. Die erfolgreiche Teilnahme am Projekt ist Voraussetzung zur Zulassung zu der Prüfung, fließt dann aber nicht in die Note mit ein.




  • Dienstag um 11:00 Uhr in A-2.1
  • Mittwoch um 13:30 Uhr in A-1.1