Transformieren von UML-Modellen
Sie können jedes vorhandene UML-Paket von einer Modellierungssprache in eine andere transformieren. Mit der Transformation werden alle relevanten Elemente, wie Klassen, Schnittstellen, Attribute, Operationen, Generalisierungen usw. von der Quell- in die Zielsprache transformiert. Bei der Quell- und Zielsprache kann es sich um jede beliebige von UModel unterstützte handeln (C++, C#, Java, VB.NET, UML sowie Datenbanken und XML-Schemas).
Für eine Transformation werden ein "Quellmodell" (d.h. das zu transformierende Paket) und ein "Zielmodell" (ein Zielpaket) benötigt. Da das Zielpaket unter Umständen bereits Elemente enthält, können Sie eine Modelltransformation auf zwei verschiedene Arten durchführen:
1.Sie können die Änderungen aus dem Quellmodell im Zielmodell überschreiben.
2.Sie können die Änderungen aus dem Quellmodell mit dem Zielmodell zusammenführen.
(Wenn es sich beim Ziel um ein neues Paket handelt, spielt es bei der ersten Transformation keine Rolle, ob Sie "überschreiben" oder "Zusammenführen (Mergen)" auswählen.)
Wenn das Quellmodell Klassendiagramme enthält, können diese optional in das Zielmodell transformiert werden (dies gilt für C#, Java, VB.NET und UML). Diagramme, die im Zielmodell vorhanden sind, werden gemäß den Transformationseinstellungen aktualisiert, die Elemente darin werden durch diejenigen im Quellmodell überschrieben oder mit diesen zusammengeführt.
Während der Transformation können Sie die einzelnen Datentypen in der Quellsprache über ein Dialogfeld der Assistenten optional auf Datentypen in der Zielsprache mappen. Wenn Sie diesen Schritt überspringen, verwendet UModel standardmäßig vordefinierte Typentsprechungen. Die Typentsprechungen können auch zu einem späteren Zeitpunkt geändert werden, Sie müssen die Transformation jedoch erneut ausführen, damit die Änderungen im Zielmodell übernommen werden.
Wenn Sie Modelltransformationen automatisch durchführen, nimmt UModel die folgenden Änderungen automatisch vor:
•Wenn im UML-Quellmodell das UML-Stereotyp «create» auf eine Klassenoperation angewendet wurde, wird im Zielmodell (C++, C#, Java, VB) das Stereotyp «constructor» angewendet. Wenn eine Operation umgekehrt in C++, C#, Java oder VB.NET das Stereotyp «constructor» hat, erhält dieselbe Operation im UML-Zielmodell das Stereotyp «create».
•Wenn es sich beim Zielmodell um eine Datenbank handelt, wird eine Eigenschaft namens "id" im Quellmodell im Zielmodell in einen Primär- oder Sekundärschlüssel des passenden Datentyps konvertiert.
UModel unterstützt die laufende Aktualisierung von transformierten Modellen, d.h. Sie können im Quellmodell weiterarbeiten und die Modelltransformation so oft wie nötig durchführen, um das Zielmodell auf aktuellem Stand zu halten. Die Modelltransformation kann auch automatisch durchgeführt werden, siehe Transformationseinstellungen.
So führen Sie eine Modelltransformation durch:
1.Öffnen Sie das UModel-Projekt, das das Paket, das Sie als Quellmodell verwenden möchten, enthält.
2.Klicken Sie im Menü "Projekt" auf Modelltransformation.
3.Wählen Sie das Quellprojekt (das Sie in eine andere Sprache transformieren möchten) aus und klicken Sie auf Weiter.
4.Wählen Sie eine Zielsprache aus und klicken Sie auf Weiter. (Um alle Elemente in ein neues Zielpaket zu platzieren, aktivieren Sie das Kontrollkästchen In neues Paket transformieren.)
5.Wählen Sie die Art der Transformation aus (z.B. Java in C#). Informationen zu allen anderen Einstellungen finden Sie unter Transformationseinstellungen.
6.Wählen Sie eine der folgenden Methoden:
a.Um die Transformation mit den Standardtypmappings durchzuführen, klicken Sie auf Fertig stellen.
b.Um die Typmappings vor der Transformation zu überprüfen, klicken Sie auf Weiter, ändern Sie die Datenmapppings nach Bedarf und klicken Sie anschließend auf Fertig stellen.
Wenn die Transformation erfolgreich fertig gestellt wurde, wird automatisch ein neues Paket namens "Modelltransformation von <Quellpaket> in <Zielpaket>" generiert. Das Diagramm wird im Zielpaket generiert. Im Diagramm unten sehen Sie das Quellpaket, das Zielpaket, die Abhängigkeitsbeziehung zwischen den beiden Paketen und eine Liste der Eigenschaftswerte.
Modelltransformations-Beispieldiagramm
In diesem Diagramm wird nicht nur die Modelltransformation dargestellt, Sie können darin auch die Modelltransformationseinstellungen ändern. Gehen Sie dazu folgendermaßen vor:
1.Klicken Sie auf die Abhängigkeitsbeziehung im Diagramm (oder in der Modell-Struktur - Sie finden diese unter Beziehungen).
2.Ändern Sie im Fenster "Eigenschaften" die erforderlichen Optionen.
Doppelklicken Sie alternativ dazu direkt im Diagramm auf einen Eigenschaftswert, um ihn zu ändern.
Nachdem Sie die Transformationseinstellungen geändert haben, führen Sie die Transformation erneut durch, um das Zielmodell zu aktualisieren. Sie können dies auf folgende Arten tun:
•Klicken Sie im Diagramm mit der rechten Maustaste auf die Abhängigkeitsbeziehung und wählen Sie in Kontextmenü den Befehl Modelltransformation aktualisieren.
•Klicken Sie im Fenster "Modell-Struktur" mit der rechten Maustaste auf das Quellpaket und wählen Sie im Kontextmenü den Befehl Modelltransformation aktualisieren.
Schritt-für-Schritt-Beispiele für Transformationen finden Sie unter:
•Beispiel: Transformieren von Java in C++