UML:创建序列图
由
创建和维护
,2007 年 11 月 [修订号:V1-4]
本文适用于 NetBeans IDE 6.0 发行版
在本教程中,您将了解如何使用 IDE 的 UML 功能来创建 UML 序列图。序列图是针对系统中协作对象组之间的交互关系的一种可视表示。序列图由称为生命线的垂直线条组成。每个生命线元素表示一个给定对象的生命周期。生命线通过水平线条相连,这些水平线条表示从方案中的一个对象传输至下一个对象的消息。.
预计时间:30 分钟
目录
教程需求
在开始之前,确保对本节的系统要求有所了解。
前提条件
本教程假定您已完成关于使用 UMLTutorialProject 创建类图和协作图的教程。在使用本教程之前已完成 UML:创建类图 和 UML: 创建协作图。
要使用本教程,您必须在系统上安装 IDE,并且应该对 IDE 的基本部分比较熟悉。此外,您还应具备 Java 编程语言和 UML 方面的基本知识。有关 IDE 的基础知识,请参阅在线帮助中的 IDE Basics 主题。官方 UML 资源页面提供了许多有用的 UML 技巧和理论,地址为 http://www.uml.org/。
本教程所需要的软件
开始之前,需要在您的计算机中下载并安装以下软件:
回到顶部
使用序列图
序列图是一个模型,用于描述对象组如何随着时间的推移在某些行为方面进行协作。序列图捕获单个用例的行为,显示特定用例的时间框架中的对象以及这些对象之间传递的消息。序列图并不显示对象之间的关系。
序列图具有以下用途:
- 当不同的类中存在多个简短的方法时,描述控制流的整个序列
- 显示并发进程和激活
- 显示在协作图中难以描绘的时间序列
- 显示涉及类交互而与对象无关的一般形式
回到顶部
创建序列图
本教程将使用 UML 建模:创建类图 教程中创建的类图,和 UML 建模:创建协作图 教程中创建的协作图。本部分包含以下步骤:
本节包含以下主题:
回到顶部
生成序列图
- 启动 IDE(如果需要)。
- 在“项目”窗口中,右键单击 "UMLTutorialProject" >“模型”> "CollaborationDiagram" 节点,然后从弹出菜单中选择“通过选定的元素创建图”。
将打开新建向导,并显示“创建新图”页。
注意:您可以从弹出菜单列出的两类交互图(协作图和序列图)中选择一种类型。这些图着重描述对象之间的交互关系。
- 在“图类型”列表中,选择“序列图”。
- 在“图名称”字段中,键入 SequenceDiagram。
- 保留“名称空间”字段中的默认设置,然后单击“完成”。
IDE 将执行以下操作:
- 在“项目”窗口的 "CollaborationDiagram" 节点下创建 SequenceDiagram 节点
- 在图编辑器中显示新图(该图由来自协作图的生命线元素和消息构成)
- 打开建模组件面板,并显示在创建序列图过程中使用的图标
此时,您的图应如下所示:

回到顶部
细化生成的图
事务中的对象会被绘制成点状垂直线条,其名称显示在顶部。由于在创建序列图时无法预定义生命线元素的顺序,因此您需要在此时对它们进行重新排序。
- 选择标记为 User 的生命线,然后将其移至图的左侧。
- 对其余的生命线元素进行重新排序,使其均匀地分布于图编辑器中。请按以下顺序从左到右依放置生命线:
- User
- ATM
- Consortium
- Branch
现在,该图应当与下面的图类似。

回到顶部
添加自调用消息元素
自调用消息图元素表示为调用对象提供的消息。本图所表示的内部操作是在 ATM 对象中验证目前具有的现金数额。
- 您可能需要延长生命线元素,以便放置消息元素。
要延长生命线,请按照下列步骤操作:
- 选择 User 生命线元素。
- 单击底部中心的蓝色框,然后向下拖动该框以延长生命线。
- 重复执行步骤 a 和 b 以延长其余的生命线,直至序列图与下面的图类似。

- 从建模组件面板的“基本”类别中,选择 "Message To Self" 图标
。
- 单击延长的 ATM 生命线元素的下面部分。
IDE 将在此生命线上放置一个自调用消息元素。
- 在图编辑器中的任意位置单击鼠标右键以取消选择 "Message To Self" 图标。
- 在自调用消息元素中,单击位于下面的消息箭头。
属性窗口中将显示该消息的属性。
- 在属性窗口的“名称”字段中,键入 validateCashOnHandOperation,然后按回车键。
- 右键单击自调用消息元素中位于上面的消息箭头,然后从弹出菜单中选择“操作”。下图指示了放置光标的位置。请注意位于顶部箭头上方的双横线。

- 从弹出菜单中选择“操作”>“添加操作”。
此时将打开一个只有一行的编辑器,其中显示了以下信息:
可视性 returnType 名称(参数) {属性, ...}
- 按照如下所示定义操作:
public boolean getIsOperating()
您会看到该消息的上部进行了标记,如下图所示。

