Implementierung einer Konflikterkennung und –visualisierung für das Versionsverwaltungssystem TeamMode
Betreuer
Datei
Jahr
SS 2013
Stichwörter
Modellierung, Versionsverwaltung, Diagramme, Modelle, Konflikterkennung
Anforderungen
- Gute Programmierkenntnisse in Java
- Kenntnisse im Eclipse Modelling Framework
Kontext
Während der Phase der Anforderungsanalyse eines Software-Projektes werden viele verschiedene Modelle und Diagramme erstellt um die diskutierten Sachverhalte in einer einheitlichen Sprache zu beschreiben. Die Erstellung solcher Diagramme erfolgt oft in Brainstorming-Runden, bei denen sich alle beteiligten Projektpartner an einem Ort versammeln. Die Nachbearbeitung der Diagramme erfolgt aber meistens an verteilten Standorten und zu unterschiedlichen Zeiten.
Zur Unterstützung solcher Prozesse werden schon seit einiger Zeit im Bereich der Software-Entwicklung sogenannte Versionsverwaltungssysteme eingesetzt. Diese Systeme werden verwendet um die Arbeitsergebnisse der Programmierer zu verwalten. Die Verwaltung umfasst dabei vor allem die Persistierung der Ergebnisse auf einem Server, die Versionierung, d.h. die Erstellung einer Versionshistorie für eine/n Datei/Ordner und das Zusammenführen von gleichen Dokumenten, welche in verschiedenen Versionen vorliegen. Vor allem Letzteres bietet großes Potential für Konflikte, wenn z.B. zwei Entwickler in derselben Zeile eines Code-Fragments etwas geändert haben. In diesem Fall erscheint bei gängigen Tools eine Meldung in der der Konflikt aufgezeigt und der Nutzer aufgefordert wird die Version zu wählen, welche genutzt werden soll.
Ein solches Versionsverwaltungssystem (TeamMode) wurde in der Abteilung Software Systems Engineering im Rahmen einer Doktorarbeit entwickelt. Dieses System verwaltet allerdings nicht Code bzw. Textdokumente, sondern auf ECore-basierte Diagramme. ECore selbst ist ein Metamodell zur Beschreibung von domänenspezifischen Sprachen und wird weiterhin dazu genutzt Editoren für die domänenspezifischen Sprachen zu generieren. Da auf ECore basierende Modelle mit Hilfe des XMI-Formats gespeichert werden, ist ein Zusammenführen verschiedener Versionen nicht so trivial, wie bei Textdokumenten.
Zur Vervollständigung dieses Projekts wird noch die bereits erwähnte Konflikterkennung benötigt, welche anschlägt, wenn zwei Nutzer gegenteilige Sachverhalte beschreiben oder ein Zusammenführen der Diagramme zu einer Verletzung des Metamodells führt. Die Aufgabe dieser Projektarbeit wird es sein die Konzeption und prototypische Implementierung einer adäquaten und schnellen Konflikterkennung durchzuführen.
Aufgabenstellung
- Konzeption einer möglichen Lösung für die Konflikterkennung in TeamMode
- Prototypische Implementierung der Lösung in Java
- Anpassung der Konflikterkennung auf die Diagrammarten Navigationsmodell, Domänenmodell und Prozessmodell von OpenSAGA
bearbeitet durch
Tim Warnecke