[Back]


Doctor's Theses (authored and supervised):

P. Brosch:
"Conflict Resolution in Model Versioning";
Supervisor, Reviewer: G. Kappel, A. Pierantonio; E188 Institut für Softwaretechnik und Interaktive Systeme, 2012; oral examination: 2012-07-02.



English abstract:
In most engineering disciplines, models are built as pragmatic, yet precise abstractions of huge systems. The model building process requires multiple people jointly elaborating on artifacts, which are analyzed, used to communicate among stakeholders, and act finally as construction plan for realizing the modeled system. In the field of software engineering, modeling languages such as the Unified Modeling Language (UML) provide multiple diagrams to describe various viewpoints of a system in a concrete graphical notation. While the code-centric software engineering discipline adopted those models as visual language for describing the system under study, the increasing complexity of modern software systems accompanied by ever shorter time to market constraints has asked for new techniques. The upcoming Model-Driven Engineering (MDE) approach aims at additionally exploiting models to automatically generate executable code. This paradigm shift lifts models to first-class citizens within the whole engineering process, effectively shaping the primary artifact of change undergoing the collaborative refinement from informal sketches to blueprints. This upgrowth intrinsically demands tool support for managing the modelsī history including merging of parallel evolved models. Optimistic versioning systems, which are already successfully applied for the management of source code, handle both issues. However, applying those systems to models fails due to the modelsī graph-based structure. Consequently, first dedicated model versioning systems emerged. Although current model versioning systems provide decent conflict detection facilities, they (1) ignore the graphical representation of the models, and (2) neglect conflict resolution by totally shifting the responsibility to the user. Yet, the central role of models unifying the human-centric, collaborative abstraction and design process with the computation-centric process of generating executable systems, demands proper mechanisms to foster validity and quality of the merged model.

In this thesis, we first analyze specifics of model versioning and elaborate on the notion of conflict to improve conflict resolution respecting the central role of models. To cope with the human-centric aspect, we present a conflict aware merge strategy to calculate a tentatively merged conflict diagram as accelerator for conflict resolution retaining the graphical representation of the model. The conflict diagram unifies non-conflicting changes and materializes merge conflicts in form of annotations, rendering a coherent picture of the modelīs evolution. To further support the conflict resolution process, we elaborate on a conflict resolution recommender system on top of the conflict diagram, which recommends automatically executable conflict resolution patterns. Finally, to satisfy validity conditions of the computation-centric aspect, we establish a formal framework based on graph transformation theory, to showcase the feasibility of our approach.

German abstract:
In nahezu jeder Ingenieurdisziplin werden große Systeme mittels pragmatischer und doch präziser Modelle abstrahiert. Der Modellbildungsprozess erfordert die Zusammenarbeit im Team und resultiert letztendlich in Artefakten zur Analyse und Kommunikation zwischen Interessengruppen, die schließlich als Bauplan zur Realisierung des Systems eingesetzt werden. Modellierungssprachen wie die Unified Modeling Language (UML) stellen speziell für den Bereich der Softwareentwicklung zahlreiche Diagramme zur grafischen Beschreibung der verschiedenen Gesichtspunkte eines Systems zur Verfügung. Die codezentrierte Softwareentwicklung benutzt solche Modelle im traditionellen Sinn. Die steigende Komplexität moderner Softwaresysteme und die immer kürzer werdenden Vorlaufzeiten erfordern jedoch neue Techniken. Das aufstrebende Paradigma der Modellgetriebenen Softwareetwicklung (MDE) verfolgt das Ziel Modelle zur automatischen Generierung von ausführbaren Code auszunutzen. Modelle werden dadurch zum zentralen Artefakt im gesamten Entwicklungsprozess und durchleben die kollaborative Verfeinerung von informellen Skizzen bis hin zum fertigen Bauplan. Dadurch wird die werkzeugunterstützte Verwaltung der Änderungen und das Zusammenführen paralleler Änderungen immer wichtiger. Optimistische Versionierungssysteme, welche bereits erfolgreich zur Verwaltung von Code eingesetzt werden, unterstützen beide Aufgaben. Allerdings können sie aufgrund der graphbasierten Struktur von Modellen nicht direkt auf Modelle angewendet werden. Folglich entstanden spezielle Modellversionierungssysteme, die bereits brauchbare Mechanismen zur Konflikterkennung bieten. Dennoch gibt es Schwachpunkte: (1) die grafische Repräsentation wird ignoriert und (2) die Auflösung von Konflikten wird in die Verantwortung der Benutzer abgeschoben. Da Modelle nun die direkte Drehscheibe zwischen dem menschenzentrierten Systementwicklungsprozess und dem berechnungszentrierten Generierungsprozess bilden, werden geeignete Mechanismen zur Förderung der Qualität und Gültigkeit des zusammengeführten Modells benötigt.

Um der zentralen Rolle der Modelle im Konfliktauflösungsprozess gerecht zu werden, untersuchen wir in dieser Arbeit zuerst die Spezifika der Modellversionierung und den Konfliktbegriff. Die menschenzentrierten Anforderungen meistern wir durch die konfliktbewusste Berechnung eines Konfliktdiagramms, das durch die Erhaltung der grafischen Repräsentation als Basis für die Konfliktauflösung dient. Das Konfliktdiagramm vereint unproblematische Änderungen und materialisiert Konflikte mittels Annotationen, um ein nachvollziehbares Bild der gesamten Evolution zu schaffen. Auf das Konfliktdiagramm aufbauend präsentieren wir einen Empfehlungsdienst, der ausführbare Muster zur Konfliktauflösung vorschlägt. Schlussendlich genügen wir den berechnungszentrierten Anforderungen, indem wir einen formalen Rahmen basierend auf Graphtransformationstheorie schaffen, der die Anwendbarkeit unseres Ansatzes zeigt.

Keywords:
model versioning, conflict resolution, merging


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



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

Project Head Martina Seidl:
FAME: Formalisierung und Handhabung von Evolution in modellbasierter Softwareentwicklung


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