Java と UML の両方で開発する場合に変換を使用して変更内容をマージするためのワークフロー

この内容は、バージョン 7.5.4 以降にあてはまります。バージョン 7.5.4 以降、UML から Java への変換を使用して、生成されたすべてのターゲット Java™ 要素を対応する UML 要素に自動的にリンクさせたり、UML から Java への変換を有効にして、モデルとソースを同期させることができるようになりました。

UML モデルと Java の両方を使用してシステムの設計と開発を行う場合は、変換およびその後方変換を使用して作業内容をマージおよび同期化できます。

Rational® モデリング製品では、バージョン 7.5.4 で加えられた Java および UML 間における変更内容をマージする機能が変更されました。

例えば次のユース・ケースは、7.5.4 より前のバージョンの製品で、Java および UML 間で開発の変更内容をマージする場合の一般的なワークフローと結果を示しています。

バージョン 7.5.4 より前のワークフロー

Java コードおよび UML モデルの両方でシステムを開発した場合には、通常このワークフローに従い、それらの間で変更内容を同期化します。

  1. 新しい Java コード要素を Java プロジェクトに追加します。例えば、新規クラス、属性、およびメソッドを Java コードに追加します。
  2. Java から UML への変換を実行して、これらの新規要素を UML モデルに追加します。
  3. Java から UML への変換により、追加した Java 要素から生成された UML 要素を編集します。
  4. UML から Java への後方変換を実行して、モデル内で UML 要素に加えた変更と Java コードをマージします。

このワークフローに従った場合、UML モデル要素に加えた変更のマージを行うことになりますが、これは失敗します。この UML モデル要素は、Java から UML への変換により、ユーザーが追加した Java 要素から生成されたものです。UML から Java への変換では、UML の変更内容を Java コードに伝搬することはできません。これは、ユーザーが手動で追加した Java 要素が @generated タグを持たないためです。このタグは、UML から Java への変換を使用して UML の変更内容を Java にマージする場合に必要です。UML から Java への変換では、@generated タグを持たないコードのオーバーライドが行われません。そのため、UML に加えた変更が Java コードにマージされません。この問題を回避してこのコードを持つモデルを同期化するには、新規コード要素ごとに @generated タグを手動で追加し、UML から Java への変換を実行します。

Java と UML 間で変更内容を同期化するには、追加のステップを含む以下のワークフローに従う必要があります。

  1. 新しい Java コード要素を Java プロジェクトに追加します。
  2. Java から UML への変換を実行して、新規要素をモデルに追加します。
  3. 新規コード要素ごとに @generated タグを手動で追加します。
  4. Java から UML への変換により Java 要素から生成された UML 要素を編集します。
  5. UML から Java への後方変換を実行して、モデル内で UML 要素に加えた変更と Java コードをマージします。

バージョン 7.5.4 以降の異なる同期ワークフロー

バージョン 7.5.4 以降の例

バージョン 7.5.4 以降の Rational モデリング製品では、UML から Java への変換を使用して Java コード内の要素 (属性) を上書きできます。このフィーチャーは「Java を UML にリンク」をクリックすることにより起動され、ユーザーが手動で作成した Java 要素に @generated タグを自動的に追加します。これによって、UML から Java への変換で、UML の変更内容を Java に伝搬することができます。またこのオプションは、他の Java 変換 javadoc コメントを追加したり、//begin-user-code コメントおよび //end-user-code コメントを追加して既存のメソッドの本文を維持したりします。「Java を UML にリンク」をクリックすると、Java 要素が対応する UML モデル要素にリンクされます。また、UML から Java への変換により、対応するソース・コード要素を上書きすることができます。このボタンをクリックすると、次に行われる変換では希望通りのマージが行われます。これは、Java 要素が対応するモデル要素にリンクされるためです。

バージョン 7.5.4 以降で Java と UML 間で変更内容を同期するには、以下のワークフローに従います。

  1. 新しい Java コード要素を Java プロジェクトに追加します。
  2. Java から UML への変換を実行して、これらの新規要素を UML モデルに追加します。
  3. Java を UML にリンク」をクリックして、すべてのコード要素をモデルにリンクさせます。
  4. UML モデル要素を編集します。
  5. UML から Java への変換を実行して、モデル内で加えた変更を Java コードとマージします。
注: 最近追加されたモデル要素を編集して UML から Java への (後方) 変換を実行する前に、「Java を UML にリンク」をクリックする必要があります。

フィードバック