Beispielkonfiguration für eine Modell-Modell-Umsetzung, von der mehrere Objekte aus einem einzelnen Eingabeobjekt generiert werden

In diesem Beispiel wird erläutert, wie voneinander abhängige Zuordnungsdeklarationen zum Generieren mehrerer Objekte aus einem einzelnen Eingabeobjekt verwendet werden.
Vorbereitungen
Verwenden Sie zum Konfigurieren des Beispiels die Anweisungen, die im Abschnitt 'Beispielkonfiguration für eine Modell-Modell-Umsetzung, von der mehrere Objekte aus einem einzelnen Eingabeobjekt generiert werden' enthalten sind.
Warum und wann dieser Vorgang ausgeführt wird
Durch die Umsetzung werden mehrere verknüpfte Objekte aus einem einzelnen Eingabeobjekt erstellt, ohne dass der Autor der Umsetzung aufwendigen angepassten Code schreiben muss.
  1. Erweitern Sie in der Laufzeitworkbench in der Sicht Paketexplorer das Quellenprojekt, erweitern Sie Models und erweitern Sie Source1. In 'Source1' ist ein Paket mit den beiden Klassen 'A' und 'B' enthalten.
  2. Erweitern Sie das Zielprojekt und klicken Sie doppelt auf die Umsetzungskonfigurationsdatei mit dem Namen transform source1 to target1.tc.
  3. Klicken Sie im Umsetzungskonfigurationseditor auf Ausführen.
  4. Erweitern Sie im Zielprojekt Models und anschließend Target1. Beachten Sie, dass für jede Klasse im Eingabemodell im Verlauf der Umsetzung die folgenden Elemente erstellt wurden:
    • Eine Schnittstelle, deren Name dem Namen der Quellenklasse mit einem "I" davor entspricht.
    • Eine Implementierungsklasse, deren Name dem Namen der Quellenklasse gefolgt von "Impl" entspricht.
    • Eine Schnittstellenrealisierung von der Implementierungsklasse zur Schnittstelle.
Ergebnisse

Die Funktionsweise einer Umsetzung lässt sich leichter verstehen, wenn man das Problem betrachtet, das sie behebt: Angenommen, Sie verfassen eine Umsetzung und möchten die Zuordnungsdeklaration Class2InterfaceRealization in der Zuordnungsdeklaration Package2Package zum Erstellen der Schnittstellenrealisierung verwenden. Die Zielfunktion für die Submapzuordnung, eine Schnittstellenrealisierung einer UML-Klasse, wird jedoch nicht in der Zuordnungsdeklaration Package2Package angezeigt. Wie kann die Zuordnung zur fehlenden Zielfunktion durchgeführt werden?

Anmerkung: Die Elementnummern im folgenden Text beziehen sich auf Elemente in der zugehörigen Abbildung.

Um die Schnittstellenrealisierung als Ziel bereitzustellen, erstellen Sie eine Submap von der Funktion packageElement zur Funktion packageElement in der Zuordnungsdeklaration Package2Package (Element 1 in der Abbildung). Von dieser Submap wird rekursiv auf die übergeordnete Zuordnungsdeklaration Package2Package verwiesen und auf diese Art Unterstützung für verschachtelte Pakete und ihren Inhalt bereitgestellt. Somit können Sie zusätzliche Submaps von der Funktion packageElement zur Funktion packageElement definieren. Von den Submaps kann auf andere Zuordnungsdeklarationen verwiesen werden: Class2Class (Element 2) und Class2Interface (Element 3).

Wenn Sie die Zuordnungsdeklaration Class2Class erstellen, können Sie eine Submap (Element 4) verwenden, deren Eingabe das gesamte Element 'Class' ist. Wählen Sie als Ausgabe interfaceRealization aus. Als Ergebnis soll die Zuordnungsdeklaration Class2Interface verfügbar gemacht werden, mit der Sie zwei weitere Submaps (Element 5 und 6) erstellen, deren Eingabe auch das gesamte Element 'Class' ist und deren Ausgabe die Anbieterfunktion (Supplier Feature) und die Clientfunktion (Client Feature) sind. Wenn Sie den Umsetzungscode generieren, werden von den Submaps, die hier definiert werden, nicht Ausgabeobjekte erstellt, sondern Verweise auf die Ausgabeobjekte, die durch die Umsetzungen erstellt wurden, die wiederum durch andere Zuordnungsdeklarationen generiert wurden.

Wenn Sie den Umsetzungscode generieren, müssen sowohl die Funktion für die Anbieterausgabe als auch die Funktion für die Clientausgabe auf UML-Objekte verweisen, die durch die UML-Eingabeobjekte generiert wurden. Wenn Sie angeben möchten, dass von den Ausgabeobjekten Verweise verwendet werden sollen, schreiben Sie die Submapdefinitionen so, dass in ihnen die Zuordnungsdeklarationen (Class2Class oder Class2Interface) angegeben sind, deren generierte Umsetzung die Generierung des entsprechenden Ausgabeobjekts ('Class' oder 'Interface') aus derselben Eingabe zur Folge hat.

Einzelheiten finden Sie im Beispiel für die Umsetzungskonfiguration. In der Abbildung geben die Pfeile, die von einer Submap zum Anfang der Zuordnungsdeklaration zeigen, an, dass von dieser Submap auf die Zuordnungsdeklaration verwiesen wird. Beispiel: Der Pfeil mit der Angabe "1" verweist auf die Zuordnungsdeklaration Package2Package.

Verbindungsdiagramm mit den Beziehungen zwischen den Zuordnungsdeklarationen im Beispiel
Zugehörige Informationen
Konfigurationsanweisungen für eine Modell-Modell-Umsetzung, von der mehrere Objekte aus einem einzelnen Eingabeobjekt generiert werden

Rückmeldung