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