如何:编辑 UML 模型和关系图

您可以通过由几种不同类型的关系图提供的视图创建和编辑 UML 模型。 这些关系图从不同的视角展示您的系统,有助于您了解和讨论系统设计和需求的各个不同方面。 Visual Studio 旗舰版为 5 种最常用的 UML 关系图类型提供了模板。

本主题介绍了用于编辑不同关系图类型之间常见的模型的技术。

提示

有关特定于特定关系图类型的更多信息,请参见开发软件设计模型

主题内容

  • UML 关系图是 UML 模型的视图

  • 创建 UML 建模图

  • 绘制 UML 建模图

  • 编辑形状和连接线

  • 撤消对模型所做的更改

  • 在关系图之间共享元素

  • 复制元素和相关元素的组

  • 删除模型元素或其视图

  • 在关系图中搜索文本

UML 关系图是 UML 模型的视图

您只能在建模项目中创建和使用 UML 关系图。 有关如何创建关系图和项目的更多信息,请参见如何:创建 UML 建模项目和关系图

  • 建模项目包含单个 UML 模型。 项目中的每个 UML 关系图都是 UML 模型的一种视图。

  • 您可以在**“UML 模型资源管理器”中查看模型。 在“体系结构”菜单上,指向“窗口”,再单击“UML 模型资源管理器”**。

  • 关系图上的每个形状都是模型中一个元素的视图。 将新形状放在关系图上时,您就在模型中创建一个新元素。

  • 保存任意关系图时,Visual Studio 旗舰版都会保存整个模型、其所有关系图以及建模项目文件。

创建 UML 建模图

创建 UML 建模图

  1. 在**“体系结构”菜单上,单击“新建关系图”**。 **“体系结构”**菜单仅在 Visual Studio 旗舰版中可用。

    此时将出现**“添加新关系图”**对话框。

  2. 单击所需的关系图类型并输入关系图名称。

  3. 在**“添加到建模项目”框中,您可以选择一个现有建模项目,或者选择“创建新的建模项目”**。

    提示

    建模图只能作为建模项目的一部分存在。

还可以在解决方案资源管理器中向现有的建模项目中添加关系图。 右击建模项目,指向**“添加”,再单击“新建项”**。

创建空的 UML 建模项目

  • 在**“文件”菜单中,指向“新建”,单击“项目”,然后在“新建项目”对话框中,双击“建模项目”**。

有关如何管理建模项目的更多信息,请参见如何:创建 UML 建模项目和关系图

绘制 UML 建模图

建模图显示通过各种关系链接在一起的模型元素的集合。 每个元素都显示为一个形状,每种关系都显示为两个形状之间的一条连接线。

有两种类型的工具,一种用于元素,另一种用于关系。 例如,在 UML 类图工具箱中,**“类”是一种元素工具,“关联”**是一种关系工具。

提示

如果您希望了解特定于特定关系图类型的信息,请参见开发软件设计模型

在 UML 建模图中创建元素和关系

  1. 若要创建模型元素,请在工具箱中单击一种元素工具,再单击希望显示的关系图。 创建元素之后,可以通过拖动元素控点来调整元素大小和形状。

    在某些情况下,可以将一个新元素放置在另一个元素内部。 例如,在 UML 类图上,可以将类放置在包内部。

    提示

    如果看不到工具箱,请在“视图”菜单中单击“工具箱”

  2. 若要创建关系,请单击一种关系工具,再单击要作为关系起点的元素,然后单击要作为关系终点的元素。

    不同类型的关系可以将不同类型的元素作为起点或终点。 例如,在 UML 类图上,“关联”关系不能以“注释”元素作为起点或终点。

    提示

    若要多次使用同一工具,请双击该工具。 完成上述操作后,单击“指针”工具。

在某些类型的关系图上,您还可以绘制简单的形状。 这些形状不是模型的一部分,但您可以使用它们突出显示关系图的某些部分,或将关系图划分为不同的区域。

从其他建模工具导入 UML 元素

可以从其他建模工具中将元素导出为 XML Metadata Interchange (XMI) 2.1 文件。 若要从 .xmi 文件导入 UML 类、序列和用例,请下载并安装 可视化和建模功能包。 若要将导入的元素添加到相应的关系图中,请从**“UML 模型资源管理器”**中拖动这些元素。

有关更多信息,请参见:

编辑形状和连接线

调整形状大小或为其填充颜色,或者重新路由连接线,都不会对基础模型产生任何影响。 不过,如果您在关系图上或在 UML 模型资源管理器中对形状进行重命名,那么相应元素就会在 UML 模型资源管理器以及其他任何显示该元素的关系图中被重命名。

提示

可以通过一种简单的方法制作新的工具箱项,在创建新工具箱项后,可以通过它们创建元素组,或具有您自己选择的属性的元素。 有关更多信息,请参见如何:定义自定义建模工具箱项

