変換構成を作成または編集することにより、またはモデル内でモデル要素を直接選択することにより、C++ コードに変換するモデル要素を指定できます。 選択されたモデル要素が、変換のソースとして処理されます。 この変換では、コンテナーおよびそのモデル要素を両方選択した場合、または同一のモデル要素を 2 回選択した場合にエラー・メッセージが生成されます。
コンポーネントを使用して、C++ コードに変換するモデルの要素を編成できます。 コンポーネントを選択し、コンポーネントにパッケージおよびクラスへの使用関係がある場合は、UML から C++ への変換により関連するパッケージおよびクラスが、C++ コードに変換されます。
UML ソースの各要素の名前は、小文字、大文字、または下線 (_) で開始できます。 後続の文字には、小文字、大文字、または数値を使用できます。 オペレーション名内でコロン (:) を使用し、フレンド関数の完全修飾名を指定できます。 変換では、数値または無効文字で開始される名前に対して、下線 (_) を前につけます。 変換では、該当する名前空間における名前が固有であるか検査します。 その名前が固有でない場合は、変換により、接尾部に _<番号> をつけた重複名が割り当てられます。
生成されたコードの読みやすさを改善し、UML モデルと生成されたコード間の差異を最小限にするには、ソースの UML モデルにある無効な名前を訂正してから変換を適用する必要があります。
有効な変換ターゲットは、少なくとも 1 つのソース・フォルダーを含む C++ プロジェクトです。 新規にターゲット・コンテナーを作成する場合は、スタンダード Make C++ プロジェクト (ユーザーが makefile を作成するか、または既存の makefile を利用する) の作成、あるいは、管理 Make プロジェクト (makefile は自動作成される) の作成かの、いずれかを選択することができます。
以下の表には、UML から C++ への変換により、どのように UML モデル要素が C++ コードに変換されるかがリストされています。
| UML モデル要素 | C++ コード要素 |
|---|---|
| 関連 | クラス属性 |
| クラス | クラス (.h ファイルおよび .cpp ファイル) |
| 依存関係 | 取り込み |
| 列挙 | Enum (.h ファイル) |
| 汎化関係 | クラス継承 |
| 操作 | 操作 |
| パッケージ | フォルダー |
| パラメーター | 操作引数 |
| プロパティー | クラス属性 |
| テンプレート・バインド関係 | インスタンス化されたクラス (.h ファイル) |
| テンプレート・パラメーター | パラメーター化されたクラス用のパラメーター |
標準操作は、コンストラクター、コピー・コンストラクター、仮想および非仮想のデストラクター、代入演算子、および getter および setter の各メソッドです。 UML から C++ への変換で生成される標準操作を指定できます。 また、標準操作の 1 つであるステレオタイプをモデル内のクラスの操作に追加することもできます。UML - C++ 変換は、生成された標準操作に UML 操作の可視性を適用しますが、UML 操作の名前および パラメーターを無視します。 UML から C++ への変換では、UML モデルに追加したクラス、構造体、および共用体に対して標準操作を生成します。
変換では、デフォルトでコンストラクターおよびコピー・コンストラクターを生成します。 特定のステレオタイプがある操作を UML モデルに追加することにより、変換による標準操作の生成をより細かく制御できます。 あるクラス内に操作を作成し、それに標準操作ステレオタイプのいずれかを割り当てると、変換ではその指定した標準操作を生成します。
変換では、変換のターゲットとして指定した C++ プロジェクトおよび C++ プロジェクト・フォルダー内に C++ コード・ファイルを生成します。
変換では、デフォルトで、相対パス情報を指定した #include ディレクティブを生成します。 変換で相対パス情報を除外するよう設定するには、eclipse.ini ファイルに -DEXCLUDE_PATH_FOR_INCLUDES=true の行を追加します。
UML から C++ への変換で生成される C++ ボディ・ファイルに対し、.cc などの代替のファイル名拡張子を指定できます。 デフォルトで、変換では、ファイル名拡張子として .cpp を付けた C++ ファイルを生成します。 別のファイル名拡張子を指定するには、 eclipse.ini ファイルで BODY_FILE_EXTENSION システム・プロパティーを設定します。 例えば、ファイル名拡張子として .cc を付けたファイルを生成するには、 eclipse.ini ファイルに -DBODY_FILE_EXTENSION=.cc のコードを追加します。