UML モデル

cpp_namespace ステレオタイプをモデルに適用できます。 ステレオタイプの NamespaceName 属性を使用して、モデル内のすべての要素の名前空間を指定できます。

UML パッケージ

UML パッケージは、対象プロジェクト内でフォルダーになります (さらに、 これに対応してファイル・システム上ではフォルダーになります)。  変換により、 パッケージ・フォルダーにパッケージの要素が配置されます。

変換は、分析パッケージとマークされたパッケージを 無視します。 ユーザーは、パッケージに <<perspective>> ステレオタイプを適用するか、 キーワード "analysis" か "Analysis" を適用することで、パッケージを 分析パッケージとしてマークします。

モデルと同様に、cpp_namespace ステレオタイプをパッケージに適用して、 パッケージ内のすべての要素の名前空間を指定できます。 変換では、現在、ネストされている名前空間は サポートされていません。 内部パッケージ上に指定された名前空間は、 外部パッケージ上に指定された名前空間に置き換わります。

2 つの UML パッケージに同じモデル・レベルの同じ名前がある場合、 変換によりファイル・システム上にフォルダーが 1 つだけ作成され、そのフォルダーに 両方の UML パッケージのコンテンツが配置されます。

UML クラス

UML クラスの場合、変換により、ヘッダー・ファイルと本体ファイルのペアが 生成されます。 この変換では、C++ の規則に準拠して、確実に名前がユニークになるように、必要に応じて クラスの名前が変換されます。 本体ファイルには、常に対応するヘッダー・ファイルの include ディレクティブがあります。 デフォルトでは、生成されたヘッダー・ファイルの ファイル名は <ClassName>.h となり、生成された本体ファイルのファイル名は <ClassName>.cpp.  となります。

汎化および関連は、コード生成に影響を与えます。 詳しくは、『UML 関連』および『UML 汎化関係』を参照してください。

次のステレオタイプを UML クラスに適用できます。

·         cpp_struct: このステレオタイプは、クラスではなく C++ struct を生成する。

·        cpp_union: このステレオタイプは、C++ クラスではなく C++ union を生成する。 C++ のプロファイルは、ネストされた union が匿名であることを許可します。 デフォルトでは、union に標準的操作は生成されません。

·        cpp_typedef: このステレオタイプは、C++ クラスではなく C++ typedef を生成する。 ステレオタイプの 「ImplementationType」属性を使用して、定義されるタイプのシグニチャーを指定する 必要があります。

UML 列挙

変換により、UML 列挙が into C++ 「enum」に変換されます。 C++ 列挙の名前は、UML 列挙から採用されます。 この変換では、C++ の規則に準拠して、 確実に名前がユニークになるように、必要時応じて列挙の名前が変換されます。 変換により、UML 属性が C++ 属性として生成され、モデルのデフォルト値が適用されます。

UML クラスと異なり、変換では列挙のヘッダー・ファイルのみが 生成されます。

UML インターフェース

C++ 変換は、UML インターフェースを C++ クラスに変換します。 インターフェースの処理は、UML 操作が純粋な C++ の仮想メソッドとして生成されること以外は、UML クラスの処理に類似しています。標準の操作 (デフォルト・コンストラクター、コピー・コンストラクター、デストラクター、および代入演算子) の処理は、インターフェースの場合もクラスの場合と同じです。

ネストされている UML クラス、列挙、およびインターフェース

クラス内に、クラス、列挙、およびインターフェースをネストすることができます。変換により、ネストされていないオブジェクトと同様のネストされたオブジェクトが生成されます。 ただし、変換では、ネストされたオブジェクトの個別のヘッダー・ファイルと本体ファイルは作成されません。 変換では、ネストされたオブジェクトを含むクラスのヘッダー・ファイルと本体ファイルに 追加します。

ネストされたオブジェクトには以下のような違いもあります。

·         ネストされた要素の可視性は親の中で追跡される

·         ネストされた要素の include ディレクティブは、ネストされた要素を含むクラスの include ディレクティブに追加される

·         ネストされた要素の操作本体には、ネストされた要素を含むクラスの名前がプレフィックスとして付加される

·         ネストされた要素の静的属性の定義は、ネストされた要素を含むクラスの名前も含む

トップ

ご利用条件 | フィードバック
(C) Copyright IBM Corporation 2004. All Rights Reserved.