下图演示如何更改形状的大小或其名称。

调整模型元素

提示

内置命令不包括使形状完全对齐的命令。 但是,您可以通过复制如何:在关系图上显示模型中示例的代码轻松创建您自己的对齐方式命令。

下图演示如何调整连接线的路由或其标签的位置。

调整连接器

将连接线的一端移到另一个形状上

  1. 执行下列操作之一:

    • 按住**“Ctrl”**并移动该端。

    - 或 -

    • 右击连接线,再单击**“重新连接”**。
  2. 单击要移动的连接线端。

  3. 单击希望连接线移到的形状。

更改元素、关系或关系图的颜色或其他属性

  • 单击元素,在**“属性”**窗口中设置字段。

    如果看不到**“属性”窗口,请右击元素,再单击“属性”**。

放大和缩小建模图

  • 按住**“Ctrl”**键并滚动鼠标滚轮。

    - 或 -

  • 按住**“Ctrl + Shift”**,再单击鼠标左键或鼠标右键。

    - 或 -

  • 在**“体系结构设计器”工具栏上,单击加号 (+) 或减号 (-**),或选择缩放级别。

在关系图中进行搜索

“快速查找”功能将可以在关系图上查找项。 必须将**“查找范围:”设置为“当前文档”**。

在建模图中搜索文本

  1. 按**“Ctrl+F”**。

    - 或 -

    在**“编辑”菜单上,指向“查找和替换”,再单击“快速查找”**。

    提示

    “查找和替换”对话框中,必须将“查找范围”字段的设置保留为“当前文档”。 不支持其他选项。

  2. 键入要查找的文本,再单击**“查找下一个”**。

    提示

    如果要查找的文本位于折叠起来的形状内,则系统会突出显示该形状。 展开该形状,然后再次单击“查找下一个”

撤消对模型所做的更改

您可以使用**“编辑”菜单上的“撤消”“重做”**命令撤消和重做对模型和关系图所做的更改。

**每个建模项目都有一个更改堆栈。**您对模型和关系图所做的所有更改都会保留在此堆栈中。 此堆栈还包括焦点从一个关系图切换到另一个关系图的更改。 “撤消”命令会对此堆栈上的更改进行反转。

例如,假定您执行了以下一系列操作:对关系图 1 进行更改;将焦点更改到关系图 2 上;更改关系图 2。 撤消更改时,第一个撤消操作会反转最后一个更改;下一个撤消操作会将焦点移回关系图 1;第三个撤消操作会反转对关系图 1 所做的更改。

**关闭关系图会截断更改堆栈。**如果您关闭了关系图,则无法撤消在该关系图中所执行的更改,也无法撤消对模型或其任意关系图所做的早期更改。

**编辑属性时无法执行撤消操作。**在“属性”窗口或关系图上的标签中编辑属性时,只能撤消对该属性中所做的更改。 按 Enter 完成对该属性的更改,或按 Esc 取消更改。 然后,您将能够在模型和关系图中撤消更改。

**关闭关系图而不进行保存可能不会达到您所期望的效果。**如果您进行了一些更改,然后不保存而直接关闭关系图,那么所做的更改仍会保留在模型中。 如果您希望所做的操作不被保存,建议您关闭整个模型。

在关系图之间共享元素

您可以使模型元素的特定实例在关系图中多次出现。 此规则适用于类、接口、组件、用例和参与者。

如果您希望在不同的关系图中展示不同的关系组,这样做会非常有用。 例如,在一个关系图上,可以展示“客户”类和“地址”类之间的关联。 在另一个关系图上,可以再次展示“地址”类,以及其与“邮政区域”类之间的关联。

通过在任意关系图上选择任意模型元素视图,或在 UML 模型资源管理器中选择模型元素,可以更改模型元素的属性,如其名称。

每种关系图只能展示一些类型的模型元素。 例如,在组件图上无法展示用例。 因此,以下过程将只对某些模型元素和关系图的组合有效。

使用 UML 模型资源管理器添加模型元素的新视图

  1. 若要打开**“UML 模型资源管理器”,请在“体系结构”菜单上指向“窗口”,再单击“UML 模型资源管理器”**。

  2. 将模型元素从**“UML 模型资源管理器”**拖到同一项目中兼容的关系图上。

    随即出现提供模型元素视图的形状,所提供的视图可以是其他关系图或同一关系图上的视图之外的视图。

    提示

    将类或组件拖动到序列图上时,效果是不同的。 在这种情况下,系统会创建一条新的生命线,其类型是拖动的类或组件。 有关更多信息,请参见 UML 序列图:准则

