UML モデルと Java の両方を使用してシステムの設計と開発を行う場合は、変換およびその後方変換を使用して作業内容をマージおよび同期化できます。
Rational® モデリング製品では、バージョン 7.5.4 で加えられた Java および UML 間における変更内容をマージする機能が変更されました。
例えば次のユース・ケースは、7.5.4 より前のバージョンの製品で、Java および UML 間で開発の変更内容をマージする場合の一般的なワークフローと結果を示しています。
Java コードおよび UML モデルの両方でシステムを開発した場合には、通常このワークフローに従い、それらの間で変更内容を同期化します。
このワークフローに従った場合、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 間で変更内容を同期化するには、追加のステップを含む以下のワークフローに従う必要があります。
バージョン 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 間で変更内容を同期するには、以下のワークフローに従います。