| DCMP | UML ソース・オブジェクト |
|---|---|
| 具象モデルをシードする概念モデル | 現在のワークスペースで、1 つ以上の UML プロジェクトから次の要素を選択できます。
|
| 概念モデル駆動型開発 | |
| 調整されたモデリング | 前出のリストで 1 つ以上の要素を選択できます。 複数のパッケージまたはネストされていない分類子を UML から C++ への変換のソースとして選択するには、それらが同じ UML モデルに含まれている必要があります。 1 つ以上のネストされていない分類子を UML から C++ への変換のソースとして選択すると、その後方変換 (C++ から UML への変換) により、後方変換が処理する最初のネストされていない分類子のルート・レベル・パッケージが判別されます。後方変換では、このルート・レベル・パッケージに出力が生成されます。 |
変換構成を作成または編集することにより、またはモデル内でモデル要素を直接選択することにより、C++ コードに変換するモデル要素を指定できます。 選択されたモデル要素が、変換のソースになります。 この変換では、コンテナーおよびそのモデル要素を両方選択した場合、または同一のモデル要素を 2 回選択した場合にエラー・メッセージが生成されます。
コンポーネントを使用して、C++ コードに変換するモデルの要素を編成できます。 コンポーネントを選択し、コンポーネントにパッケージおよびクラスへの使用関係がある場合は、UML から C++ への変換により関連するパッケージおよびクラスが、C++ コードに変換されます。
UML ソースの各要素の名前は、小文字、大文字、または下線 (_) で開始できます。 後続の文字には、小文字、大文字、または数値を使用できます。 オペレーション名内でコロン (:) を使用し、フレンド関数の完全修飾名を指定できます。 変換では、数値または無効文字で開始される名前に対して、下線 (_) を前につけます。 変換では、該当する名前空間における名前が固有であるかどうかを検査します。 その名前が固有でない場合は、変換により重複名に対して、下線文字とインクリメンタル数値 (例: _1) とからなる接尾部が割り当てられます。
生成されるコードをより読みやすくし、UML モデルと生成されたコードとの差異を最小限にするため、変換を実行する前に、ソースの UML モデルにある無効な名前を訂正してください。
有効な変換ターゲットは C++ プロジェクトです。ターゲット・コンテナーを作成する場合は、標準的な make C++ プロジェクト (自分で makefile を作成するか、または既存の makefile を利用する) を作成するか、または、マネージド make プロジェクト (makefile が自動生成される) を作成することができます。
UML から C++ への変換が実行されると、ターゲットの C++ プロジェクトに出力が生成されます。 その出力の階層は、ソース UML モデルの要素と同じです。 . 変換構成で 調整されたモデリング DCMP を選択すると、C++ から UML への変換 (後方変換) では、C++ プロジェクトと同じ階層に UML 要素が生成されます。
以下の表には、UML から C++ への変換により、どのように UML モデル要素が C++ コードに変換されるかがリストされています。
| UML モデル要素 | C++ コード要素 |
|---|---|
| 関連 | クラス属性 |
| クラス | クラス (.h ファイルおよび .cpp ファイル) |
| 依存関係 | 包含、下方参照、またはなし
注: ヘッダー・ファイルと実装ファイルの中に生成されるものは、プロパティー・ウィンドウの「C++ プロパティー」ページでの設定値によって決まります。
|
| 列挙 | Enum (.h ファイル) |
| 汎化関係 | クラス継承 |
| 操作 | 操作 |
| パッケージ | フォルダー |
| パラメーター | 操作引数 |
| プロパティー | クラス属性 |
| テンプレート・バインド関係 | インスタンス化されたクラス (.h ファイル) |
| テンプレート・クラス | UML テンプレート・クラスと同じ名前を持つヘッダー・ファイル (.h ファイル)
注: メソッド本文コードもヘッダー・ファイルに生成されます。
|
| テンプレート・パラメーター | パラメーター化されたクラス用のパラメーター |
変換によりどのように UML モデル要素が変換されるかについて詳しくは、このトピックの末尾にある関連リファレンスのトピックを参照してください。
ソース・モデルの要素がターゲット・プロジェクトの要素とどのように関係しているかを理解するには、変換でソース・モデル要素からターゲット・プロジェクト内に生成された要素へのトレース関係を作成します。その後、モデル照会を作成および実行して、トピック図内にそのトレース関係を表示することができます。
トレース関係の作成は、複数のモデルおよび複数の変換構成を持つような大規模なプロジェクトの場合に便利です。 また、変換出力がソフトウェアの仕様やモデル要素とどのように関係しているかを表示する、追跡可能性照会を作成および実行することもできます。
変換によってトレース関係を生成するように指定した場合には、ソース・モデルは変換によって変更されません。
| UML 要素 | 変換出力 | クラス図に示される派生関係 |
|---|---|---|
![]() |
#ifndef CLASS1_H
#define CLASS1_H
//ファイル Class1.h のセクションの開始
//TODO: 保持する定義を追加します
//ファイル Class1.h のセクションの終了
//@uml.annotationsderived_abstraction="platform:/resource/MyModels/UMLModel.emx#_biwQUHdCEduVaMk1fL7Qcw"
//@generated "UML to C++ (com.ibm.xtools.transform.uml2.cpp.CPPTransformation)"
class Class1 {
//Class1 のセクションの開始
//TODO: 保持する属性を追加します
//Class1 のセクションの終了
private:
//@generated "UML to C++ (com.ibm.xtools.transform.uml2.cpp.CPPTransformation)"
int attribute1;
public:
//@generated "UML to C++ (com.ibm.xtools.transform.uml2.cpp.CPPTransformation)"
int Operation1();
//@generated "UML to C++ (com.ibm.xtools.transform.uml2.cpp.CPPTransformation)"
int Operation2();
}; //クラス Class1 の終了
#endif
|
![]() |
標準操作は、コンストラクター、コピー・コンストラクター、仮想および非仮想のデストラクター、代入演算子、および getter および setter の各メソッドです。 UML から C++ への変換によって UML モードのクラス、構造体、および共用体で生成される標準操作を指定できます。 また、標準操作の 1 つであるステレオタイプをモデル内のクラスの操作に追加することもできます。UML - C++ 変換は、生成された標準操作に UML 操作の可視性を適用しますが、UML 操作の名前および パラメーターを無視します。
変換では、変換のターゲットとして指定した C++ プロジェクトおよび C++ プロジェクト・フォルダー内に C++ コード・ファイルが生成されます。