PlantUML使用入门

使用plantuml是一种比较酷的,画流程图和时序图可以很简单的实现。接下来介绍如何使用plantuml语法绘制顺序图/流程图/时序图等。这里只是简单做个入门说明。

什么是PlantUML

PlantUML是一个可以让你快速编写UML图的组件。

image-20221021094122865

官网说明如上,它可以实现很多种图的绘制,而且只要学会一些简单的语法,几分钟就能画出一个简单的效果图。

如何使用

  • 顺序图

首先需要声明开始结束标记,在前后需要使用如下标签进行标记:

@startuml
// TODO

@enduml

中间的内容体现为参与主体,流程,描述等几个方面。

我们模拟一个简单的业务场景,用户访问->A系统->数据库->返回结果,分析这个业务场景中存在三个对象,分别是用户,A系统,数据库,于是我们可以使用关键词participant定义参与者对象(该英文单词即是参与者的意思)

@startuml
participant 用户
participant A系统
participant 数据库

@enduml

得到的效果如下:

image-20221014110832476

假如我们想为对象取别名,则用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

image-20221014111312299

接下来我们进行绘制具体的请求时序路径,在plantUML里可以用->来描述

@startuml
actor 用户 as user
participant A系统 as ASystem
database 数据库 as database

user -> ASystem
ASystem -> database
database -> ASystem
ASystem -> user

@enduml

image-20221014112050427

请求链路已经能够体现出来了,但是我们还想加点描述,这个时候我们可以这样来描述:

@startuml
actor 用户 as user
participant A系统 as ASystem
database 数据库 as database

user -> ASystem : 用户访问A系统
ASystem -> database : 访问数据库
database -> ASystem : 数据库返回符合要求的数据
ASystem -> user : A系统返回数据
@enduml

image-20221014132029494

进阶:

  1. ->表示实线,–>表示虚线

  2. 若要表示活动区块,可以使用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
    

    image-20221014133743515

  3. 使用title关键词取标题

    @startuml
    title 时序图示例
    // ...
    
    @enduml
    

    image-20221014135040140

  • 流程图

同样我们使用@startuml和@enduml进行标记,流程图从上往下的每一个对象都用英文冒号作为开始,并且用分号作为结束,例如:

@startuml
:开始;
:第一步;
:第二步;


@enduml

image-20221014140621403

也可以使用start和stop作为流程图开始和结束的标记,使得更加明显一点:

@startuml
start
:第一步,煮开水;
:第二步,放面条;
stop

@enduml

image-20221014140853875

如果我们需要使用条件判断语句,可以用if

@startuml
start
:第一步,煮开水;
:第二步,放面条;
if(面条熟了?)  then(yes)
  :出锅;
  end
else(no)
  :回炉;
  end
endif


@enduml

image-20221014171604362

参考资料:

  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值