概述 因为工作需要使用时序图表示详细设计文档。
同样使用plantUML。
《计算机是怎么跑起来的》中面象对象章节中,面象过程通常使用流程图进行步骤的表示,面象对象用时序图进行步骤的表示。我理解面象对象中单个方法不涉及其他对象时同样使用流程图表示。本文讲述时序图。
学习 时序图由角色、对象、生命线、激活、消息、组合片段构成。
角色、对象、生命线对应着参与者,生命线算是参与者带着的。
激活 对应着 激活。
消息 分为同步(实线+实心箭头)、异步(实线+开口箭头)和返回(虚线+箭头),对应着消息。
组合 分为条件分支(alt/opt)、循环(loop)或并行(par),对应着组合消息。
其实参与者 + 消息 + 组合 就可以足够表达了。
参与者 1 2 3 4 5 6 7 8 9 10 @startuml participant Participant actor Actor boundary Boundary control Control entity Entity database Database collections Collections queue Queue @enduml
其中actor、participant、database、queue是我常用的。
消息 1 2 3 4 5 6 7 8 9 @startuml actor 前端 participant 后端 database 数据库 前端 -> 后端: 请求 后端 -> 数据库: 查询 数据库 --> 后端: 返回 后端 --> 前端: 返回 @enduml
只有同步的请求与返回。异步的消息没有,找plantUML中消息的箭头进行选择。
组合 分支 alt : Alternative
opt : option
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 @startuml actor 前端 participant 服务A participant 服务B database 数据库 前端 -> 服务A: 请求 alt 成功情况 服务A -> 数据库: 查询 else 失败情况 服务A -> 服务B: 请求 服务B -> 数据库: 查询 else 另一种失败 服务B -> 服务A: 请求 end 后端 --> 前端: 返回 @enduml
循环 loop : Loop
1 2 3 4 5 6 7 8 @startuml actor 前端 participant 后端 database 数据库 loop 1000次 前端 -> 后端: 请求 end @enduml
并行 par : parallel
1 2 3 4 5 6 7 8 9 @startuml actor 前端 participant 后端 database 数据库 par 并行 前端 -> 后端: 请求1 前端 -> 后端: 请求2 end @enduml
更多 如果需要更多,还是要去官网查找。
https://plantuml.com/zh/sequence-diagram