使用PlantUML绘制的UML PlantUML语言参考指引 (Version 1.2021.2) PlantUML是一个开源项目,支持快速绘制: 时序图 用例图 类图 对象图 活动图 组件图 部署图 状态图 定时图 同时还支持以下非UML图: JSON Data YAML Data •Network diagram (nwdiag) 线框图形界面 架构图 规范和描述语言(SDL) • Ditaa diagram 甘特图 •MindMap diagram •Work Breakdown Structure diagram 以AsciMath或JLaTeXMath 符号的数学公式 • Entity Relationship diagram 通过简单直观的语言来定义这些示意图.
1时序图 1时序图 1.1简单示例 你可以用->来绘制参与者之间传递的消息,而不必显式地声明参与者.
你也可以使用-->绘制一个虚线箭头.
另外,你还能用<-和缓存:存放(key=tokenip value=token)token 用户->认证中心:登录操作 用户认证中心:下次访间头部携带token认证 认证中心<-缓存:key=tokenip获取token 其他服务用户:信息 Qendum1 用户 认证中心 领存 其他服务 登录操作 存放(key=tokenipxalu=token)token 认证成功返同token 下次访问头部携带token认证 key=tokenip印token 存在且校验成功则跳转到用户请求的其他服务 信息 用户 认证中心 存 其他服务 1.2声明参与者 关键字participant用于改变参与者的先后顺序.
你也可以使用下面这些关键字来声明参与者,这会改变参与者的外观: actor(角色) boundary(边界) control(控制) entity(实体) database(数据库) collections(集合) queue(队列) @startunl participant participant as Foo actor actor as Foo1 boundary boundary as Fo02 control control as Fo03 PlantU/ML语言参考指引(1.2021.2) 1 / 397
1.2声明参与者 1时序图 entity entity as Fo04 database database as Fo05 collections collections as Foo6 queue queue as Fo07 Foo Foo1 :To actor Foo -> Foo2:To boundary Foo ->Foo3:To control Foo ->Fo04 :To entity Foo -> Foo5 :To database Foo ->Foo6:To co1lections Foo -> Foo7 : To queue @endum1 participant actor boundary database collections control entity queue To actor. To boundary To control To entty To database To collectidns To queue participant database collections queue 关键字as用于重命名参与者 你还可以使用RGB值或者颜色名修改actor或参与者的背景颜色.
Qstartunl actor Bob #red actor和participant 只在外观上有区别 participant Alice participant “很长很长很长n的名字*asL #99FF99 也可以这样声明: participant Las“很长很长很长n的名字”#99FF99 '/ Alice->Bob:认证请求 Bob->Alice:认证响应 Bob->L:记录事务日志 Dendum1 PlanzUML语言参考指引(1.2021.2) 2 /397
1.3在参与者中使用非字母符号 1时序图 根长很长很长 Bob Alice 的名字 认证请求 认证响应 记录事务日惠 Alice 根长根长很长 的名字 您可以使用关键字order自定义顺序来打印参与者.
participant 最后order 30 @startunl participant 中间 order 20 participant 首个order 10 @endum1 首个 最后 首个 最后 1.3在参与者中使用非字母符号 你可以使用引号定义参与者,还可以用关键字as给参与者定义别名.
@startunl Alice -> "Bob()":Hello "Bob()* -> *Thie is verynlong” as Long You can also declare: “Bob()" > Long as "This is verynlong" Long -->"Bob()*:ok Qendum1 This is very Alice Bob() long Hello Alice Bob() This is very long 1.4给自己发消息 参与者可以给自己发信息, 消息文字可以用来换行.
Qstartunl Alice=>Alice: This is a signal to self.nIt also denonstratesnmultiline Intext Dendum1 PlantUML语言参考指引(1.2021.2) 3/397
1.5文本对齐 1时序图 Alice This is a signal to self. It also demonstrates mutiline text Alice 1.5 :文本对齐 1.5.1让响应信息显示在箭头下面 你可以使用skinparam responseMessageBelouArrov true 命令,让响应信息显示在箭头下面.
@startunl skinparam responseMessageBelouArrov true Bob -> Alice : hello Alice -> Bob : ok Dendum1 Bob Alice hello Alice TODO:TODO在skinparam创建本章节的链接.
1.6修改箭头样式 修改箭头样式的方式有以下几种: 表示一条丢失的消息:末尾加x 让箭头只有上半部分或者下半部分:将替换成或者/ 细箭头:将箭头标记写两次(如>>或//) 虚线箭头:用--替代- 箭头末尾加圈:->0 双向箭头: Qstartunl Bob ->x Alice Bob ->> A1ice Bob -> Alice Bob - Alice Bob 1- Alice Bob //-- A1ice Bob ->0 Alice Bob o-- Alice Bob Alice Bob o A1ice Bendum1 PlantUML语言参考指引(1.2021.2) 4 / 397