如何:将 UML 模型与其他模型和工具集成

UML 模型可与其他模型和域特定语言集成。

您可以通过编写执行各种功能的扩展代码,按以下方式集成模型:

  • 将来自任何元素的引用附加到其他项(如文件)或其他模型中的元素。
    在 UML 元素中,您可以通过将其他 UML 元素、文件或其他对象的标识编码为字符串,从而存储指向它们的链接。

    例如,您可以编写一个可将任何 UML 操作(即,活动图中的元素)链接到其他活动图的扩展。 当用户双击该操作时,将会打开其他关系图。 这使用户能够提供更详细的操作视图。

    可以通过以下两种方法将字符串和其他数据存储到任何元素中:

    • **构造型属性。**您可以定义一个 UML 配置文件,并在其中定义向指定类型的 UML 元素添加属性的构造型。 例如,您可以定义一个将名为 MoreDetail 的属性添加到 UML 操作的配置文件。 您可以编写扩展代码,通过将构造型应用于某个操作,然后将数据存储在属性中,从而在该操作中存储链接数据。

      构造型及其属性将在“属性”窗口中显示给用户。

      若要部署此扩展,您要将配置文件定义和扩展代码打包到一个 Visual Studio 扩展中。

      有关更多信息,请参见如何:定义用于扩展 UML 的配置文件

      有关在其中将配置文件与菜单命令和笔势处理程序一起部署的示例项目,请参见 Sample: UML Profiles(示例:UML 配置文件)。

    • **引用。**您可将一组字符串附加到任何 UML 元素。 您可以编写存储信息(如文件名或其他元素的 GUID)的代码。 不必提供其他定义即可完成此操作。 用户无法直接查看引用。

      有关更多信息,请参见如何:将引用字符串附加到模型元素。 有关示例,请参见 Link UML Elements to Diagrams or other Files(将 UML 元素链接到关系图或其他文件)。

    可通过两种方式将对模型元素的引用进行编码:

    • 目标模型元素的 GUID 和文件名以及包含该元素的模型或显示该元素的特定关系图。

      有关示例,请参见 Link UML Elements to Diagrams or other Files(将 UML 元素链接到关系图或其他文件)。

    • **ModelBus 引用。**ModelBus 是用于创建和解析模型之间的引用的框架。 它包括 ModelBus 选取器,可让用户选择模型中的元素。 它还能帮助用户解析因目标模型中发生更改而丢失的引用。

      有关更多信息,请参见使用 Visual Studio Modelbus 集成模型

  • 将更改从一个模型传播到另一个模型。
    例如,您可以将某个元素的名称与已链接的关系图的名称同步,这样,当用户更改其中一个名称时,另一个名称也会随着更改。 有两种机制可以实现这一点:

    1. VMSDK 规则可用于在同一模型内传播更改。

      有关示例,请参见 Link UML Elements to Diagrams or other Files(将 UML 元素链接到关系图或其他文件)。

    2. VMSDK 事件可用于在模型外传播更改 – 例如,更改已链接文档的文件名或更改其他模型中的元素。

    有关这两种机制的更多信息,请参见如何:响应 UML 模型中的更改

  • 拖动元素以从一个模型复制到另一个模型
    也可让用户通过将项拖到 UML 关系图上来创建元素。 创建的元素不必是原始元素的副本。 例如,您可以让用户将某个活动图从解决方案资源管理器拖到另一个活动图上以创建新操作。

    有关更多信息,请参见如何:在建模图上定义笔势处理程序如何:添加拖放处理程序

示例

请参见代码示例 Link UML Elements to Diagrams or other Files(将 UML 元素链接到关系图或其他文件)。 该示例让用户将一个文件拖到任何 UML 元素上,然后通过双击拖放到的元素来打开该文件。 例如,您可以将一个活动图链接到一个用例元素。 一个图标将会显示哪些元素具有链接。

此代码示例演示以下技术:

有关由 DSL 读取 UML 模型的示例,请参见如何:添加拖放处理程序

请参见

概念

如何:在建模图上定义菜单命令

如何:在建模图上定义笔势处理程序

如何:添加拖放处理程序

如何:响应 UML 模型中的更改

其他资源

Sample: UML Profiles(示例:UML 配置文件)

Link UML Elements to Diagrams or other Files(将 UML 元素链接到关系图或其他文件)