-
Was ist Metamodell Evolution?
- Genau wie Code nach Lehmans Law evolutioniert auch das Metamodell
- Instanzen, Transformationen, Templates, Editoren muessen angepasst werden
- Die Anpassung dieser Elemente auf eine neue Version des Metamodells nennt man Ko-Evolution
-
Welche zwei Typen von Aenderungen gibt es?
- atomare: add, delete, rename, CRUD
- komplexe: semantisch sinvolle Kombinationen von atomaren Aenderungen. Refactoring, Verschieben von Elementen
-
Wie kann man Aenderung von Modellen beschreieben?
- Jede Aenderung kann man mit Aenderungschritten beschreiben, die zu Aenderungsequenzen zusammengefasst werden koennen.
-
Welche Verfahren gibt es, um Aenderungen zwischen zwei Modellen zu ermitteln?
- delta-basierte
- zustandsbasierte
-
Delta-Basierte Aenderungsermittlung erklaeren
-
Beschreibung von neuen Modell M**’** durch alte Version M und Menge D von Aenderungen.
-
M’ = M + D
-
D Bezieht sich nur auf M
-
Automatisch oder manuell schrittweise neue Modell aendern.
-
Man hat altes Modell, man hat Delta → Berechne neues Modell
-
Vortele und Nachteile von Delta-Basierten Verfahren
- Vorteil: Benurzer Intention wird besser erfasst
- Nachteil: Aenderungen muessen irgendwie geloggt werden - man muss D wissen. I.A nicht minimal
-
Zustands-Basierte Aenderungsermittlung erklaeren
- Beide Versionen des Modells M und M’ muessen bekannt sein
- D wird aus der Differenz zwischen Modellen ermittelt
-
Vortele und Nachteile von Zustands-Basierten Verfahren
- Vorteil: minimal
- Nachteil: Aenderussequenz muss automatisch ermittelt werden. Nur Heuristioken
-
Delta-Basierte vs Zustands-Basierte:
- Delta Basiert: man kennt altes Model und Delta, berechtet neue Modell
- Zustands-Basiert: man kennt altes und neues Modell, berechne Delta
-
Was fuer ein Problem gibt bei Modellaenderungen?
- Instanzen des Modells koennen wegen Aenderungen ungueltig werden
-
Wie kann man die Instanzen anpassen?
- Delta zwischen Modellen ermitteln
- Instanzen modifizieren
- Oft wird nur die “Statische Hilfe” automatisch generiert (zB Dummy-Werte fuer Attribute), die spaeter gefueelt werden muessen
-
Welche Schewegrade von Aenderungen gibt es?
- non-breaking: alle Instanzen bleiben gueltig.
- breaking and resolvable: Aenderungen koennen ungueltige Instanzen erstellen. Ko-Evolution Operation kann automatisch abgeleitet werden.
- breaking and not resolvable: Aenderungen koennen ungueltige Instanzen erstellen. Ko-Evolutions-Operation muss manuell durchgefuehrt werden. Es ist immer problematisch, wenn man die @NotNull Attribute hinzufuegen muss (im 1…n Fall)