使用“粘贴引用”添加模型元素的新视图

  1. 右击现有元素,再单击**“复制”**。

    • 可以同时复制多个元素。 按下 Ctrl 键并单击每个元素,右击其中一个元素,再单击**“复制”**。
  2. 右击兼容关系图的空白部分,再单击**“粘贴引用”**。

    随即出现同一元素的另一个视图。

    提示

    此操作不同于“粘贴”命令,后者将在模型中创建一个新元素。 有关更多信息,请参见复制元素和相关元素组。

提示

如果要将新视图添加到已通过某种关系连接在一起的两个模型元素的关系图视图中,那么此关系的视图也会显示在关系图上。 要删除此视图,只能将一个元素从该关系图中移除,或从模型中删除此关系。

复制元素和相关元素的组

您可以复制并粘贴模型元素,并且还可以连同模型元素之间的关系一起复制并粘贴元素组。

提示

“粘贴”“粘贴引用”命令具有不同的效果。 “粘贴”会创建新元素,元素属性与其所复制的元素的属性类似。 “粘贴引用”会创建相同元素的新视图。

复制元素及其关系

  1. 在包含要复制元素的关系图中,选择一个或多个元素。

    提示

    关系复制只能作为元素组复制的一部分完成。

  2. 在**“编辑”菜单上单击“复制”**。

  3. 如果要将元素复制到另一个关系图,请创建一个新关系图或打开现有的关系图。

  4. 在**“编辑”菜单上单击“粘贴”**。

    • 随即出现元素的副本以及将这些元素链接在一起的任何关系的副本。

    • 每个新元素都会有一个新的自动生成的名称。

  5. 调整新元素和关系的位置、名称以及其他属性。

提示

当您在同一解决方案中有两个模型时,不能将模型元素从一个模型复制到另一个模型。

删除模型元素或其视图

某些类型的元素(尤其是分类器)可以只从关系图中删除,而不从模型中删除。 分类器是在类图、组件图和用例图上显示的主要元素。 它们可以显示在多个关系图上。 对于这些类型的元素,有两个单独的命令:“从关系图中移除”“从模型中删除”

相比之下,从关系图中删除关系时,始终会将其从模型中删除。

提示

UML 关系图上的某些类型的元素具有标签。 当您通过在此类元素周围绘制矩形来选择它们时,可能会选到标签,而不会选到这些标签所属的元素。 无法删除通过此方式选择的元素子集。 若要删除这些元素的子集,请按住 Ctrl 键并单击每个元素。

从关系图中移除分类器的视图

  • 在关系图上右击元素,再单击**“从关系图中移除”**。

- 或 -

  • 在关系图上单击元素,再按 Delete 键。

    • 此元素的视图将消失。 不过,该元素仍保留在模型中,仍然可以在**“UML 模型资源管理器”**中找到它。 同一元素的任何其他视图也会保留。

    • 以此形状为终点的每个连接线将会从该关系图中移除,但其所代表的关系仍保留在该模型中。 您可以在**“UML 模型资源管理器”“关系”**部分中该关系所连接的每个元素下看到它。

从模型中删除元素

  • 在**“UML 模型资源管理器”或关系图中右击元素,再单击“从模型中删除”**。

    • 该元素从显示它的每个关系图中删除。

    • 终止于此元素的每个关系也会从该模型中删除。

从模型中删除关系

  • 在关系图或**“UML 模型资源管理器”中右击关系,再单击“从模型中删除”**。

    警告

    从关系图中删除关系后必定会将其从模型中删除。

    该关系从模型中删除,并从显示它的每个关系图中删除。

准备演示用的关系图

以下功能可帮助您突出显示关系图的特定部分、添加解释,或将关系图划分为多个兴趣范围。

  • 可以将关系图的任意部分复制到 Word、PowerPoint 或其他文档中。 方法是选择所需的形状和连接线,右击,再单击**“复制”**。

  • 可以更改任何形状或连接线的颜色。 方法是选择一个或多个形状,然后更改**“颜色”属性。 如果看不到“属性”**窗口,请按 F4

  • 在某些类型的关系图上,可以从工具箱的**“简单形状”**部分绘制线条、矩形和椭圆。 这些形状并不构成 UML 模型的一部分。

  • 要为区域添加标签,可以从工具箱中拖动注释,然后将其**“透明”**属性设置为 True。 与“简单形状”类似,注释也不构成 UML 模型的一部分,并且不会显示在 UML 模型资源管理器中。

  • 要向模型元素中添加备注和解释,可以创建注释,然后将其链接到元素。

  • 若要完全对齐关系图上的列或行形状,可以安装“对齐形状”命令。 此命令作为示例 UML 扩展提供:UML: Command to Align Shapes(UML:对齐形状命令)

将关系图导出为图像

有关更多信息,请参见如何:导出关系图的图像

请参见

概念

如何:创建 UML 建模项目和关系图

建立应用程序模型

开发软件设计模型