UML から C++ への変換の構成

このコンテンツは、バージョン 7.5.1 以降に適用されます。 変換で予想どおりの出力を生成するために使用する情報を指定するには、構成のガイドをする新規変換構成ウィザード変換構成エディターを使用します。
このタスクについて

変換構成は、ファイル名拡張子 .tc を持ち、変換が予想通りの出力を生成するために使用する情報が含まれます。また、変換構成には、 特定のタイプの変換に固有の情報も含まれています。既存の変換構成を編集するには、ワークスペース・リソースを示すビューで変換構成ファイルをダブルクリックし、変換構成エディターを開きます。

変換構成ファイルに関する作業を簡略化するには、変換する要素を含むプロジェクトに構成ファイルを保管します。

  1. 作業しているビューに応じて、以下のステップのいずれかを実行します。
    • 「パターン・エクスプローラー」ビューで変換を右クリックし、「新規構成」をクリックします。
    • その他のビューで、「ファイル」 > 「新規」 > 「変換構成」をクリックします。「変換構成」がメニュー項目でない場合は、「ファイル」 > 「新規」 > 「その他」 > 「変換」 > 「変換構成」をクリックします。
  2. 構成の詳細を指定します。新規変換構成ウィザードの「構成名および変換の指定」ページで、以下のステップを完了します。
    1. 名前フィールドに、構成の名前を指定します。
    2. 構成ファイル宛先フィールドで、変換構成ファイルの宛先を指定します。宛先は、現行ワークスペース内の相対パスです。完全修飾プロジェクト名またはフォルダー名を指定できます。プロジェクト内のフォルダーを指定する場合は、フォルダー名の前に接頭部としてスラッシュ (/) を付ける必要があります。
    3. 変換リストから変換を選択します。
      注: インストールされていても使用可能になっていない変換を表示するには、すべての変換の表示をクリックします。 変換は、このリストに表示するには、機能にバインドする必要があります。
  3. プロトコル」セクションでモデリング・プロトコルを指定します。これは、設計規約管理プロトコル (DCMP) とも呼ばれています。選択する値によって、変換のソースとターゲットを同期するかどうかが決定されます。
    • ソース・モデルが基本技術成果物の場合は、概念を選択します。 ソース・モデルへの変更はすべてターゲット・モデルに波及します。
    • ターゲット・モデルが基本技術成果物の場合は、混合をクリックします。 変換により、ソースの成果物は、ターゲットの成果物に直結するビジュアル表示に 変換されます。 ソース・モデルで作業する代わりに ターゲット・ドメイン内で作業する場合、または分析のために成果物を保持する場合に このオプションを選択します。 変換出力は、基本技術成果物になります。
    • ソース成果物が表すアーキテクチャーがターゲットとは独立して発展する場合は、「調整」を選択します。このオプションを選択すると、ソースとターゲットの比較や変更の調整に利用できる 後方変換を使用できるようになります。また、他のチームによって該当のアーキテクチャーが 実装、開発、または保守される場合にも、このオプションを選択することができます。
      注: このオプションを選択すると、「メイン」ページの「後方変換」セクションで、追加のプロパティーが使用可能になります。 一部の変換では、変換構成エディターで追加のページが使用可能になります。 後方変換の構成について詳しくは、下の関連リンクを参照してください。
  4. 「次へ」をクリックします。
  5. 変換のソース要素とターゲット要素を指定します。有効なソース要素とターゲット要素のリストについては、この変換に関する関連概念のトピックを参照してください。 「ソースとターゲット」ページで、以下のステップを実行します。
    1. 選択済みソース」ペインで、変換対象の変換用にソース要素を選択します。
    2. 選択済みターゲット」ペインで、変換出力の宛先を選択します。出力の新規の宛先を作成するには、ターゲット・コンテナーの作成をクリックします。
  6. 「次へ」をクリックします。
  7. オプション: 変換出力の上書きオプションを指定します。 また、廃止ファイルを変換によって削除するかどうかについても指定できます。 廃止ファイルは、ソース UML モデル内のクラスを名前変更した結果、発生する場合があります。 「UML から C++ への変換構成プロパティー」ページの 「既存ファイルの上書き」の下で、以下のいずれかのステップを実行します。
    • 変換によってファイルが上書きされる前にプロンプトを受け取るようにするには、 「確認する」をクリックします。
    • ファイルを自動的に上書きするには、「常時」をクリックします。
    • ファイルを上書きしないようにするには、「常に行わない」をクリックします。
    • 廃止された変換出力を削除するには、「旧ファイルの削除」チェック・ボックスを選択します。
      注: このチェック・ボックスを選択した場合、変換構成エディターのメインページで「トレース関係の作成」オプションも選択する必要があります。
    UML から C++ への変換を再実行すると、変換により、 C++ 言語のコンテンツが含まれていないファイルが削除されます。
  8. オプション: 変換で標準操作を生成する方法を指定します。「UML から C++ への変換構成プロパティー」ページの 「操作の生成」の下で、以下のいずれかのステップを実行します。
    • コンストラクターを生成するには、「コンストラクター」チェック・ボックスを選択します。
    • コピー・コンストラクターを生成するには、「コピー・コンストラクター」チェック・ボックスを選択します。
    • 代入演算子を生成するには、「代入」チェック・ボックスを選択します。
    • デストラクターを生成するには、「デストラクター」チェック・ボックスを選択します。
    • ターゲット・クラスで仮想デストラクターを生成するには、「仮想デストラクター」チェック・ボックスを選択します。
    • 生成されたクラス、構造体、または共用体の属性に対して getter メソッドおよび setter メソッドを生成するには、「getter および setter」チェック・ボックスを選択します。
    • インラインの getter メソッドおよび setter メソッドを生成するには、「インライン」チェック・ボックスを選択します。
    • 参照を使用してパラメーターおよび戻り値を受け渡す getter メソッドおよび setter メソッドを生成するには、「参照による受け渡し」チェック・ボックスを選択します。
  9. オプション: 変換出力の生成のための設定を指定します。 「UML から C++ への変換構成プロパティー」ページの 「コード生成プロパティー」の下で、以下のいずれかのステップを実行します。
    • 変換によってターゲット・プロジェクト内の異なるフォルダーにヘッダー・ファイルとソース・ファイルを生成するように指定するには、「ヘッダー・ファイルとソース・ファイル用に別々のフォルダーを作成 」チェック・ボックスを選択し、「ヘッダー・ファイルのフォルダー」フィールドと「ソース・ファイルのフォルダー」フィールドに、フォルダー名を指定します。 ターゲット・プロジェクトに存在しないフォルダーを指定すると、次回、変換を実行したときに、 これらのフォルダーが作成されます。
      注: 「ヘッダー・ファイルとソース・ファイル用に別々のフォルダーを作成」チェック・ボックスを選択する場合、変換は生成されるインクルード・ディレクティブのパス情報を抑制します。
    • 小文字のファイル名を生成するには、「ヘッダー・ファイルとソース・ファイル用に小文字のファイル名を生成」チェック・ボックスを選択します。

    「ヘッダー・ファイルとソース・ファイル用に別々のフォルダーを作成」チェック・ボックスを選択した場合、変換により、指定されたソース・ファイル・フォルダーに、ソース UML モデルと同じ階層でファイルが生成されます。 変換では、ヘッダー・ファイルのソース・モデル階層は保持されません。 例えば、UML モデルに、Package1 というパッケージが含まれており、パッケージには Class1 というクラスが含まれているとします。生成されるヘッダー・ファイルとソース・ファイルのフォルダー名として HeaderFolder および SourceFolder を指定した場合、変換により、 Class1.h というファイルがターゲット・プロジェクトの HeaderFolder フォルダー構造に生成され、 Class1.cpp というファイルがターゲット・プロジェクトの SourceFolder/Package1 フォルダー構造に生成されます。

  10. オプション: 変換でインクルード・ディレクティブを生成する方法を指定します。デフォルトでは、生成されたインクルード・ディレクティブは、インポートされたファイルの相対パスを指定します。

    「UML から C++ への変換構成プロパティー」ページの 「内部インクルード (Internal inclusion)」の下で、下の表からオプションを選択します。インポートされたクラスが変換ソースの一部であり、それに適用される «cpp_internal_inclusion» ステレオタイプを持っていない場合、変換は指定した値を使用してインクルード・ディレクティブを生成します。

    「外部インクルード (External inclusion)」の下で、以下の表からオプションを選択します。インポートされたクラスが変換ソースの一部ではなく、それに適用される «cpp_external_inclusion» ステレオタイプを持っていない場合、変換は指定した値を使用してインクルード・ディレクティブを生成します。

    オプション 説明
    なし このオプションはインクルード・ディレクティブの生成を抑制します。
    インクルード・ディレクティブのパス名の抑制 このオプションは生成されたコード内のヘッダー・ファイルの絶対パス名を抑制します。makefile のインクルード・オプションに指定したパス名がインクルード・ディレクティブに暗黙指定されます。

    例えば、ヘッダー・ファイルの絶対パス名が Package1/header1.h の場合に、このオプションをクリックすると、生成されるインクルード・ディレクティブは、#include header1.h になります。

    インクルード・ファイルへの相対パス名を含むインクルード・ディレクティブを生成 このオプションは、インポートされたファイルの相対パスを指定するインクルード・ディレクティブを生成します。
    次のファイル名を含むインクルード・ディレクティブの生成 このオプションの場合、インポートするファイル名の相対パスまたは絶対パスを指定します。

    例えば、このフィールドに「..¥includefile.h」と指定する場合、生成されるインクルード・ディレクティブは #include "..¥includefile.h" になります。

    このフォルダーに関連しているインクルード・ディレクティブの生成 このオプションは、インポートされたクラスのパス (指定のフォルダーからの相対パス) を指定するインクルード・ディレクティブを生成します。指定するフォルダーが、現行のワークスペースに存在している必要があります。
  11. オプション: C++ コードを生成するデフォルトの JET 変換をオーバーライドするには、 次の JET 変換を使用して C++ コードを生成 (Use the following JET transformation to generate C++ code)」フィールドに、オーバーライド JET 変換の ID を指定します。

    例えば、デフォルトの JET 変換をオーバーライドして、コード内のコメントをカスタマイズすることがあります。 JET 変換の ID は一般に、この例での my.company.my.jet.project のように、反転ドメイン命名スキーマに従います。 この機能について詳しくは、この変換に関連概念のトピックを参照してください。

  12. 「次へ」をクリックします。
  13. オプション: 構成する変換がマッピングをサポートする場合は、マッピング・モデルを作成することで、変換で生成される成果物の代替名を指定できます。新規または既存のマッピング・モデルを使用するには、以下のステップを実行します。
    1. マッピング」ページで、この構成でマッピング機能を使用可能にするチェック・ボックスを選択します。
    2. マッピング・モデルのファイル名」フィールドで、新規または既存のマッピング・モデルの名前を指定します。
  14. 「終了」をクリックします。 変換構成エディターが開くと、構成の内容が表示されます。
  15. オプション: デバッグ情報を生成するには、「メイン」ページでデバッグ・ログの生成チェック・ボックスを選択します。 次回変換を実行したときに、ログ・ファイルが XML ファイルとして、変換の設定で指定したフォルダーに生成されます。 ログ・ファイルの場所を指定していない場合は、変換によりワークスペースの .metadata フォルダーにログ・ファイルが生成されます。
    ヒント: 変換の設定を行うには、「ウィンドウ」 > 「設定」とクリックし、「モデリング」を展開して、「変換」をクリックします。

    ログ・ファイルは、ソース要素、ターゲット要素、および変換によってソース要素が変換されるときに適用される規則に関する情報を提供します。変換が多数の要素を変換する場合、変換がログ・ファイルを生成している間はパフォーマンスが低下することがあります。そのため、ログ・ファイルを生成するのは、デバッグ目的の場合のみにしてください。

  16. オプション: 変換の実行中に新規ダイアログ・ボックスが開かないようにするには、「メイン」ページでサイレント・モードで前方変換を実行チェック・ボックスを選択します。

    サイレント・モードで変換を実行すると、変換によって生成されるすべてのダイアログ・ボックスが抑制されます。 変換ではデフォルトの規則と振る舞いが適用され、予期しない変換出力や不正確な変換出力が生成されることがあります。サイレント・モードでの変換の実行は、変換出力の検証ではなく、変換の実行を検証する場合のみ実行してください。例えば、自動化されたタスクや自動化されたテスト・スイートの一部として、変換をサイレント・モードで実行することがあります。

    変換がサイレント・モードで実行されるよう設定すると、指定したファイル上書きオプションがオーバーライドされ、必要に応じてファイルが上書きされます。

    C++ から UML への変換が有効である場合、サイレント・モードで後方変換を実行チェック・ボックスを選択できます。サイレント・モードで C++ から UML への変換、または後方変換を実行するよう指定すると、マージ・エディターが抑止されます。マージ中に競合が発生すると、変換が停止します。その場合には、サイレント・オプションをクリアして変換を再実行する必要があります。

  17. 変換のソースとターゲット間の追跡可能な関係を作成するには、「メイン」ページでトレース関係を作成チェック・ボックスを選択します。このチェック・ボックスは、具象モデルをシードする概念モデルおよび概念モデル駆動型開発または 調整されたモデリングのプロトコルを選択する場合のみ使用できます。

    トレース関係とビジュアル開発ツールを使用して、ソース・モデル要素と変換出力の関係を理解することができます。 この機能は、複数のモデルおよび変換構成を持つような大規模なプロジェクトの場合に便利です。 ソース・モデルは変換によって変更されません。

  18. オプション: 変換の実行時に発生したエラーを表示するには、「メイン」ページで変換の完了時に「レポート」ダイアログ・ボックスを開くチェック・ボックスを選択します。このチェック・ボックスを選択すると、生成されたエラーのみが表示されます。同じ情報はエラー・ログにも書き込まれます。このエラー・ログは「ウィンドウ」 > 「ビューの表示」 > 「エラー・ログ (Error Log)」の順にクリックすることで表示できます。

    変換の実行時に発生した警告を表示するには、「レポート」ダイアログ・ボックスに警告を表示チェック・ボックスを選択します。

  19. オプション: 変換構成に関する文書を指定します。このフィールドは、複数のユーザーが共有する構成に関する情報を伝達する場合に便利です。「メイン」ページの「文書」フィールドに、変換構成についての追加情報を指定します。
  20. 「ファイル」 > 「保存」をクリックします。
タスクの結果
オプションは次回変換を実行したときに適用されます。

フィードバック