UML 建模:创建协作图
最新更新日期:2007 年 3 月 29 日
本教程适用于 NetBeans™ 5.5 集成开发环境 (Integrated Development Environment, IDE) 以及 NetBeans 5.5 UML 建模模块。
在本教程中,您将了解如何使用 IDE 的 UML 建模功能来创建 UML 协作图。协作图是一种交互图,用于着重描述发送和接收消息的对象的结构组织,并显示各个实例之间的组织交互关系以及实例彼此之间的链接。
有关使用 NetBeans IDE 的更多信息,请参见 NetBeans Web 站点中的文档和支持页。
先决条件
本教程要求您首先完成其配套教程 UML 建模:创建类图,因为本教程需要使用在该配套教程中完成的类图。
要使用本教程,您必须先在系统中安装 IDE,并且应该熟悉 IDE 的基本组成部分。同时,还应该对 Java 编程语言和 UML 建模有基本的了解。要了解 IDE 的基础知识,请参见联机帮助中的“IDE 基础知识”主题。http://www.uml.org/ 是 UML 资源的官方网站,为您了解 UML 建模技术和理论提供了很好的资源。
系统要求
本教程假定您的系统满足 NetBeans 5.5 UML 建模模块发行说明中指定的要求。
本教程所需的软件
在开始之前,您需要在计算机中安装以下软件:
- NetBeans IDE 5.5(下载)
- NetBeans 5.5 UML 建模模块(下载信息)
目录
返回页首
使用协作图
协作图用于显示组件及其交互关系的空间组织结构,它并不侧重交互的顺序。协作图显示了交互中各个对象之间的组织交互关系以及对象彼此之间的链接。与序列图不同,协作图显示的是对象之间的关系。另外,协作图并没有将时间作为一个单独的维度,而是使用序列号来确定消息及并发线程的顺序。协作图是一个介于符号图与序列图之间的交叉产物,它用带有编号的箭头来描述特定的方案,这些箭头显示了整个方案过程中消息的移动情况。
协作图具有以下用途:
- 通过描绘对象之间消息的移动情况来反映具体的方案
- 显示对象及其交互关系的空间组织结构,而非交互的顺序
返回页首
创建协作图
本教程将使用 UML 建模:创建类图教程中创建的类图。在继续执行下列步骤之前,请首先完成类图教程。
本部分包含以下步骤:
返回页首
生成协作图
- 启动 IDE(如果需要)。
- 在“项目”窗口中,展开 "UMLTutorialProject" >“模型”节点。
- 选择以下类节点:
注意:通过按住 Ctrl 键的同时单击每个所需的类节点,可以选择多个类。
- 右键单击最后选定的类,然后从弹出式菜单中选择“通过选定的元素创建图”。
将打开新建向导,并显示“创建新图”页。
- 在“图类型”列表中,选择“协作图”。
- 在“图名称”字段中,键入 CollaborationDiagram。
- 保留“名称空间”字段中的缺省设置,然后单击“完成”。
IDE 将执行以下操作:
- 在“项目”窗口的“模型”节点下创建 CollaborationDiagram 节点
- 在图编辑器中显示新图(该图由三个表示为生命线元素的类构成)
- 打开建模组件面板
返回页首
细化生成的图
- 单击并拖动元素以重新排列图,使其与下面的图类似。

- 在“项目”窗口中,选择标记为 User 的类节点。
- 将选定的类拖放到图编辑器中,使其位于 ATM 生命线元素的上方,如下图所示。

返回页首
添加连接器链接
协作图中的每个元素均可通过连接器链接与其他元素建立连接。您可以标识这些链接,并在其中添加消息流。
- 从建模组件面板的“基本”类别中,选择 "Connector" 图标
。
- 单击标记为 User 的生命线元素,然后单击 ATM。
将在两个元素之间绘制一条连接器链接。
- 使用相同的步骤绘制以下链接:
- 从 ATM 至 Consortium 的链接
- 从 Consortium 至 Branch 的链接
- 从 ATM 至 Branch 的链接
注意:在创建从 ATM 至 Branch 的链接时,请从 ATM 生命线的右侧水平绘制一条链接,并在到达 Branch 生命线的正上方时单击鼠标左键。这样便会在链接线上出现一个顶点,然后在顶点到 Branch 生命线之间垂直绘制一条链接。
此时,该图应当与下面的图类似。

- 在图编辑器中的任意位置单击鼠标右键以取消选择 "Connector" 图标。
返回页首
显示消息编号
协作图通过使用带有编号的消息来表示特定的方案。缺省情况下,UML 建模设置将隐藏这些编号。请使用以下步骤来显示消息编号:
- 在 CollaborationDiagram 图编辑器的背景中单击鼠标右键。
- 从弹出式菜单中选择“显示消息号”。
这样当您在插入操作流(将在下一部分介绍)时,便会显示消息编号。
注意:整数表示调用消息的顺序,而这些消息位于下一更高级别的过程调用中。利用整数编号进行区分的消息,依照顺序与其嵌套级别相关联。例如,在激活 3.1 中,消息 3.1.4 排在消息 3.1.3 之后。
返回页首
显示操作流
操作流将在图中显示为与链接平行的带标记箭头。此链接用于向目标元素传输消息或实现这种传输。
- 在图编辑器中,选择 User 和 ATM 之间的连接器链接。
- 右键单击距 ATM 生命线最近的连接器链接部分。
- 从弹出式菜单中选择“操作”> "public float getCashOnHand"。
将在图中放置一个编号为 1 的操作流。
注意:单击“适应窗口大小”按钮
以在图编辑器中查看整个图。
- 选择 ATM 和 Consortium 之间的连接器链接,然后右键单击靠近 Consortium 元素的链接部分。
- 从弹出式菜单中选择“操作”> "public void validateAccountInfo"。
IDE 会在此链接上放置选定的操作,并将其编号为 1.1。
注意:您可以根据需要选择并移动操作流。
返回页首
向类中添加操作
在此过程中,您将向连接器链接添加一个新的操作。该操作同时会被添加到 ClassDiagram 图的 Branch 类以及 Java 源代码中。
- 右键单击 Consortium 和 Branch 之间靠近 Branch 生命线元素的连接器链接。
- 从弹出式菜单中选择“操作”>“添加操作”。
图中将出现一个标签,并突出显示 Unnamed 一词。
- 键入 verifyCardWithBank。
- 使用向右方向键将光标移至操作参数字段。
- 键入 int stringCardStrip 作为参数,然后按 Enter 键。
该链接将被标记为 1.1.1:public void verifyCardWithBank(int stringCardSTrip),而且此操作会出现在 ClassDiagram 图的 Branch 类中。
- 在 ATM 和 Branch 之间的连接器链接上,右键单击靠近 Branch 生命线的链接部分。
- 从弹出式菜单中选择“操作”> "public char getConnected"。
该链接被标记为 1.2: public char getConnected()。
完成的协作图应当与下面的图类似。

返回页首
保存图
完成协作图后,您可以保存该图。
- 在图编辑器中,右键单击 "CollaborationDiagram" 标签。
- 从弹出式菜单中选择“保存文档”。
将关闭该菜单并保存图。
注意:退出 IDE 时,系统会提示您是否要保存项目。
返回页首
小结
在本教程中,您了解了如何使用现有的类图来创建协作图。具体执行的任务如下所示:
- 生成协作图
- 向图中添加连接器链接
- 在图上显示消息编号
- 显示并标记操作流
- 向图中的现有链接添加操作
- 保存图
您可以利用此协作图直接在包内创建序列图。要了解如何执行此操作,请参见教程 UML 建模:创建序列图。
返回页首