Contents

通用技术-PlatUML

Contents

官网教程

简介

PlantUML 是一个开源项目,支持快速绘制uml图

时序图

传递消息

  • A -> B :xxx
  • A –> B :xxx

重要标志

  • @startuml,@enduml:标记图的起始和中止

声明参与者,格式为:actor xxx as yyy,xxx为显示名字,yyy为别名可以代替传递消息里面的A和B,可以用"将xxx扩起来以显示带特殊符号的名字

  • participant(参与方)
  • actor(角色)
  • boundary(边界)
  • control(控制)
  • entity(实体)
  • database(数据库)
  • collections(集合)
  • queue(队列)

文本对齐

  • skinparam responseMessageBelowArrow true :将文本放到箭头下面

修改箭头样式

  • 表示一条丢失的消息:末尾加 x
  • 让箭头只有上半部分或者下半部分:将 < 和 > 替换成\或者 /
  • 细箭头:将箭头标记写两次 (如 » 或 //)
  • 虚线箭头:用 – 替代 -
  • 箭头末尾加圈:->o
  • 双向箭头:<->

对消息序列编号

  • autonumber //start// //increment// "<b>[000]":对后面的语句进行编号,起始值为start,步长为increment,可以在双引号内指定编号的格式(0 表示数字;# 也表示数字,但默认为 0)
  • autonumber stop:停止编号
  • autonumber resume //increment// //format// "<font color=red><b>Message 0 ":继续自动编号

页面标题, 页眉, 页脚

  • header Page Header
  • footer Page %page% of %lastpage%
  • title Example Title

分割示意图

  • newpage xxxx

组合消息

  • alt/else
  • opt
  • loop
  • par
  • break
  • critical
  • group, 后面紧跟着消息内容

次级分组标签

  • group xxxx [yyyy] 中 yyyy为次级标签

给消息添加注释:放消息的下面,不空行

  • note left: this is a first note
  • note right: this is another note
  • 前两个配合end note,不空行,可以插入多行注释

其他的注释:节点 (participant) 的相对位置放置注释

  • note left of xx,yy
  • note right of xx,yy
  • note over xx,yy

在同一级对齐多个备注 [/]

1
2
note over Alice : Alice的初始状态
/ note over Bob : Bob的初始状态

引用

1
2
3
4
ref over Bob
  This can be on
  several lines
end ref

延迟

1
2
...
...5分钟后...

文本换行

  • skinparam maxMessageSize 50
  • \n手动换行

空间

  • ||45||
  • |||

生命线的激活与撤销,可以嵌套,直接放消息传递的下面会将传递的箭头指向生命线行为的位置

  • activate xxx #FFBBBB:可以添加颜色
  • deactivate xxx
  • destroy xxx :终结,图上会有叉
  • autoactivate,return:自动激活,这两者配合使用,相当于按消息开始激活,return时终止,此时可以给消息赋颜色
1
2
3
autoactivate on
bill -> bob #005500 : hello from thread 2
return done in thread 2

创建参与者

  • create 放在第一次接收到消息之前,以强调本次消息实际上是在创建新的对象
1
2
create Other
Alice -> Other : new

进入和发出消息:[和] 表示图示的左、右两侧

  • [->A
  • A ->]

缩短的进入信息与发出信息箭头:? 来显示缩短的箭头

  • ?->A
  • A ->?

隔断

  • == xxx ==
 |