変換プリファレンスの設定法について詳しくは、このトピックの最後にある、関連する「変換モデル」タスクのトピックへのリンクを参照してください。
| 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 要素が生成されます。
変換では、変換のターゲットとして指定した C++ プロジェクトおよび C++ プロジェクト・フォルダー内に C++ コード・ファイルが生成されます。
UML 要素と C++ コード要素の間に、追跡可能な関係と呼ばれる一種のリンクが変換により定義されるよう指定して、C++ コードと UML モデル要素を容易に同期させることができます。調整されたモデリングまたは概念の設計規約管理プロトコル (DCMP) を使用するように C++ から UML への変換または UML から C++ への変換を構成している場合は、このオプションを指定できます。変換を実行すると、生成された要素に注釈および ID が追加されて、追跡可能な関係が作成されます。 追跡可能な関係を生成すると、C++ から UML への変換により UML モデルで重複した要素が生成されることを防げます。
変換によって追跡可能な関係が生成されるのは以下の要素です。
以下の表には、UML から C++ への変換により、どのように UML モデル要素が C++ コードに変換されるかがリストされています。
| UML モデル要素 | C++ コード要素 |
|---|---|
| 関連 | クラス属性 |
| クラス | クラス (.h ファイルおよび .cpp ファイル) |
| 依存関係 | 包含、下方参照、またはなし
注: ヘッダー・ファイルと実装ファイルの中に生成されるものは、プロパティー・ウィンドウの「C++ プロパティー」ページでの設定値によって決まります。
|
| 列挙 | Enum (.h ファイル) |
| 汎化関係 | クラス継承 |
| 操作 | 操作 |
| パッケージ | フォルダー |
| パラメーター | 操作引数 |
| プロパティー | クラス属性 |
| テンプレート・バインド関係 | インスタンス化されたクラス (.h ファイル) |
| テンプレート・クラス | UML テンプレート・クラスと同じ名前を持つヘッダー・ファイル (.h ファイル)
注: メソッド本文コードもヘッダー・ファイルに生成されます。
|
| テンプレート・パラメーター | パラメーター化されたクラス用のパラメーター |
変換によりどのように UML モデル要素が変換されるかについて詳しくは、このトピックの末尾にある関連リファレンスのトピックを参照してください。
ソース・モデルの要素がターゲット・プロジェクトの要素とどのように関係しているかを理解するには、変換でソース・モデル要素からターゲット・プロジェクト内に生成された要素へのトレース関係を作成します。その後、モデル照会を作成および実行して、トピック図内にそのトレース関係を表示することができます。
トレース関係の作成は、複数のモデルおよび複数の変換構成を持つような大規模なプロジェクトの場合に便利です。 また、変換出力がソフトウェアの仕様やモデル要素とどのように関係しているかを表示する、追跡可能性照会を作成および実行することもできます。
変換によってトレース関係を生成するように指定した場合には、ソース・モデルは変換によって変更されません。
| UML 要素 | 変換出力 | クラス図に示される派生関係 |
|---|---|---|
![]() |
|
![]() |
標準操作は、コンストラクター、コピー・コンストラクター、仮想および非仮想のデストラクター、代入演算子、および getter および setter の各メソッドです。 UML から C++ への変換によって UML モデルのクラス、構造体、および共用体で生成される標準操作を指定できます。また、標準操作の 1 つであるステレオタイプをモデル内のクラスの操作に追加することもできます。UML - C++ 変換は、生成された標準操作に UML 操作の可視性を適用しますが、UML 操作の名前および パラメーターを無視します。
変換は、ファイルの自動チェックアウトや新規ファイルの追加を可能にする IBM® Rational® Team Concert、CVS、Rational ClearCase®、および Rational ClearCase LT バージョン管理システムとの統合機能を提供します。構成管理システムを使用するには、チーム機能を有効にする必要があります。