[转]UML之顺序图

原文链接:UML之时序图——博客园
原文链接:UML-顺序图与通信图——CSDN
原文链接:UML 2 顺序图——SPARX

概念#

顺序图是按时间顺序显示对象交互的图。它显示了参与交互的对象和所交换信息的先后顺序,用来表示用例中的行为,并将这些行为建模成信息交换。

  • 顺序图是一种交互图,强调消息的时间顺序,亦称时序图
  • 顺序图主要包括四个元素:对象、生命线、激活和消息
  • 在UML中,顺序图将交互关系表示为一张二维图。
  • 纵向是代表时间维度,时间向下延伸,按时间依次列出各个对象所发出和接收的消息。
  • 水平方向是代表对象的维度,排列着参与交互的各个独立的对象。

顺序图的三种主要作用:

  • 细化用例的表达。使用顺序图的一大用途,就是讲用例所描述的需求与功能转化为更加正式、层次更加分明的细化表达。
  • 有效地描述类职责的分配方式。我们可以根据顺序图中各对象之间的交互关系和发送的消息来进一步明确对象所属类的职责。
  • 丰富系统的使用语境的逻辑表达。系统的使用语境即为系统可能的使用方式和使用环境。

组成元素#

顺序图的组成元素:对象、生命线、激活、消息。

对象(Object)#

顺序图中的对象与对象图中的概念一样,都是类的实例。顺序图中的对象可以是系统的参与者或者任何有效的系统对象

对象的创建由头符号来表示,即在对象创建点的生命线顶部使用显示对象名和类名的矩形框来标记

在位置上,一个被放置于顺序图顶端的对象,意味着在这个交互的开始之前,我们已经拥有这样一个对象了。如果一个对象出现在其它位置上(不在顶端),则说明这个对象是在交互执行到某些步骤的时候被创建出来的。被创建出来的对象可以在接下来的时间里被其它对象的消息所激活,也可以以同样的方式被销毁。

生命线( Life-lin e)#

生命线代表了一次交互中的一个参与对象在一段时间内存在。具体地说,在生命线所代表的时间内,对象一直是可以被访问的——可以随时发送消息给它

在顺序图中,生命线位于每个对象的底部中心位置,显示为一条垂直的虚线,与时间轴平行,带有一个显示对象的头符号

对于在交互过程中被创建的对象,其生命线从接收到新建对象的消息时开始。对于在交互过程中被销毁的对象,其生命线在接收到销毁对象的消息时或在自身最后的返回消息之后结束,同时用一个“X”标记表明生命线的结束

时间和期限约束#

消息默认显示为水平线。因为生命线显示为沿屏幕向下的时间通道,所以当给实时系统建模,或是有时间约束的业务过程建模,考虑执行动作所需时间长度是很重要的。因此可以给消息设置一个期限约束,这样的消息显示为下斜线

部分分解#

一个对象可以引出多条生命线,使得对象内部和对象之间的消息显示在同一图上。

状态常量 / 延续#

状态常量是生命线的约束,运行时始终为"真"。显示为两侧半圆的矩形,如下图:

激活(Focus of control)#

激活,又称为控制焦点,表示一个对象执行一个动作所经历的时间段,既可以是直接执行,也可以是安排下级过程执行。同时,激活也可以表示对应对象在这段时间内不是空闲的,它正在完成某个任务,或正被占用。

激活在UML中用一个细长的矩形表示,显示在生命线上。矩形的顶部表示对象所执行动作的开始,底部表示动作的结束

消息(Message)#

面向对象方法中,消息是对象间交互信息的主要方式。 结构化程序设计中,模块间传递信息的方式主要是过程(或函数)调用。 对象A向对象B发送消息,可以简单地理解为对象A调用对象B的一个操作(operation)

顺序图中,尽力保持消息的顺序是从左到右排列的。 一个顺序图的消息流开始于左上方,消息2的位置比消息1低,这意味着消息2的顺序比消息1要迟。因为西方的阅读习惯是从左到右。 顺序图中消息编号可显示,也可不显示。协作图中必须显示

UML三种消息: 调用(Procedure Call) 异步(Asynchronous) 返回(Return)

调用: 发送者把消息发送后,等待直到接收者返回控制,可以表示同步; 实心箭头符号

异步: 消息发送后,发送者继续操作,不等待,常用于并发; 线箭头符号

返回:表示消息的返回。

  • 消息上方放置返回值。
  • 同步消息的返回可以画出(如果想明确表达返回值),也可以不画出,直接隐含。
  • 异步消息可以有返回,也可以没有。(可以响应异步消息,也可以不响应该异步消息。)
  • 如果顺序图上显示有编号,则返回消息的编号和当初发送消息的编号完全一样。
  • 虚线箭头表示,和依赖关系不要混淆

