Automatisierung von Modell-Migrationen - JAXenter
Das Eclipse-Projekt Edapt

Automatisierung von Modell-Migrationen

Das Eclipse-Modeling-Projekt bekommt Zuwachs durch Edapt, einem Projekt zur Automatisierung von Modell-Migrationen. Projektleiter Markus Herrmannsdörfer beschreibt den Ansatz von Edapt genauer und schildert, vor welchen Herausforderungen Eclipse Modeling im Ganzen steht.

JAXenter: Welche Lücke im Eclipse-Modeling-Katalog möchte das Edapt-Projekt schließen?

Markus Herrmannsdörfer: Das Eclipse Modeling Project unterstützt den Entwickler dabei, Modellierungssprachen mittels Ecore-Modellen zu bauen. Aufgrund der wechselnden Anforderungen an diese Modellierungssprachen sind die Ecore-Modelle Änderungen unterworfen. Doch wenn sich das Ecore-Modell ändert, können mit der Modellierungssprache erstellte Modelle oft nicht mehr geladen werden. Um die in diesen Modellen gespeicherte Information nicht zu verlieren, müssen die Modelle migriert werden. Edapt unterstützt den Entwickler bei der Migration von Modellen, indem es die Migration soweit wie möglich automatisiert.

Dadurch setzt es sich von Sprachen zur Modelltransformation ab, die eine manuelle Spezifikation der Migration erfordern. Außerdem muss man bei Modelltransformationen auch Regeln für Ecore-Klassen definieren, die sich nicht geändert haben. Mit Edapt hingegen genügt es, die Migration nur für Änderungen an den Ecore-Modellen zu spezifizieren.

JAXenter: Können Sie an einem Beispiel skizzieren, wie Edapt funktioniert?

Markus Herrmannsdörfer: Edapt verfolgt einen operationsbasierten Ansatz. Operationen kapseln die Änderungen am Ecore-Modell sowie die Migration von Modellen. Operationen können wieder verwendet werden, um die Migration zu automatisieren. Ein sehr einfaches Beispiel ist eine Operation, die ein Attribut umbenennt und die Umbenennung auch in den Modellen durchführt. Edapt bietet momentan 60 wieder verwendbare Operationen an, die sich in Fallstudien bewährt haben. Wenn eine Migration nicht durch wieder verwendbare Operationen ausgedrückt werden kann, dann kann sie auch manuell spezifiziert werden.

Für den Entwickler ist Edapt sehr komfortabel, da es nahtlos in den Ecore-Editor integriert ist. Die Operationen können direkt im Editor ausgeführt werden, und ihre Ausführung wird in einer History aufgezeichnet. Um z.B. ein Attribut umzubenennen, muss das Attribut selektiert, die Operation ausgewählt und ein neuer Name gewählt werden, und schon kann die Operation ausgeführt werden. Aus der History kann dann ein Plug-in generiert werden, das für die automatische Migration von Modellen verwendet werden kann.

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.