UML-Modelle

Sie können das Stereotyp "cpp_namespace" auf ein Modell anwenden. Sie können das Attribut "NamespaceName" des Stereotyps verwenden, um einen Namespace für alle Elemente im Modell anzugeben.

UML-Pakete

UML-Pakete werden zu Ordnern im Zielprojekt (und damit auch zu Ordnern im Dateisystem). Bei der Umsetzung werden die Elemente des Pakets in den Paketordner platziert.

Bei der Umsetzung werden Pakete ignoriert, die als Analysepakte markiert wurden. Ein Benutzer kann ein Paket als Analysepaket markieren, indem er das Stereotyp <<perspective>> darauf anwendet oder das Schlüsselwort "analysis" oder "Analysis" verwendet.

Ähnlich wie bei Modellen können Sie das Stereotyp "cpp_namespace" auch auf Pakete anwenden, um den Namespace für alle Elemente im Paket anzugeben. Die Umsetzung unterstützt gegenwärtig noch keine verschachtelten Namespaces. Der Namespace, der im inneren Paket angegeben ist, überlagert den Namespace, der im äußeren Paket angegeben ist.

Wenn zwei UML-Pakete auf derselben Modellebene denselben Namen haben, erstellt die Umsetzung nur einen Ordner im Dateisystem und speichert den Inhalt beider UML-Pakete in diesem Ordner.

UML-Klassen

Die Umsetzung generiert für UML-Klassen zwei Dateien: eine Headerdatei und eine Hauptteildatei. Bei Bedarf wandelt die Umsetzung den Namen der Klasse so ab, dass er den Regeln von C++ entspricht und eindeutig ist. Die Hauptteildatei enthält immer die "include"-Anweisung für die zugehörige Headerdatei. Standardmäßig erhält die generierte Headerdatei den Dateinamen <KlassenName>.h und die generierte Hauptteildatei den Dateinamen <KlassenName>.cpp

Generalisierungs- und Zuordnungsbeziehungen wirken sich auf die Codegenerierung aus. Weitere Informationen dazu finden Sie in den Abschnitten "UML- Zuordnungsbeziehungen" und "UML- Generalisierungsbeziehungen".

Sie können folgende Stereotypen auf UML-Klassen anwenden:

·         cpp_struct: Dieses Stereotyp generiert anstelle einer Klasse ein C++-Struct.

·        cpp_union: Dieses Stereotyp generiert eine C++-Datentypvariable anstelle einer C++-Klasse. Das C++-Profil erlaubt auch, dass eine verschachtelte Datentypvariable anonym ist. Standardmäßig werden für Datentypvariablen keine Standardoperationen generiert.

·        cpp_typedef: Dieses Stereotyp generiert ein C++-typedef anstelle einer C++-Klasse. Sie sollten das Attribut "ImplementationType" dieses Stereotyps verwenden, um die Signatur des Typs anzugeben, der definiert wird.

UML-Aufzählungen

Die Umsetzung setzt UML-Aufzählungen in C++-"enum" um. Der Name der C++-Aufzählung wird von der UML-Aufzählung übernommen. Bei Bedarf wandelt die Umsetzung den Namen der Aufzählung so ab, dass er den Regeln von C++ entspricht und eindeutig ist. Die Umsetzung generiert UML-Attribute als C++-Attribute und wendet die Standardwerte aus dem Modell an.

Im Gegensatz zu UML-Klassen werden für Aufzählungen bei der Umsetzung nur Headerdateien generiert.

Verschachtelte UML-Klassen und Aufzählungen

Klassen können verschachtelte Klassen und Aufzählungen enthalten. Bei der Umsetzung werden verschachtelte Objekte ähnlich wie nicht verschachtelte Objekte generiert. Es werden bei der Umsetzung aber keine eigenen Header- und Hauptteildateien für verschachtelte Objekte erzeugt, sondern die Header- und Hauptteildateien der Klasse, in der sie enthalten sind, ergänzt.

Verschachtelte Klassen und Aufzählungen unterscheiden sich auch in den folgenden Punkten:

·         Die Sichtbarkeit der verschachtelten Elemente wird in den übergeordneten Elementen protokolliert.

·         "Include"-Anweisungen für verschachtelte Elemente werden zu den "include"-Anweisungen der Klassen, in denen sie enthalten sind, hinzugefügt.

·         Operationshauptteile für verschachtelte Elemente erhalten als Präfix die Namen der Klassen, in denen sie enthalten sind.

·         Definitionen von statischen Attributen für verschachtelte Elemente enthalten auch die Namen der Klassen, in denen sie enthalten sind.

Übersicht

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