UML モデル要素と UML から C++ への変換出力の関係

追跡可能性オプションは、ソース・モデルと変換出力の関係の作成を可能にします。

変換構成では、オプションによって、変換がモデル要素と変換出力との間に生成する関係の型を指定することができます。 デフォルトでは、変換は追跡可能な関係を作成しません。

ソース・モデル要素と変換出力の間のトレース関係

ソース・モデルの要素がターゲット・プロジェクトの要素とどのように関係しているかを理解するには、 変換で、ソース・モデル要素からターゲット・プロジェクト内の生成された要素へのトレース関係を作成します。 その後、モデル照会を作成および実行して、トピック図内にそのトレース関係を表示することができます。

トレース関係の作成は、複数のモデルおよび複数の変換構成を持つような大規模なプロジェクトの場合に便利です。 また、変換出力がソフトウェアの仕様やモデル要素とどのように関係しているかを表示する、追跡可能性照会を作成および実行することもできます。

ソース・モデルと変換出力の間のトレース関係を生成するように構成された変換を実行すると、@generated タグをサポートしているそれぞれの UML 要素について、 ソース UML モデル内の要素が名前変更された場合、 マージ機能は、この固有 ID によって、適切な要素のリファクタリングおよびマージを行うことができます。
注: UML 要素をそのトップレベル・クラスの範囲外に移動してから変換を再実行した場合、 その要素の範囲が変更されているために、マージ・アルゴリズムでは、名前変更された要素のリファクタリングまたはマージを実行しません。

トレース関係を生成するように指定された変換では、ソース・モデルが変更されません。

ソース・モデル要素と変換出力の関係を表示するには、ソース・モデル要素を図にして可視化し、変換によって生成されたコード要素をその図の中にドラッグします。以下の表には、attribute1 という整数属性がある Class1 というソース・モデル要素の UML 表記、 パラメーターのない Operation1 および Operation2 という 2 つの操作、 変換によって生成されるコード、および要素間のトレース関係を示すクラス図がリストされています。
UML 要素 変換出力 クラス図での派生関係
このイメージは、1 つの整数属性、および入力パラメーターまたは出力パラメーターがない 2 つの操作が含まれた Class1 という 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
このイメージは、Class1 とそのビジュアル表示の間の、derive ステレオタイプが適用された抽象化関係を示しています。

モデル要素と変換出力の直接参照

ソース・モデル要素と変換出力の間の直接参照を作成するように、変換に指定することができます。 変換によって、ソース・モデル要素は変換出力へのポインターに置換されます。 変換によって生成されるソース・コードは基本の技術成果物となり、モデル内の要素はコードのビジュアル表示となります。 この手法は、UML モデルを使用する代わりにターゲット・ドメインを使用して作業をする場合に役立ちます。 モデル内のオブジェクトのビジュアル表示に対する変更は、コード内で即時に可視となります。

モデル要素と変換出力の間の直接参照を作成する変換を実行すると、ソース・モデルが変更されます。問題が発生するのを防ぐために、ソース・モデルのバージョン管理を行ってください。

ターゲット・ドメインで作業をする利点を実感するために、UML モデルへの増分変更を行うときには直接参照を作成し、その後、そのモデルをコードのビジュアル表示に変換してください。 ネストされた要素などで、UML 要素を変換できない場合、これらの要素は最も近いパッケージに移動されます。変換でモデル要素を最も近いパッケージに移動できない場合、その要素は削除されます。

モデル要素と変換出力の間の直接参照の作成について詳しくは、このトピックに関連するチュートリアルを参照してください。 チュートリアルでは UML から Java への変換を使用してこの概念が説明されていますが、UML から C++ への変換を使用しても同様の手順を実行できます。

関連タスク
UML から C++ への変換によって UML モデル要素と変換出力の関係を作成しないようにする
UML ソース・モデル要素と UML から C++ への変換出力の間のトレース関係の作成
UML から C++ への変換の出力のショートカットによるソース・モデル要素の置換
UML モデル要素と UML から C++ への変換出力間の関係の作成
関連資料
UML から C++ への変換による UML モデル要素の変換処理
関連情報
変換のチュートリアル

フィードバック