UML-Zuordnungsbeziehungen

Bei der Umsetzung werden Zuordnungsbeziehungen im C++-Code in "member"-Variablen umgesetzt. Bei Zuordnungen, die keine Zusammensetzungszuordnungen sind, wird bei der Umsetzung das Pointerzeichen ("*") zum "qualifier" des Attributtyps hinzugefügt. Wenn Sie Multiplizität angeben und eine bestimmte Zahl dafür festlegen (mit demselben unteren und oberen Bereich) wird bei der Umsetzung eine Array-Spezifikation zum Attribut hinzugefügt.

Bei der Umsetzung werden folgende Zuordnungen und Eigenschaften für die Codegenerierung verwendet:

Eigenschaft

C++

Name

Erstellt eine neue Mitgliedsvariable mit dem angegebenen Namen (mit Gültigkeitsprüfung des Namens).

Visibility

Bestimmt die Sichtbarkeit der generierten Mitgliedsvariable.

UML-Generalisierungsbeziehungen

Standardmäßig wird bei der Umsetzung öffentlich zugängliche Vererbung für das Ziel der UML-Generalisierungsbeziehung generiert. Bei der Umsetzung werden automatisch die Headerdateien für das Ziel in die generierte Headerdatei mit "include" eingebunden. Die C++-Umsetzung unterstützt mehrfache Vererbungen. 

Sie können das Stereotyp "cpp_generalization" anwenden, um die Sichtbarkeit der Generalisierungsbeziehung anzugeben ("public", "protected", "private" und "default"). 

UML-"Verwendungs"-Beziehungen

Typischerweise weist eine "Verwendungs"-Beziehung auf eine Referenz auf die Klasse oder Aufzählung hin. Standardmäßig wird eine Verwendungsbeziehung in einen Vorverweis in der generierten Headerdatei und eine "include"-Anweisung in der Hauptteildatei umgesetzt. 

Wenn Sie das Stereotyp "cpp_dependency" anwenden und für das Attribut "isInclusionInHeader" den Wert Wahr angeben, wird bei der Umsetzung die "include"-Anweisung" in der Headerdatei generiert. 

Sie können eine "Verwendungs"-Beziehung nutzen, um "friend"-Beziehungen zwischen Klassen anzuzeigen, indem Sie das Stereotyp "cpp_friend" auf die Beziehung anwenden. Bei der Umsetzung wird die "friend"-Anweisung in die generierte Headerdatei eingefügt (zum Beispiel: "friend class Klasse1;"). Bei der Umsetzung wird kein Rumpfhauptteil für die "friend"-Funktionen generiert. Im generierten Code wird automatisch eine Abhängigkeit von der "friend"-Klasse hinzugefügt. 

Dabei kann ein "include"-Pfad mit einem <<TBD ...>>-Tag ähnlich wie im folgenden Beispiel auftreten:

#include "../<<TBD tatsächlicher Projektpfad>>/..." 

In den meisten Fällen geschieht dies, weil bei der Umsetzung ein Element eines anderen UML-Modells verwendet wurde. Sie müssen den Tag <<TBD ..>> durch den tatsächlichen Projektpfad zur Datei, auf die verwiesen wird, ersetzen.

UML-Schablonenparameter

Eine UML-Klasse mit Schablonenparametern wird in eine Schablonenklasse umgesetzt.

UML-"Bindungs"-Beziehungen (Klassen, für die ein Exemplar erstellt wurde)

Bei der Umsetzung werden UML-Klassen mit einer "Bindungs"-Beziehung mit einem Ziel von Klasse1 als eine Exemplarerstellung der Schablonenklasse Klasse1 betrachtet. Zur Auflösung der formalen Parameter in die tatsächlichen Parameter wird bei der Umsetzung die von der "Bindungs"-Beziehung angegebene Parametersubstitution verwendet.

Wenn einen Klasse mehr als eine "Bindungs"-Beziehung hat, wird eine Warnung angezeigt. Wenn eine Klasse mehr als eine "Bindungs"-Beziehung hat, wir bei der Umsetzung die erste davon zur Codegenerierung verwendet.

Bei der Umsetzung werden die Datentypen der tatsächlichen Parameter zur include-Liste der Klasse, für die ein Exemplar erstellt wurde, hinzugefügt.

Die folgende Abbildung zeigt die Exemplarerstellungsbeziehung, die von der Umsetzung unterstützt wird. Dabei ist eine Klasse mit Parameterangabe und für eine andere Klasse wurde ein Exemplar erstellt.

Die Umsetzung unterstützt keine komplexeren Verwendungsmuster von Schablonenklassen, wie statische Variablen in Schablonen und Klassen mit Parameterangabe, die als formale Parameter verwendet werden.

Übersicht

Nutzungsbedingungen | Rückmeldungen
(C) Copyright IBM Corporation 2004. Alle Rechte vorbehalten.