序列图

简介: 序列图

先看图:

微信截图_20221207140100.png


源代码:

sequenceDiagram
  小程序 ->> 小程序 : wx.login()获取code
  小程序 ->> + 服务器 : wx.request()发送code
  服务器 ->> + 微信服务器 : code+appid+secret
  微信服务器 -->> - 服务器 : openid
  服务器 ->> 服务器 : 根据openid确定用户并生成token
  服务器 -->> - 小程序 : token点击复制复制失败已复制


时序图是一种表现交互过程的图示,主要展示各个参与者之间是如何交互的,以及交互的顺序是怎样的。它的主要构成元素有:参与者、


参与者

传统时序图概念中参与者有角色类对象之分,但这里我们不做此区分,用参与者表示一切参与交互的事物,可以是人、类对象、系统等形式。中间竖直的线段从上至下表示时间的流逝。


语法:

sequenceDiagram
  participant <参与者名称>点击复制复制失败已复制


示例:

sequenceDiagram
  participant 客户端
  participant 服务器点击复制复制失败已复制

微信截图_20221207140109.png


提示

participant <参与者名称> 这句可以省略,省略后参与者横向排列的次序,由消息语句中其出现的次序决定。


消息

交互时一方对另一方的操作(比如接口调用)或传递出的信息。用单向箭头来表示——实线代表主动发出消息;虚线代表响应;末尾带 X 代表异步消息,无需等待回应。


语法:

sequenceDiagram
  <参与者> <箭头> <参与者> : <描述文本>点击复制复制失败已复制


其中,箭头的写法有如下几种格式:

写法 显示 含义
->> 实线箭头 主动发出消息
-->> 虚线箭头 响应
-x 末尾带 X 的实线箭头 异步消息


示例:

sequenceDiagram
  participant 老板A
  participant 员工A
  老板A ->> 员工A : “在这里我们都是兄弟!”
  老板A -x 员工A : 画个饼
  员工A -->> 老板A : 鼓掌点击复制复制失败已复制


微信截图_20221207140119.png


激活框

从消息接收方的时间线上标记一小段时间,表示对消息进行处理的时间间隔。

sequenceDiagram
  老板B ->> + 员工B : “你们要669!”
  员工B -->> - 老板B : 鼓掌
  老板B ->> + 员工B : “悔创本司!”
  员工B -->> - 老板B : 鼓掌点击复制复制失败已复制


微信截图_20221207140129.png


Tip

体会上面的+和-的使用方法和效果,它们相当于激活框的开关。


注解

sequenceDiagram
  Note left of 老板A : 对脸不感兴趣
  Note right of 老板B : 对钱不感兴趣
  Note over 老板A,老板B : 对996感兴趣点击复制复制失败已复制

微信截图_20221207140202.png


循环(loop)

在条件满足时,重复发出消息序列。相当于编程语言中的 while 语句。

sequenceDiagram
  网友 ->> + X宝 : 网购钟意的商品
  X宝 -->> - 网友 : 下单成功
  loop 一天七次
    网友 ->> + X宝 : 查看配送进度
    X宝 -->> - 网友 : 配送中
  end点击复制复制失败已复制

微信截图_20221207140221.png


选择(alt)

在多个条件中作出判断,每个条件将对应不同的消息序列。相当于 ifelse if 语句。

sequenceDiagram    
  土豪 ->> 取款机 : 查询余额
  取款机 -->> 土豪 : 余额
  alt 余额 > 5000
    土豪 ->> 取款机 : 取上限值 5000 块
  else 5000 < 余额 < 100
    土豪 ->> 取款机 : 有多少取多少
  else 余额 < 100
    土豪 ->> 取款机 : 退卡
  end
  取款机 -->> 土豪 : 退卡点击复制复制失败已复制

微信截图_20221207140241.png


可选(opt)

在某条件满足时执行消息序列,否则不执行。相当于单个分支的 if 语句。

sequenceDiagram
  老板C ->> 员工C : 开始实行996
  opt 永不可能
    员工C -->> 老板C : 拒绝
  end点击复制复制失败已复制

微信截图_20221207140254.png


并行(Par)

将消息序列分成多个片段,这些片段并行执行。

sequenceDiagram
  老板C ->> 员工C : 开始实行996
  par 并行
    员工C ->> 员工C : 刷微博
  and
    员工C ->> 员工C : 工作
  and
    员工C ->> 员工C : 刷朋友圈
  end
  员工C -->> 老板C : 9点下班点击复制复制失败已复制

微信截图_20221207140326.png

目录
相关文章
|
测试技术 uml
顺序图详解
顺序图详解
156 0
|
7月前
|
程序员 uml
UML图 | 时序图(顺序、序列图)绘制
UML图 | 时序图(顺序、序列图)绘制
595 0
UML——顺序图、协作图
描述按照时间的先后顺序对象之间交互动作过程
|
测试技术 uml
UML——交互图( 时序图和协作图)
UML——交互图( 时序图和协作图)
|
算法 测试技术 数据库
UML——行为图(活动图、状态图)
描述了一个具体对象的可能状态以及它们之间的转换。展现一个对象拥有的状态,还可以说明时间(如消息的接收、错误、条件变更等)如何随着时间的推移来影响这些状态。
【比较】交互图——顺序图和协作图
前言: 所谓交互图,是描述对象之间的关系以及对象之间的信息传递的图,可分为顺序图和协作图。
272 0
【比较】交互图——顺序图和协作图
|
测试技术 uml
【比较】活动图和状态图
前言: 活动图和状态图都是UML图中的动态图,描述了对象在系统中从一个阶段到另一个阶段的活动。这两张图都比较简单,就不再赘述了,简单概括如下:
206 0
【比较】活动图和状态图
【UML图】交互图、顺序图、协作图
【UML图】交互图、顺序图、协作图
142 0
|
uml
UML 交互图(序列图 协同图)
UML 交互图(序列图 协同图)
74 0
|
uml
UML行为图(状态图 活动图)
UML行为图(状态图 活动图)
103 0