使用plantuml是一种比较酷的,画流程图和时序图可以很简单的实现。接下来介绍如何使用plantuml语法绘制顺序图/流程图/时序图等。这里只是简单做个入门说明。
PlantUML是一个可以让你快速编写UML图的组件。
官网说明如上,它可以实现很多种图的绘制,而且只要学会一些简单的语法,几分钟就能画出一个简单的效果图。
首先需要声明开始结束标记,在前后需要使用如下标签进行标记:
@startuml
// TODO
@enduml
中间的内容体现为参与主体,流程,描述等几个方面。
我们模拟一个简单的业务场景,用户访问->A系统->数据库->返回结果,分析这个业务场景中存在三个对象,分别是用户,A系统,数据库,于是我们可以使用关键词participant定义参与者对象(该英文单词即是参与者的意思)
@startuml
participant 用户
participant A系统
participant 数据库
@enduml
得到的效果如下:
假如我们想为对象取别名,则用as就可以取一个别名,方便我们后续的时序图制作,不影响图形展示:
@startuml
participant 用户 as user
participant A系统 as ASystem
participant 数据库 as database
@enduml
这个时候我们观察到使用participant渲染出来的图形是四边形,如果我们想要用其他图形来描述该对象,这个时候我们就需要引入其他关键词,例如actor(人形),database(数据库),这样我们的图形渲染效果就变得更加饱满了
// TODO 定义participant/actor/database完整的说明
@startuml
actor 用户 as user
participant A系统 as ASystem
database 数据库 as database
@enduml
接下来我们进行绘制具体的请求时序路径,在plantUML里可以用->来描述
@startuml
actor 用户 as user
participant A系统 as ASystem
database 数据库 as database
user -> ASystem
ASystem -> database
database -> ASystem
ASystem -> user
@enduml
请求链路已经能够体现出来了,但是我们还想加点描述,这个时候我们可以这样来描述:
@startuml
actor 用户 as user
participant A系统 as ASystem
database 数据库 as database
user -> ASystem : 用户访问A系统
ASystem -> database : 访问数据库
database -> ASystem : 数据库返回符合要求的数据
ASystem -> user : A系统返回数据
@enduml
进阶:
->表示实线,–>表示虚线
若要表示活动区块,可以使用activate(使活动)或者deactivate(使停止工作)关键词来标记
@startuml
actor 用户 as user
participant A系统 as ASystem
database 数据库 as database
user -> ASystem : 用户访问A系统
activate ASystem
ASystem -> database : 访问数据库
activate database
database -> ASystem : 数据库返回符合要求的数据
deactivate database
ASystem -> user : A系统返回数据
deactivate ASystem
@enduml
使用title关键词取标题
@startuml
title 时序图示例
// ...
@enduml
同样我们使用@startuml和@enduml进行标记,流程图从上往下的每一个对象都用英文冒号作为开始,并且用分号作为结束,例如:
@startuml
:开始;
:第一步;
:第二步;
@enduml
也可以使用start和stop作为流程图开始和结束的标记,使得更加明显一点:
@startuml
start
:第一步,煮开水;
:第二步,放面条;
stop
@enduml
如果我们需要使用条件判断语句,可以用if
@startuml
start
:第一步,煮开水;
:第二步,放面条;
if(面条熟了?) then(yes)
:出锅;
end
else(no)
:回炉;
end
endif
@enduml
参考资料: