UML から C++ への変換によって変換されるクラス、列挙、およびインターフェース

複数の要因により、UML から C++ への変換におけるクラス、列挙、およびインターフェースからの C++ 要素の生成方法が決まります。

標準テンプレート・ライブラリー・クラスへの参照

デフォルトでは、モデルに標準テンプレート・ライブラリー (STL) のクラスへの参照が含まれている場合、変換により対応するヘッダー・ファイル名を指定するインクルード・ディレクティブが生成されます。 例えば、モデルに「vector<>」という名前の STL クラスへの参照が含まれている場合、変換によりインクルード・ディレクティブ #include <vector> が生成されます。
ヒント: UML から C++ への変換用に、この設定を編集できます。

UML クラス

変換では、変換構成のソースで指定されたそれぞれのクラスごとに、ヘッダー・ファイル、およびオプションでボディ・ファイルが生成されます。 デフォルトで、ボディ・ファイルのファイル名拡張子として .cpp が付けられます。 変換では、ステレオタイプ «cpp_struct≫、«cpp_union≫、«cpp_typedef» が適用されている UML クラスから、C++ の構造体、共用体、型定義を生成します。 モデル内の各要素にこれらのステレオタイプを適用するには、C++ 変換プロファイルを適用しておく必要があります。 変換では、以下の項目のボディ・ファイルは生成しません。
  • ステレオタイプ «cpp_typedef» が適用されているクラス
  • ステレオタイプ «cpp_struct≫、«cpp_typedef≫、または «cpp_union» が適用されていて、操作が含まれていないクラス
  • ステレオタイプ «cpp_struct≫、«cpp_typedef≫、または «cpp_union» が適用されていて、抽象操作のみが含まれているクラス
  • ステレオタイプが適用されておらず、操作が含まれていないクラス
  • ステレオタイプが適用されておらず、抽象操作のみが含まれているクラス
変換では、クラスの名前をヘッダー・ファイルおよびボディ・ファイルに割り当てます。 クラスの名前が C++ の命名規則に準拠していない場合、またはその名前が固有ではない場合は、変換により新規の名前がヘッダー・ファイルおよびボディ・ファイルに割り当てられます。 生成されたボディ・ファイルには、対応するヘッダー・ファイルの #include ディレクティブが含まれます。

変換では、ヘッダー・ファイル内に、UML テンプレート・クラスのコード、 およびテンプレート・クラスのメソッド本文が生成されます。

UML 列挙

変換では、変換構成のソースで指定したそれぞれの UML 列挙ごとに、C++ 列挙型を生成します。 必要に応じて変換では、C++ ルールに準拠した固有の名前を割り当てますが、そうでない場合は、生成された C++ 列挙型に UML 列挙と同じ名前が付けられます。 変換により、UML 列挙リテラルは C++ 列挙型リテラルに変換されます。

匿名列挙を生成するには、C++ 変換プロファイルをソース・モデルに適用し、«cpp_enum» ステレオタイプを列挙に適用して、その isAnonymousEnum プロパティーを true に設定する必要があります。

UML インターフェース

変換により、UML インターフェースは C++ クラスに変換されます。 インターフェース内の UML 操作は、純粋仮想 C++ メソッドに変換されます。

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

変換では、ネストされた各要素に対して別々のヘッダー・ファイルおよびボディ・ファイルは生成しません。 代わりに、変換では、ネストされた要素を含んだクラスのヘッダー・ファイルおよびボディ・ファイルに、ネストされた要素についての情報を追加します。


フィードバック