好用的免费画图插件,兼容vscode、IDEA等大牌IDE,使用编写代码的方式自动生成UML图形。官方中文文档:https://plantuml.com/zh/
以IDEA为例,直接在Plugin
-> Marketplace
中安装即可,vscode同理。
在文件目录中新建文件,可以看到PlantUML File
,新建此文件,选中你需要的UML图形。
puml需要将代码写在@startuml
与@enduml
之间才能生效。
@startuml
Client -> Server: 建立连接
' ↓这里为了可读性也可以反过来写成: <--
Server --> Client: 数据交互
Client --> Server: 数据交互
Server -> Client: 断开连接
@enduml
箭头样式:
No | 字段 | 表示 |
---|---|---|
1 | x | 丢失信息,箭头尾处为x |
2 | > | 实心箭头 |
3 | >> | 虚心箭头 |
4 | - | 实线 |
5 | – | 虚线 |
6 | <-> | 双向箭头 |
可以通过声明参与者的方式,为参与者更改属性、赋予别名as
(一旦赋予别名后续不可再使用原名)、设置权重order
(数量越小越靠前)。
@startuml
participant Client as c order 1
participant Server as s order 2
c -> s: 建立连接
s --> c: 数据交互
c --> s: 数据交互
s -> c: 断开连接
@enduml
可以使用的参与者属性:
No | 字段 | 表示 |
---|---|---|
1 | participant | 参与者 |
2 | actor | 角色 |
3 | control | 控制 |
4 | entity | 实体 |
5 | database | 数据库 |
6 | collections | 集合 |
7 | queue | 队列 |
8 | boundary | 边界 |
skinparam sequenceMessageAlign center
autonumber 1.1
,指定自增数字,默认增加最后一个数字,可指定自增数字位。
@startuml
'https://plantuml.com/sequence-diagram
participant Client as c order 1
participant Server as s order 2
autonumber 1.1
c -[#red]> s: 建立连接
autonumber inc A
s --> c: 数据交互
c --> s: 数据交互
autonumber inc A
s -> c: 断开连接
@enduml
note left:、
note right: 单行注释或者使用 note left ... endnote
多行注释。
== 重复 ==
或... 重复 ...
|||
设置间距,或指定间距||45||
activate c
初始化生命,deactivate c
结束生命线,可以嵌套使用。
生命线可以返回内容,使用return
返回,同时可以配合autoactivate
实现自动生命线声明与销毁。
@startuml
alice -> bob ++ : hello
bob -> bob ++ : self call
bob -> bib ++ #005500 : hello
bob -> george ** : create
return done
return rc
bob -> george !! : delete
return success
@enduml
也可以同时进行:
@startuml
alice -> bob ++ : hello1
bob -> charlie --++ : hello2
charlie --> alice -- : ok
@enduml
-->
代表普通箭头-[labels]->
代表带标签的箭头-left->
指定方向的箭头(down, up, left, right)(*)
开始/结束start
/stop
开始/结束