回到顶部
使用调用消息元素
由于 validateCashOnHand 操作是 ATM 类的一部分,因此需要在生命线上放置一个消息流来调用该操作。
- 从建模组件面板的“基本”类别中,选择 "Synchronous Message" 图标
。
- 单击紧靠
getCashOnHand() 消息下面的 User 生命线元素。
- 在您第一次单击位置右侧的 ATM 生命线元素上再次单击鼠标左键。图中将显示一个消息和一个返回消息,如下图所示。
新同步消息的图像。注意:果不希望图中显示返回消息,请在图编辑器的空白区域单击鼠标右键,然后从弹出菜单中取消选择“显示所有返回消息”。
- 在图编辑器中的任意位置单击鼠标右键以取消选择该图标。
- 右键单击刚创建的消息,然后从弹出菜单中选择“操作”>“添加操作”。
- 键入 validateCashOnHand,然后按回车键。
IDE 将在图中标记该消息,并将其作为操作添加到类图的 ATM 类中。在“项目”窗口中,展开 "ATM" 类节点,确认操作列表与下图所示的内容类似。

回到顶部
使用自动扩展消息选项
为了便于设计过程的顺利进行,IDE 提供了一个自动扩展消息的选项。如果将自动扩展设置为选定状态,则在图中放置新消息时,其占用的空间便会扩展为消息的宽度。
- 在位于生命线元素上方的灰色标题区域中,右键单击 User 和 ATM 元素名称之间的区域,以设置自动扩展选项。
将打开一个弹出菜单。
- 选择“将宽度设置为消息宽度”。
两个元素名称之间的跟踪栏中将显示一个指示器,如下图所示。

- 重复执行以上步骤,在 ATM 和 Consortium 元素以及 Consortium 和 Branch 元素之间设置消息宽度选项。返回页首
回到顶部
使用 "Create Message" 图标
通过使用 "Create Message" 图标,可以创建生命线元素或实例。
- 从建模组件面板的“基本”类别中,选择 "Create Message" 图标
。
- 单击 Branch 生命线的下面部分。
- 向 Branch 生命线的右侧绘制链接,然后再次单击鼠标左键。
图将放置一个消息和一条生命线,如下图所示。

- 按下 ESC 键取消选中图标。
- 选择新的生命线。
属性窗口将显示此生命线元素的属性。
- 在属性窗口的“表示类元”行中,单击向下方向键。
将显示一个下拉列表。
- 从下拉列表中选择 "CashierStation",然后按回车键。
- 在图编辑器中单击鼠标左键以查看此带有选项卡的生命线元素。
您的图应当与下面的图类似。

回到顶部
添加异步链接
异步消息元素表示不阻止调用对象的消息。此类消息能够创建新对象、创建新线程以及与现有线程进行通信。
- 从建模组件面板的“基本”类别中,选择 "Asynchronous Message" 图标
。
- 通过执行以下操作在 Branch 和 CashierStation 生命线之间绘制一条链接:单击 Branch 生命线元素,然后再单击 CashierStation 生命线元素。
- 按下 ESC 键取消选中图标。
- 右键单击新链接,然后从弹出菜单中选择“操作”> "public int getStationID"。
这将在此消息中添加操作,如下图所示。

回到顶部
使用组合片段元素
组合片段允许在序列图中直接表示逻辑组件,如备选项、选项、异常、并行合并、循环、求反、临界区域和谓语等。组合片段提供了一种方法,用于通过指定条件或子进程的应用区域,为任何生命线的任何部分定义特殊条件和子进程。
- 从建模组件面板的“控制”类别中,选择 "Combined Fragment" 图标
。
- 要绘制组合片段元素以封装消息 public void validateCashOnHand,请在表示该消息的蓝色虚线矩形的外部单击鼠标左键,然后单击并拖动矩形以围住该消息。
请切记:在单击鼠标左键时不要选定任何生命线元素。该组合片段应如下图所示。

- 按下 ESC 键取消选中图标。
- 右键单击组合片段元素中的 assert 选项卡,然后选择“交互运算符”> "loop"。
注意:loop 交互运算符会指定组合片段表示为一个循环。每次重复循环时,将计算触发表达式的结果。触发表达式可以包括特定次数的循环迭代。
- 右键单击组合片段的选项卡 "loop",然后从弹出菜单中选“交互操作数”>“编辑交互约束”。
IDE 将在目标组合片段元素中显示一个表达式框。
- 双击 expression 一词,使表达式框处于可编辑状态,如下图所示。

- 键入 x < 10,然后按回车键。
- 在图编辑器中单击鼠标左键。
将接受并在框中显示此表达式。此时,您的图应如下所示:

回到顶部
保存图
完成序列图后,您可以保存该图。
- 在图编辑器中,右键单击 "SequenceDiagram" 选项卡。
- 从弹出菜单中选择“保存文档”。
将关闭该菜单并保存图。
注意:退出 IDE 时,系统还会提示您是否要保存图。
回到顶部
结束语
在本教程中,您了解了如何使用现有的协作图来创建序列图。我们已经学习了如何执行以下任务:
- 通过现有的协作图生成序列图
- 使用建模组件面板中的图标向图中添加消息
- 向图中添加链接
- 添加组合片段元素
- 保存图
回到顶部
未来计划
回到顶部
>> 更多 UML 建模文档