[Back]


Diploma and Master Theses (authored and supervised):

A. Ahammer:
"Managing and Automating Configuration in Software Product Lines for Enterprise Web Applications";
Supervisor: T. Grechenig, S. Strobl; E183/1, 2013; final examination: 2013-12-05.



English abstract:
Web applications offer a multitude of configuration switches that need to be set correctly. In case of a single product it is feasible to manage the configuration files with the source code in a version control system. However, in case of a product line with many similar products it is necessary to have means to manage the configurations separately. Furthermore it is desirable to be able to apply the configurations automatically, because a manual configuration is error prone and time consuming.
The aim of this thesis was the creation of a system that supports (and partially automates) the configuration management of software product lines of enterprise web applications. It should support the storage of configuration information in machine readable form and provide a tool that is able to apply those configurations automatically. Furthermore the tool should be integrable in the build automation system.
In a first step the products of the product line were analyzed and all existing configuration switches were documented and categorized. Afterwards an object model was abstracted which is able to cover the configurations of the product line. A focus was laid on extensibility and the special requirements of software product lines. Based on the model a configuration tool was developed which is able to configure each product. Finally the tool was integrated in the automatic build process of the continuous integration server. Thus, it is now possible to build all products auto- matically and deploy them correctly configured. Moreover the required time to configure a product was considerably reduced. The measured time saving between automated and manual installations ranges from 17 to 40 minutes (depending on the complexity of the installation).

German abstract:
Web-Applikationen enthalten eine Fülle von Konfigurationsdateien, mit deren Hilfe man zahlrei- che Parameter festlegen kann. Im Falle eines einzelnen Produkts kann man diese unter Umständen mittels eines Versionskontrollsystems mit dem restlichen Programmcode verwalten. Wenn man allerdings eine Produktlinie mit vielen ähnlichen Produkten verwalten muss bzw. verschiedene Konfigurationen für Test- und Produktivbetrieb verwendet, dann benötigt man eine Möglichkeit, die Konfigurationen der einzelnen Produkte separat zu verwalten. Außerdem muss man einen Weg finden, wie man die Konfigurationen auf neue Software-Versionen automatisch anwendet, da das Setzen aller Parameter von Hand nicht nur aufwändig, sondern auch sehr fehleranfällig ist.
Das Ziel der vorliegenden Arbeit war es daher, ein System zu entwickeln, das die Konfigurations- verwaltung für Produktlinien von Enterprise-Webapplikationen unterstützt und teilweise automa- tisiert. Es sollte einerseits das Abspeichern der Konfigurationsinformationen in maschinenlesbarer Form ermöglichen und andererseits ein Konfigurationswerkzeug bieten, das die Konfigurationen anwenden kann. Überdies sollte es möglich sein, das Werkzeug in die Buildautomatisierung zu integrieren.
In einem ersten Schritt wurden existierende Produkte untersucht und alle vorhandenen Konfigu- rationsparameter analysiert und dokumentiert. Danach wurde ein Objektmodell abstrahiert, das eine Abbildung und Speicherung aller verwendeten Konfigurationen erlaubt. Dabei wurde auf einfache Erweiterbarkeit geachtet und die speziellen Anforderungen von Softwareproduktlinien berücksichtigt. Aufbauend auf dem Modell wurde dann die Konfigurationsapplikation entwickelt, die in der Lage ist, mittels eines einfachen Aufrufes jede der Produktvarianten zu konfigurie- ren. Im letzten Schritt wurde das Konfigurationsprogramm in den automatischen Buildzyklus des verwendeten Continuous Integration-Servers integriert. Dadurch ist es möglich, in regelmäßigen Abständen automatisch die verschiedenen Applikationen zu bauen und korrekt konfiguriert zu deployen. Darüber hinaus konnte die notwendige Zeit, um ein Produkt korrekt zu konfigurieren, durch das System deutlich reduziert werden. Aus dem gemessenen Zeitunterschied zwischen au- tomatischer und manueller Installation ergibt sich je nach Produkt eine Zeitersparnis zwischen 17 und 40 Minuten.

Created from the Publication Database of the Vienna University of Technology.