Aufgabe

Modellrepository

In der modellgetriebenen Softwareentwicklung sind die zugrunde liegenden Modelle die wichtigsten Artefakte. Auch wenn sich dieser Ansatz zunehmendem Zuspruch erfreut, ist die Infrastruktur zur Verwaltung von Modellen noch nicht sehr weit gediehen. Daher soll, aufbauend auf der Netzwerkdatenbank Neo Database, ein erweiterbares Ablage- und Verwaltungssystem für Modelle (M1), deren Metamodelle (M2) und deren Metametamodell (EMF Ecore) (M3) entwickelt werden.

Folgende Funktionen sind in diesem Projektierungsseminar zu implementieren:

  • Speichern bzw. Laden von (Meta-)Modellen in bzw. aus dem Repository : Beim Speichern von Modellen sind diese auf Modellelementebene mit ihren Metamodellelementen zu verknüpfen. Zur Vereinfachung wird angenommen, dass jedes Modellelement zu genau einem Modell gehört und jedes Model nur einem Metamodell folgt. Zum Speichern nimmt das Repository die Modelle bzw. die Modellgraphen als serialisiertes EMF Ecore-XMI auf. Beim Laden von Modellen bzw. Modellgraphen aus dem Repository müssen diese wieder in eine serialisierte Form des EMF Ecore-XMIs transformiert werden.
  • Es sind folgende Modelloperatoren für das Repository zu implementieren:
    • Match : Ermitteln eines Modellelements, einer Modellstruktur, eines Modells oder einer Menge von Modellen
    • Difference : Ermitteln der Unterschiede zwischen zwei Modellen
    • Merge : Aktualisierung eines bestehenden Modells durch Erweitern oder ggf. schrittweise Konfliktlösung
  • Das Repository ist als Einzelapplikation zu entwickeln. Ergänzend dazu ist eine graphische Oberfläche zu implementieren, die als Plugin in die Eclipse IDE (http://www.eclipse.org/) integriert werden kann. Damit kann die Verbindung zum ausgwählten Modell-Repository projektweise verwaltet werden, sowie alle Funktionen des Modellrepositories ansprochen und ggf. auch gesteuert werden.

Geplante Zusatzfunktionen

(nicht Teil der Aufgabenstellung)

  • Remote-Zugriff auf das Repository mit Sperren
  • Versionierung auf Modellelementebene
Nach oben