Rose扩充: 阻止(Balking) 超时(Time-out)
阻止消息:当消息的发送者传递消息给接收者,如果接收者无法立即接收,则发送者放弃该消息。
超时消息:若发送消息后接收者无法在指定时间内接收,则发送者放弃该消息。

#

门是连接片段内消息和片段外消息的连接点。 在EA中,门显示为片段框架上的小正方形。作用为顺序图与页面外的连接器。 用来表示进来的消息源,或者出去消息的终点。下面两个图显示它们在实践中的使用。注意:" top level diagram"中的门用消息箭头指向参考片段,在这里没有必要把它画成方块。

内部通信#

内部消息表现为一个操作的递归调用,或一个方法调用属于同一个对象的其他方法。显示为生命线上执行事件的嵌套控制焦点。

迷路消息和拾取消息#

迷路消息是那些发送了却没有到达指定接收者,或者到达的接收者不再当前图中。拾取消息是收到来自那些未知的发送者,或者来自没有显示在当前图的发送者的消息。它们都表明是去往或来自一个终点元素

顺序图中的结构化控制#

在UML 2中,顺序图提供了“片段” 机制,可以通过顺序图来表达更加复杂的动作序列。
可选片段:关键字为opt,表示一种单条件分支,为 "switch"(开关) 结构建模。
条件片段:关键字为alt,表示一种多条件分支,为 if…then…else 结构建模。
并行片段:关键字为par,表示片段内有多个并行子片段的片段,为并发处理建模。
循环片段:关键字为loop,表示一个循环,包含一系列被重复的消息。
交互片段:关键字为ref,表示对一段交互的引用。
弱顺序片段: 关键字为seq, 包含了一组消息,这组消息必须在后继片段开始之前被处理。但不会把片段内消息的先后顺序强加到不共享同一条生命线的消息上。
严格顺序片段: 关键字为strict, 包含了一系列需要按照给定顺序处理的消息。
非片段: 关键字为neg, 包含了一系列不可用的消息。
断言片段: 关键字为assert,标明任何没有显示为声明操作数的顺序都是无效的。

顺序图建模技术#

按时间顺序对控制流建模:

  • 设置交互的语境。交互语境即交互所在的环境,包括交互属于那个系统、子系统,包含哪些类和对象,对应于哪个用例或协作的脚本等。
  • 设置交互的场景,即识别对象在交互中扮演的角色,根据对象的重要性排列对象的顺序。
  • 为对象设置生命线。
  • 按时间顺序排列消息。
  • 设置激活期。
  • 附加时间和空间约束。
  • 设置前置与后置条件。

建立顺序图的步骤:

  • 确定需要建模的工作流
  • 从左到右布置对象
  • 添加消息和条件以便创建工作流

案例(1)就餐#

需求描述如下:客人到餐厅就餐,服务员提供菜单,客人点菜后把菜单交给服务员。服务员向客人确定菜单后,将菜单提交给大堂经理。大堂经理把菜单提交给大厨,大厨完成菜品后传递给大堂经理,大堂经理安排服务员传菜。有的客人可能需要酒水,有的客人不需要酒水。客人结束用餐后,服务员提供账单,客人结账。

  • 确认对象

  • 确定出现顺序

  • 确定消息

案例(2)ATM机取款#

需求描述如下:用户通过ATM机,插入银行卡。系统提示输入密码,用户输入密码。系统检查密码是否正确,密码正确用户选择取款。系统提示输入取款金额。用户输入金额,系统判断其合法性。在获取用户输入金额后,系统开始事物处理,减少账户金额,输出相应现金。

案例(3)成绩查询#

需求描述如下:老师通过学号在系统查询成绩,有存在、不存在两种情况。存在显示成绩,不存在显示查无此人。

补充#

顺序图的变体——时间图#

时间图是UML 2中新增加的图,相当于另一种显示顺序图的方法。
时间图与顺序图的主要不同之处有:

  • 时间轴与对象轴交换了位置。在时间图中,纵向表示不同对象,横向表示时间的延伸
  • 不同对象的生命线在独立的矩形框中显示,矩形框纵向堆砌成整个图。
  • 对象可以有不同的状态。每个对象的状态在其生命线的最左侧纵向排列,生命线通过上下起伏来表示对象当前所处的状态
  • 可以显示一个时间标尺。时间标尺上有时间刻度,用来表示时间间隔。
  • 不同对象生命线上的时间是同步的
posted @   二次元攻城狮  阅读(2862)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
  1. 1 烟花易冷 小柔Channel
  2. 2 红颜如霜 江壹纯
  3. 3 不谓侠 小桃Channel
  4. 4 小小恋歌 新坦结衣
  5. 5 神预言 袁娅维TIARAY
神预言 - 袁娅维TIARAY
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.
点击右上角即可分享
微信分享提示
主题色彩