描述时序的好帮手——UML序列图

一、UML序列图的定义

UML是一种描述上下文不同对象之间,通信、操作、执行细节的序列图。它以时间为基础,并在纵轴上标注发送、接收信息的结点与内容,从而直观地显示对象交互的顺序。

UML序列图可用于表达:
① 实际生活中,不同对象在进行具体用例或操作时的交互;
② 逻辑分析上,用户与系统、系统与系统之间的通信行为。

在这里插入图片描述

二、UML序列图的相关概念

2.1 对象

参与交互的元素,如用户、系统、物体等。习惯上,将不同对象,按参与交互的先后顺序,从左至右列举在UML序列图的水平方向上。

2.2 时间

信息交互、操作发生的时间顺序。在垂直方向,按先后,从上往下表示。
注意: UML的时间只关注于交互的次序,而非持续时间。故垂直空间的长短,与通信的持续时间无关。

2.3 序列个体

1.参与者(Actor):
在UML主体之外,不属于对象,不直接参与系统内的信息交互,一般以开启或引起中断等行为,触发某个事件,进而影响序列的流程,如:人类用户、外部硬件;

在这里插入图片描述
2. 生命线(Lifeline):
由对象、参与者延伸出的一条时间线,代表个体在交互过程中的状态。不参与通讯时,呈挂起态(长虚线表示);

在这里插入图片描述
3. 激活(Activations):
生命线上的细长矩形,表示该时间段,生命线所属的个体正在通讯或执行某项操作;

在这里插入图片描述
4. 发送信息(Call Message):
发送端主动向另一对象传递信息的过程;

在这里插入图片描述
5. 返回信息(Return Message):
数据交互中,接收端对来自发送端的信息进行反馈的过程;

在这里插入图片描述
6. 自我信息(Self Message):
发送端向同对象、同激活段的其它元素传递信息的过程;

在这里插入图片描述
7. 递归信息(Recursive Message):
发送端向同对象、同激活段、同一元素传递信息的过程;
注意: 区别于自我信息,递归信息是自身发送,自身接收。例如:自言自语时,耳朵(接收端)能听到嘴巴(发送端)的声音。虽然二者同属一个人(同对象),同时运作(同激活),但因为是不同的器官(不同元素),所以这个过程属于自我信息;

在这里插入图片描述
8. 创造信息(Create Message):
交互中途,由成员对象向系统引进一个新的对象的过程;
注意: 新引进的对象,必须是交互开始时,不存在于系统中。

在这里插入图片描述
9. 销毁信息(Destroy Message):
交互中途或结束时,把某个成员对象,从系统中剔除的过程;

在这里插入图片描述
10. 持续信息(Duration Message):
表示信息的发送、接收时刻,存在一个持续、较大时间差的状态;

在这里插入图片描述
11. 注释(Note):
向序列图补充备注或说明,增强可读性。

在这里插入图片描述

2.4 序列片段

为了提高UML的准确性与可维护性,UML 2.0 引进序列片段的概念,用以表示复数个体组成的选择、分支、循环等逻辑结构。

序列片段,由片段运算符(Fragment Operator)片段主体(Fragment Box) 构成:

在这里插入图片描述
片段运算符(Fragment Operator),表示序列片段的运算类型,有:alt、opt、par、loop、region、neg、ref、 sd等;

运算符运算类型
alt相当于 switch 或 if-else if-else,执行条件为“真”的对应片段主体
opt相当于单个 if,只有条件为“真”时,才执行对应片段主体
loop相当于 while、loop、for,循环运行片段主体
par片段主体内的每个分支并行运行
region片段主体每次只能由一个线程调用、执行
neg片段主体所执行的交互无效
ref类似于子函数,定义另一序列图上的交互,使用者可以自定义参数和返回值
sdSequence Diagram,主体一般包围整个序列图,表示系统本身

片段主体(Fragment Box),表示片段内各语句的相互作用,按运算符的不同,内容可以是分支操作、循环体等。

序列片段示例(资金派发系统),如下:

在这里插入图片描述

2.5 序列图示例

序列图整体示例(酒店系统),如下:

在这里插入图片描述

三、UML序列图的其它示例

1.创建和删除对象

在这里插入图片描述
2.医院病床分配

在这里插入图片描述
3.预订座位

在这里插入图片描述
4.银行报价

在这里插入图片描述
5.下订单

在这里插入图片描述

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值