是什么
一种UML交互图, 通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。
使用场景
梳理业务流程
刚好最近接手一个业务模块,参考原有文档&与交接人的沟通&相关代码梳理出一份时序图,并上传至项目文档空间里
时序图角色
角色Actor
系统角色,可以是人或者其他系统和子系统
对象Object
以一个矩形表示
生命线LifeLine
时序图中每个对象和底部中心都有一条垂直的虚线,这就是对象的生命线(对象的时间线)。以一条垂直的虚线表。
消息message
同步消息, 一条实线和实心箭头表示
返回消息, 小于号和虚线表示
自关联消息
控制焦点Activation
控制焦点代表时序图中在对象时间线上某段时期执行的操作。以一个很窄的矩形表示。
画时序图的工具
推荐
draw.io
个人喜好
plantuml语法直接写,不需要画图,强迫症接受不了拖拽手动画图
语法
官方文档地址:https://plantuml.com/zh/sequence-diagram
示例:
@startuml
autonumber
actor 小B
participant 大数据
participant 业务定时任务
participant 业务
database DB
participant 对接系统
participant ELK
actor 开发
大数据 -> DB: 计算好业务数据推到中间表
activate 业务定时任务
业务定时任务 -> 业务定时任务: 计算处理相关字段的逻辑
业务定时任务 -> DB: 定时任务将@startuml
autonumber
actor 小B
participant 大数据
participant 业务定时任务
participant 业务
database DB
participant 对接系统
participant ELK
actor 开发
大数据 -> DB: 计算好业务数据推到中间表
activate 业务定时任务
业务定时任务 -> 业务定时任务: 计算处理相关字段的逻辑
业务定时任务 -> DB: 定时任务将数据同步到结果表
deactivate 业务定时任务
activate 业务
小B -> 业务: 修改业务数据并审核
业务 -> DB: 审核入库
deactivate 业务
activate 业务定时任务
业务定时任务 -> DB: 定时去库中拿已审核的数据
DB --> 业务定时任务: 拿到数据
业务定时任务 -> 对接系统: 定时推给对接系统生成促销活动
对接系统 --> 业务定时任务: 同步失败时
业务定时任务 -> ELK: 错误日志写到ELK里
deactivate 业务定时任务
activate ELK
ELK -> ELK: ELK将符合策略的错误日志过滤出来
ELK -> 开发: ELK通过邮件微信等方式通知开发
deactivate ELK
@enduml数据同步到结果表
deactivate 业务定时任务
小B -> 出清: 修改业务数据并审核
出清 -> 业务: 审核入库
activate 业务定时任务
业务定时任务 -> DB: 定时去库中拿已审核的数据
DB --> 业务定时任务: 拿到数据
业务定时任务 -> 对接系统: 定时推给对接系统生成促销活动
对接系统 --> 业务定时任务: 同步失败时
业务定时任务 -> ELK: 错误日志写到ELK里
deactivate 业务定时任务
activate ELK
ELK -> ELK: ELK将符合策略的错误日志过滤出来
ELK -> 开发: ELK通过邮件微信等方式通知开发
deactivate ELK
@enduml