UML时序图速查手册
📗

UML时序图速查手册

Created
May 24, 2024 11:24 AM
Tags
时序图(Sequence Diagram)是显示对象之间交互的图,这些对象是按时间顺序排列的。顺序图中显示的是参与交互的对象及其对象之间消息交互的顺序。
时序图中包括的建模元素主要有:角色 Actor、对象 Object、生命线 Lifeline、消息 Message、组合片段 Combined Fragment、控制焦点 Focus of control
 
 

🚮 Actor & Object

 
时序图的第一步是列出交互中出现的所有角色对象
  • Actor:通常指“人”,也可以是组织、机器、系统、子系统等等“抽象的人”,和用例图一样,用小人图表示
  • Object:就是与上述“人”对应的“物”了,包括所有产品、服务、设备等等抽象的物体
 
时序图的交互,通常由最左侧的 Actor 发出;在银行 APP 案例中,Actor 是客户;按出场顺序,把这些“人”和“物”从左至右列出来:
notion image
 
 

🧬 Lifeline

 
时序图的第二步很简单:给每个角色和对象加上一条生命线,表示它们在整个交互中存在的时间。
 
notion image
 
 

📧 Message

 
有了角色和生命线,时序图的基本框架就搭建起来了。我们可以让客户向 APP 发出第一个消息
 
notion image
 
如上,请求消息用实线箭头表示,响应消息用虚线箭头表示,可以标识它们的意义。
继续细分,请求消息的还能分为:
notion image
同步消息 Synchronous Message
消息的发送者把控制传递给消息的接收者,然后停止活动,等待消息的接收者放弃或者返回控制。用来表示同步的意义。
异步消息 Asynchronous Message
消息发送者通过消息把信号传递给消息的接收者,然后继续自己的活动,不等待接受者返回消息或者控制。异步消息的接收者和发送者是并发工作的。
 
如果你想,还能把消息归类为自关联消息(Self-Message)
 

🔀 Combined Fragment

 
如果登陆失败时,我们希望给予消息反馈,这时候就得用到组合片段了。
组合片段用来解决交互执行中的条件反馈。组合片段长得比较复杂,如下图所示:
 
notion image
 
组合片段有十几种,最常用的就是 Alt 片段 —— 抉择片段,通俗来说就是 if-else 的条件判断组合。如上图所示:
  • 左上角黄色区域会标明片段的类型
  • 片段中用虚线区分不同的条件子域
  • 再在子域注释条件判断
  • 最后在各自的条件子域上返回特定响应
 
📌
常见的组合片段:
Alternative fragment(denoted “alt”) 与 if…then…else对应
Option fragment (denoted “opt”) 与 Switch对应
Parallel fragment (denoted “par”) 表示同时发生
Loop fragment(denoted “loop”) 与 for 或者 Foreach对应
 
 

🏁 Focus of Control

 
控制焦点又称激活,是覆盖在生命线上一段细长的矩形,表示在这个时间段内,对象或角色正处于活动状态;这有点类似于 java 语言里的大括号{}——作用域。
 
notion image
 
 

🧸 更多示例

 
notion image
 

场景

完成课程创建功能,主要流程有:
  1. 请求添加课程页面,填写课程表单,点击【create】按钮
  1. 添加课程信息到数据库
  1. 向课程对象追加主题信息
  1. 为课程指派教师
  1. 完成课程创建功能

分析

  1. 序号1.0-1.3 完成页面的初始化
  1. 序号1.4-1.5 课程管理员填充课程表单
  1. 序号1.6-1.7 课程管理员点击【Create】按钮,并响应点击事件
  1. 序号1.8 Service层创建课程
  1. 序号1.9-1.10 添加课程到数据库,并返回课程编号CourseId
  1. 序号1.11-1.12 添加课程主题到数据库,并返回主题编号topicId
  1. 序号1.13 给课程指派教师
  1. 序号1.14 向界面抛创建课程成功与否的消息
 
 

📚 参考

 
 
绘制工具: