[Back]


Doctor's Theses (authored and supervised):

K. Wieland:
"Conflict-tolerant Model Versioning";
Supervisor, Reviewer: G. Kappel, G. Fitzpatrick; E188 Institut für Softwaretechnik und Interaktive Systeme, 2011; oral examination: 2011-12-21.



English abstract:
Model-driven software engineering (MDSE), which has recently gained momentum in academia as well as in industry, changed the way in which modern software systems are built. In MDSE, the task of programming, i.e., writing code in a textual programming language, is replaced by modeling in a language such as the Unified Modeling Language (UML). The powerful abstraction mechanisms of models are not only used for documentation purposes, but also for compiling executable code directly out of models. With the rise of MDSE, several problems solved for traditional software engineering became urgent again because well established solutions are not directly transferable from code to models. Among others, the collaborative development of models is currently only limited supported by modeling tools and, consequently, it is mostly a one-(wo)man show. Especially in the field of model versioning, which supports the asynchronous modification of modeling artifacts by multiple developers, only first solutions start to emerge.

The urgent need for a suitable infrastructure supporting effective model versioning has been widely recognized by researchers as well as practitioners. Currently, however, there is a lack of empirical studies on the needs of software developers in practice concerning the collaborative development of software systems. The first contribution of this thesis tackles this problem and provides an extensive survey about versioning in practice by the means of an online questionnaire and qualitative expert interviews. One result of the empirical study shows that conflicts due to parallel modifications are considered harmful and, thus, developers try to avoid them. Conflicts, however, should not be seen as negative result of collaboration but as chance for discussing ideas and for improving the system under development. As consequence, the second contribution is a conflict-tolerant model versioning approach, where the developers may commit their changes in the central repository without worrying about possible conflicts. This approach merges two or more parallel versions by applying dedicated merge rules and, by this, it incorporates all modifications of the developers. This builds a good basis for discussing and resolving conflicts collaboratively. Finally, when resolving conflicts a high degree of user interaction is required. When setting models under version control with state-of-the art tools, however, conflicts are hardly accessible for the users. Also the empirical study has shown, that current version control systems lack for a dedicated representation and visualization. Moreover, user support is required to better understand the reasons behind the conflicting changes. The third contribution tackles these deficiencies by visualizing occurred conflicts in terms of model annotations and enriching them automatically with additional meta information to better understand the parallel evolution of the model under development. The implemented prototype is evaluated by means of a quasi-experimental study, which demonstrates the advantages of developing models in a collaborative manner.

German abstract:
Modell-getriebene Softwareentwicklung verändert die Art und Weise wie moderne Softwaresysteme entwickelt werden. Modelle werden nicht mehr ausschließlich zu Dokumentationszwecke verwendet, sondern auch zur Generierung ausführbaren Codes. Mit dem Aufkommen der Modell-getriebenen Softwareentwicklung werden einige Probleme, die bereits für die traditionelle Softwareentwicklung gelöst wurden, wieder aktuell, da sich diese Lösungen nicht direkt auf Modelle anwenden lassen. Unter Anderem wird die Entwicklung von Modellen im Team derzeit nur sehr eingeschränkt unterstützt. Speziell im Bereich der Modellversionierung, der die asynchrone Bearbeitung von Modellen durch mehrere EntwicklerInnen unterstützt, erschienen lediglich die ersten Lösungsansätze. Die Notwendigkeit effektiver Modellversionierungssysteme wurde sowohl von der Wissenschaft als auch von der Industrie erkannt. Es fehlen jedoch empirische Studien, die die Bedürfnisse der SoftwareentwicklerInnen bei der kollaborativen Entwicklung von Softwaresystemen aufzeigen. Daher wird in dieser Dissertation eine umfassende Studie präsentiert, die durch einen online Fragebogen und qualitative Experteninterviews diese Bedürfnisse aufzeigt. Ein Ergebnis dieser Studie ist, dass Konflikte, die durch parallele Änderungen von Modellen entstanden sind, als schädlich empfunden werden und dass daher von den EntwicklerInnen versucht wird, diese zur Gänze zur vermeiden. Jedoch sollten Konflikte nicht als negatives Resultat gemeinsamen Modellierens gesehen werden, sondern als Chance um Ideen zu diskutieren und um das zu entwickelnde System zu verbessern. Daher wird in dieser Dissertation ein Konflikt-toleranter Modellversionierungsansatz vorgestellt, bei dem die EntwicklerInnen ihre Änderungen in ein zentrales Modell-Repository einchecken können, ohne sich um Konflikte sorgen zu müssen. Dieser Ansatz fügt durch entsprechende Merge Regeln mehrere parallele Versionen eines Modells zu Einer zusammen und berücksichtigt die Änderungen aller EntwicklerInnen. Dieses gemergte Modell bildet eine gute Basis für Diskussionen über die verschiedenen Änderungen und dient dazu, aufgetretene Konflikte gemeinsam aufzulösen. Um über Konflikte entscheiden zu können, ist es notwendig, diese entsprechend zu visualisieren. Dies wurde auch durch die empirische Studie bestätigt. Jedoch bieten aktuelle Versionierungssysteme keine adäquate Repräsentation von Konflikten. Um Konflikte zwischen zwei Modellversionen auflösen zu können, ist es auch notwendig zu verstehen, wie der jeweilige Konflikt entstanden ist. Auch diese Anforderung kann von state-of-the-art Versionierungswerkzeugen nicht erfüllt werden. Aus diesen Gründen wird in dieser Dissertation eine Visualisierung von aufgetreten Konflikten auf Basis eines Modellannotationsmechansimus vorgestellt, mit dem das Modell auch mit zusätzlichen Metainformationen angereichert wird, um besser die parallele Evolution eines zu entwickelnden Modells zu verstehen. Dieser Mechanismus wurde in Form eines Prototyps implementiert, der mittels einer experimentellen Studie evaluiert wurde, die die Vorteile kollaborativen Modellierens veranschaulicht.

Keywords:
Modell-getriebene Softwareentwicklung, Model-driven software engineering, MDSE, Versionierung, Konflikte, conflicts, version control, versioning


Electronic version of the publication:
http://publik.tuwien.ac.at/files/PubDat_209022.pdf



Related Projects:
Project Head Gerti Kappel:
AMOR: Adaptable Model Versioning


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