Share via


方法: UML モデルを他のモデルおよびツールと統合する

UML モデルは、他のモデルおよびドメイン固有言語と統合することができます。

さまざまな機能を実行する拡張コードを記述することにより、次の方法でモデルを統合できます。

  • 任意の要素からの参照をファイルなどの他の項目に、または他のモデル内の要素にアタッチします。
    UML 要素には、ID を文字列としてエンコードすることによって、他の UML 要素、ファイル、またはオブジェクトへのリンクを格納できます。

    たとえば、UML アクション (アクティビティ図内の要素) を他のアクティビティ図にリンクする拡張機能を作成できます。 ユーザーがアクションをダブルクリックすると、もう 1 つの図が開きます。 これによりユーザーは、アクションの詳細なビューを提供できます。

    要素に文字列および他のデータを格納するには、次の 2 つの方法があります。

    • ステレオタイプ プロパティ。 UML プロファイルを定義し、そのプロファイルに、指定された種類の UML 要素にプロパティを追加するステレオタイプを定義できます。 たとえば、UML アクションに MoreDetail という名前のプロパティを追加するプロファイルを定義できます。 ステレオタイプをアクションに適用してからプロパティにデータを格納することによって、アクションにリンク データを格納する拡張コードを記述できます。

      ステレオタイプとそのプロパティは、プロパティ ウィンドウでユーザーに表示されます。

      この拡張機能を配置するには、プロファイル定義と拡張コードを単一の Visual Studio 拡張機能にパッケージ化します。

      詳細については、「方法: プロファイルを定義して UML を拡張する」を参照してください。

      メニュー コマンドおよびジェスチャ ハンドラーと共にプロファイルが配置されたサンプル プロジェクトについては、「Sample: UML Profiles (サンプル: UML プロファイル)」を参照してください。

    • 参照。 UML 要素に文字列のセットをアタッチできます。 ファイル名などの情報や他の要素の GUID を格納するコードを記述できます。 これは定義を追加せずに行うことができます。 参照はユーザーには直接表示されません。

      詳細については、「方法: モデル要素に参照文字列をアタッチする」を参照してください。 サンプルについては、「Link UML Elements to Diagrams or other Files (UML 要素を図または他のファイルにリンクする)」を参照してください。

    参照をモデル要素にエンコードするには、次の 2 つの方法があります。

    • GUID またはファイル名。ターゲット モデル要素とそのモデル要素を含むモデル、またはそのモデル要素を表示する特定の図の GUID またはファイル名です。

      例については、「Link UML Elements to Diagrams or other Files (UML 要素を図または他のファイルにリンクする)」を参照してください。

    • ModelBus 参照。 ModelBus は、モデル間の参照を生成して解決するためのフレームワークです。 ModelBus には ModelBus Picker が含まれており、ユーザーはこれを使用してモデル内の要素を選択できます。 また、ターゲット モデルでの変更のために失われた参照を解決する際にも役立ちます。

      詳細については、「Visual Studio Modelbus によるモデルの統合」を参照してください。

  • あるモデルに対する変更を他のモデルに反映します。
    たとえば、要素の名前をリンクされた図の名前と同期することで、ユーザーが一方を変更すると他方も変更されます。 この操作を行うには次の 2 つの方法があります。

    1. **VMSDK 規則。**同じモデル内の変更を反映するために使用できます。

      例については、「Link UML Elements to Diagrams or other Files (UML 要素を図または他のファイルにリンクする)」を参照してください。

    2. **VMSDK イベント。**たとえば、リンクされたドキュメントのファイル名の変更や他のモデル内の要素の変更など、モデル外部の変更を反映するために使用できます。

    これら 2 つの方法の詳細については、「方法: UML モデル内で変更に応答する」を参照してください。

  • コピーする要素をあるモデルから他のモデルにドラッグします。
    ユーザーは項目を UML 図にドラッグすることによって要素を生成できます。 生成された要素は元の要素のコピーである必要はありません。 たとえば、ユーザーはアクティビティ図をソリューション エクスプローラーから他のアクティビティ図にドラッグして、新しいアクションを生成できます。

    詳細については、「方法: モデリング図にドロップおよびダブルクリック ハンドラーを定義する」および「方法: ドラッグ アンド ドロップ ハンドラーを追加する」を参照してください。

サンプル

コード サンプル「Link UML Elements to Diagrams or other Files (UML 要素を図または他のファイルにリンクする)」を参照してください。 このコード サンプルでは、ユーザーがファイルを任意の UML 要素にドラッグし、後でその要素をダブルクリックしてファイルを開くことができます。 たとえば、アクティビティ図をユース ケース要素にリンクできます。 アイコンによって、どの要素にリンクがあるかが示されます。

このコード サンプルでは次の手法が示されています。

方法: ドラッグ アンド ドロップ ハンドラーを追加する では、ユース ケース図のユース ケースを別の図またはドキュメントにリンクできます。

参照

その他の技術情報

方法: モデリング図にメニュー コマンドを定義する

方法: モデリング図にドロップおよびダブルクリック ハンドラーを定義する

方法: ドラッグ アンド ドロップ ハンドラーを追加する

方法: UML モデル内で変更に応答する

Sample: UML Profiles (サンプル: UML プロファイル)

Link UML Elements to Diagrams or other Files (UML 要素を図または他のファイルにリンクする)