変換構成では、オプションによって、変換がモデル要素と変換出力との間に生成する関係の型を指定することができます。 デフォルトでは、変換は追跡可能な関係を作成しません。
ソース・モデルの要素がターゲット・プロジェクトの要素とどのように関係しているかを理解するには、 変換で、ソース・モデル要素からターゲット・プロジェクト内の生成された要素へのトレース関係を作成します。 その後、モデル照会を作成および実行して、トピック図内にそのトレース関係を表示することができます。
トレース関係の作成は、複数のモデルおよび複数の変換構成を持つような大規模なプロジェクトの場合に便利です。 また、変換出力がソフトウェアの仕様やモデル要素とどのように関係しているかを表示する、追跡可能性照会を作成および実行することもできます。
変換を再実行すると、必要に応じてソース・コード内の ID を使用して対応する要素との突き合わせが行われ、モデルに対する変更を反映するようにコードが変更されます。 例えば、ソース・モデル内の UML 操作を名前変更してから変換を再実行すると、変換では、以前に生成された Java™ メソッドを削除して新規のメソッドを追加するのではなく、以前に生成されたそのメソッドが名前変更され、メソッド本文が保持されます。
Java から UML への変換、またはその後方変換では、Java プロジェクトと UML モデルの間の対応する要素を突き合わせる場合にも、この ID を使用します。 Java ソース・コード要素への変更は、 生成済みコードでの追加および削除としてではなく、変更またはコード・リファクタリングとして処理されます (そう処理するのが妥当な場合)。
| UML 要素 | 変換出力 | クラス図でのトレース関係 |
|---|---|---|
![]() |
/**
*
*/
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
*
* @uml.annotations
* derived_abstraction="platform:/resource/UMLProj/Blank%20Model.emx#_KXR5IBT-EdyMPpwIqIFsyw"
* @generated "sourceid:platform:/resource/UMLProj/Blank%20Model.emx#_KXR5IBT-EdyMPpwIqIFsyw"
*/
public class Class1 {
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
*
* @generated "sourceid:platform:/resource/UMLProj/Blank%20Model.emx#_kmkjYBgmEdyKx8PsxF7ltw"
*/
private Integer attribute1;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return the attribute1
* @generated "sourceid:platform:/resource/UMLProj/Blank%20Model.emx#_kmkjYBgmEdyKx8PsxF7ltw?GETTER"
*/
public Integer getAttribute1() {
// begin-user-code
return attribute1;
// end-user-code
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param theAttribute1 the attribute1 to set
* @generated "sourceid:platform:/resource/UMLProj/Blank%20Model.emx#_kmkjYBgmEdyKx8PsxF7ltw?SETTER"
*/
public void setAttribute1(Integer theAttribute1) {
// begin-user-code
attribute1 = theAttribute1;
// end-user-code
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
*
* @generated "sourceid:platform:/resource/UMLProj/Blank%20Model.emx#_MXaS4Bg1EdyKx8PsxF7ltw"
*/
public void Operation1() {
// begin-user-code
// TODO 自動生成されたメソッド・スタブ
// end-user-code
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
*
* @generated "sourceid:platform:/resource/UMLProj/Blank%20Model.emx#_MkZmABg1EdyKx8PsxF7ltw"
*/
public void Operation2() {
// begin-user-code
// TODO 自動生成されたメソッド・スタブ
// end-user-code
}
}
|
![]() |
トレース関係を生成するように指定された変換では、ソース・モデルが変更されません。
ソース・モデル要素と変換出力の間の直接参照を作成するように、変換に指定することができます。 変換によって、ソース・モデル要素は変換出力へのポインターに置換されます。 変換によって生成されるソース・コードは基本の技術成果物となり、モデル内の要素はコードのビジュアル表示となります。 この手法は、UML モデルを使用する代わりにターゲット・ドメインを使用して作業をする場合に役立ちます。 モデル内のオブジェクトのビジュアル表示に対する変更は、コード内で即時に可視となります。
モデル要素と変換出力の間の直接参照を作成する変換を実行すると、ソース・モデルが変更されます。問題が発生するのを防ぐために、ソース・モデルのバージョン管理を行ってください。
ターゲット・ドメインで作業をする利点を実感するために、UML モデルへの増分変更を行うときには直接参照を作成し、その後、そのモデルをコードのビジュアル表示に変換してください。 ネストされた要素などで、UML 要素を変換できない場合、これらの要素は最も近いパッケージに移動されます。変換でモデル要素を最も近いパッケージに移動できない場合、その要素は削除されます。
モデル要素と変換出力の間の直接参照の作成について詳しくは、このトピックに関連するチュートリアルを参照してください。