目录
一、简介
Github地址:https://github.com/plantuml/plantuml
官方网站:Sequence Diagram syntax and features
在线使用:PlantUMLServer
PlantUML中文文档:PlantUML_Language_Reference_Guide_zh.pdf
链接: https://pan.baidu.com/s/1QDCnQUheO0pIrbtUzmY97A 提取码: n2gd
PlantUML 是一个开源项目,支持快速绘制:
• 时序图• 用例图 • 类图 • 对象图 • 活动图 • 组件图 • 部署图 • 状态图 • 定时图
同时还支持以下非 UML 图:
• JSON Data
• YAML Data
• Network diagram (nwdiag) • 线框图形界面
• 架构图
• 规范和描述语言 (SDL)
• Ditaa diagram
• 甘特图
• MindMap diagram
• Work Breakdown Structure diagram
• 以 AsciiMath 或 JLaTeXMath 符号的数学公式 • Entity Relationship diagram
通过简单直观的语言来定义这些示意图。
二、安装
一般的IDE都支持PlantUML插件,比如:PyCharm和VScode,下面以PyCharm安装为例说明:
1.1 安装插件到PyCharm
假设已经安装好PyCharm,插件地址:PlantUML integration - IntelliJ IDEs Plugin | Marketplace
进入插件页面后,选择当前编译器版本;
点击后网页右下角出现提示:
这时回到 Pycharm 内,会出现插件安装弹框,点击 OK
2.2 验证
2.2.1 插件检查是否安装
预期在插件的安装栏内就会出现该插件
2.2.2 新建PlantUML文件
Ps:最好重启下PyCharm,新建PlatUML文件测试,默认文件名以.puml结尾
(1)简单的一些用法
demo1.puml,代码如下:
@startuml
'https://plantuml.com/sequence-diagram
autonumber
用户 -> 认证中心: 登录操作
认证中心 -> 缓存: 存放(key=token+ip,value=token)token
用户 <- 认证中心: 认证成功返回token
用户 -> 认证中心: 下次访问头部携带token认证
认证中心 <- 缓存: key=token+ip获取token
其它服务 <- 认证中心: 存在且校验成功则跳转到用户请求的其他服务
其他服务 -> 用户: 信息
@enduml
效果如下图:
(2)高级的一些用法,如声明参与者
使用 participant 关键字来声明一个参与者可以使你对参与者做出更多控制。 关键字 participant 用于改变参与者的先后顺序。
你也可以使用下面这些关键字来声明参与者,这会改变参与者的外观:
• actor(角色)
• boundary(边界)
• control(控制)
• entity(实体)
• database(数据库)
• collections(集合)
• queue(队列)
demo2.puml,代码如下:
@startuml
participant participant as Foo
actor actor as Foo1
boundary boundary as Foo2
control control as Foo3
entity entity as Foo4
database database as Foo5
collections collections as Foo6
queue queue as Foo7
Foo -> Foo1 : To actor
Foo -> Foo2 : To boundary
Foo -> Foo3 : To control
Foo -> Foo4 : To entity
Foo -> Foo5 : To database
Foo -> Foo6 : To collections
Foo -> Foo7 : To queue
@enduml
效果如下图:
(3)其它风格
demo3.puml,代码如下:
@startuml
skinparam backgroundColor #EEEBDC
'skinparam handwritten true
skinparam sequence {
ArrowColor DeepSkyBlue
ActorBorderColor DeepSkyBlue
LifeLineBorderColor blue
LifeLineBackgroundColor #A9DCDF
ParticipantBorderColor DeepSkyBlue
ParticipantBackgroundColor DodgerBlue
ParticipantFontName Impact
ParticipantFontSize 17
ParticipantFontColor #A9DCDF
ActorBackgroundColor aqua
ActorFontColor DeepSkyBlue
ActorFontSize 17
ActorFontName Aapex
}
actor 用户 as people
participant 群或服务号 as group
participant 接入层 as group_1
participant Test配置中心 as test
participant 测试能力或平台 as platform
people -> group: 执行测试任务启动命令
group -> group_1: 机器人接收请求
test <- group_1: 解析数据及查询任务配置
group_1 <-- test: 任务配置信息
group_1 -> platform: 调用测试服务执行测试
group_1 <-- platform: 处理结果消息
group_1 --> group: 自定义通知格式渲染
@enduml
效果如下图: