Semi-automatische Konsistenzhaltung von Modellen

Aus SDQ-Wiki
Ausschreibung (Liste aller Ausschreibungen)
Question.png Typ Bachelorarbeit oder Masterarbeit
Aushang SemiAutomatedConsistencyPreservation.pdf
Betreuer Wenden Sie sich bei Interesse oder Fragen bitte an:

Heiko Klare

Motivation

Software-Systeme werden mithilfe verschiedener Modelle entwickelt, die unterschiedliche Abstraktionen oder Eigenschaften des Systems beschreiben, beispielsweise in Form von Architekturmodellen, UML-Diagrammen oder Programmcode. Diese Modelle enthalten redundante oder voneinander abhängige Informationen, zum Beispiel den Namen einer Klasse in einem UML-Diagramm und dem Code. Somit muss ein Entwickler bei der Änderung eines Modells auch die abhängigen Modelle anpassen, um Inkonsistenzen zu vermeiden.

Die manuelle Konsistenzhaltung von Modellen durch Softwareentwickler ist aufwendig und fehleranfällig. Am Lehrstuhl von Prof. Reussner wird im Vitruvius-Projekt ein Ansatz erforscht, um die Konsistenzhaltung beliebiger Modelle mittels spezialisierter, Xtext-basierter Programmiersprachen zu automatisieren. Konsistenzhaltung ist jedoch nicht immer vollautomatisiert möglich, sondern bedarf teilweise Entscheidungen des Entwickler, beispielsweise ob eine im Programmcode erstellte Klasse eine Komponente der Architektur repräsentieren soll. Diese werden im Vitruvius-Framework aktuell nur rudimentär unterstützt.

Aufgabenstellung

In dieser Abschlussarbeit soll die semi-automatische Konsistenzhaltung im Vitruvius-Framework systematisch erweitert werden. Dazu sind folgende Aufgaben zu lösen:

  • Identifizierung und Katalogisierung von Typen von Entwicklerentscheidungen
  • Implementierung der Entscheidungen im Eclipse/EMF-basierten \textsc{Vitruvius}-Framework
  • Validierung anhand bestehender Fallstudien und neu erstellter Änderungsszenarien
  • Optional/Masterarbeit: Untersuchung der Simulierbarkeit von Auswirkungen einer Entwicklerentscheidung auf das System