[Back]


Diploma and Master Theses (authored and supervised):

M. Kapellner:
"How to Efficiently Collaborate in Model Versioning: A Guideline to Reduce and Resolve Conflicts";
Supervisor: G. Kappel, M. Seidl, P. Brosch; Institut für Softwaretechnik und Interaktive Systeme, 2010; final examination: 08-30-2010.



English abstract:
The advances in software development lead to ever increasing complexity of software systems. Therewith rises the demand for technologies and techniques to shield the developers from that system complexity. For decades researchers and practioners have created abstractions to that end. Early programming languages shielded the programmers from the complexity of programming with machine code. Continuously, new programming languages and environments emerged and still emerge. At the moment, model-driven development, the next abstraction level, is on the rise, leveraging models to central artefacts of software development.
Nowadays, software is developed in teams. Models provide the advantage to be additionally used as an inter-expert language, hence facilitating communication. Consequently, a model is often edited by multiple persons. Version control provides collaborative support on a technical level by enabling concurrent work. In version control, mechanisms are refined to improve software development in teams. Current versioning tools, however, mainly provide support for code-centric software engineering. Versioning of models still faces major challenges. Models may not be as easily divided into parts and partitioned for several developers to work on as source code is. Due to parallel development, the versioning of models is especially prone to conflicts. The resolution of conflict situations is a precarious and preferably collaborative process.
Progress in model-driven development research seems to be restricted to the technical level, while social aspects like human behaviour and cooperation are often neglected. This is surprising, since software developers spend more than 60% of their time with collaborative activities, including meetings and other communication, coordination of tasks, and collaboratively executing these tasks. Well working collaboration in a team leads to an overall better outcome. It is therefore important to actively shape collaboration to gain the huge potential benefits achieved through efficient teamwork.
This thesis provides a general survey on possibilities to improve the model-driven development process in regard to collaborative aspects. We therefore analyse means and methods of collaboration in theory and practice, both in software engineering and various other fields. We highlight the importance of attaching a greater value to collaboration in research and in practice. Since collaboration is especially finical in conflict situations, we provide a specific example for enhanced collaboration in conflict resolution in model versioning.

German abstract:
Die technologischen Fortschritte in der Softwareentwicklung erlauben die Erstellung immer größerer und komplexerer Softwaresysteme, die wiederum nur durch geeignete Abstraktionsmechanismen zu bewältigen sind. Daher suchen Forscher und Anwender seit Jahrzehnten nach neuen Technologien und Techniken, um den Entwickler von dieser Komplexität abzuschirmen. Die modell getriebene Softwareentwicklung (model-driven software development) stellt die nächste Ebene der Abstraktion dar. Hierbei werden Modelle zu zentralen Artefakten der Softwareentwicklung.
Software wird heutzutage meist in Teams entwickelt. Modelle selbst fördern die Zusammenarbeit, da sie zusätzlich als gemeinsame Sprache zwischen verschiedenen Experten dienen. Durch die gemeinsame Entwicklung von Modellen durch mehrere Personen müssen diese der Versionskontrolle unterzogen werden. Die Mechanismen der Versionierung, welche die gleichzeitige Arbeit erst ermöglicht, sind stetiger Weiterentwicklung unterworfen. Obwohl diese Techniken für die code-zentrierte Softwareentwicklung sehr gute Unterstützung bieten, hält die Versionierung in der modell getriebenen Softwareentwicklung noch einige Herausforderungen bereit. Die Lösung von Konflikten, die durch gleichzeitige Bearbeitung von Modellen entstehen, ist ein besonders heikler Prozess, wobei jedoch die besten Ergebnisse durch die gemeinsame Problemlösung erzielt werden.
Die Fortschritte in der modell getriebenen Softwareentwicklung scheinen reduziert auf technische Aspekte, während soziale Faktoren, also jene Faktoren, die von Menschen abhängen, weitgehend vernachlässigt werden. Diese Tatsache ist überraschend, verbringen doch Softwareentwickler mindestens 60% ihrer Zeit mit kollaborativen Aktivitäten wie Kommunikation, Koordination, und die gemeinsame Ausführung von Aufgaben. Gut funktionierende Zusammenarbeit in einem Team führt in jeder Hinsicht zu einem besseren Ergebnis. Die potentiell sehr hohen Gewinne durch effiziente Kollaboration ergeben sich nur aus der aktiven Gestaltung der Zusammenarbeit.
In dieser Diplomarbeit präsentieren wir Möglichkeiten, die Prozesse in der modell getriebenen Softwareentwicklung durch die Förderung der Kollaboration zu verbessern. Bestehende Mittel und Methoden der Zusammenarbeit in Theorie und Praxis werden hierfür analysiert, sowohl in der Softwareentwicklung als auch in anderen Bereichen. Wir zeigen die Notwendigkeit auf, der Kollaboration in Forschung und Praxis einen höheren Stellenwert beizumessen. Für den besonders heiklen Prozess der Konfliktlösung in der Modellversionierung präsentieren wir ein spezifisches Anwendungsbeispiel für verbesserte Kollaboration, welche zu höherer Qualität in der Software und effizienteren Entwicklungsprozessen führt.

Keywords:
Softwareentwicklung, software development, Modellversionierung, versioning


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


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