PlantUML 语法、图标和示例

基本语法

关键字

声明参与者的几个关键字
actor、boundary、control、entity、database、collections、participant
在这里插入图片描述

箭头样式

我们可以通过,修改箭头样式,来表达不一样的意思:

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

设置标题、页眉、页脚

  • title,设置标题
  • herder,设置页眉
  • footer,设置页脚,如果想用页码,则加上 %page% of %lastpage%

在这里插入图片描述

给信息添加注释

  • 在左边添加注释 note left :
  • 在右边添加注释 note right :
  • 多行注释,note left /right 多行注释 end note

在这里插入图片描述

组合信息

  • alt/else ,类似于 if / else
  • opt 选择,
  • loop 循环
  • par
  • break 跳出循环
  • critical
  • group 组

它们后面紧跟着消息内容,都是用来组合信息,就跟定义参与者一样,也有好多的关键字,但是自己根据场景选择对应的关键字,这里也是,使用 end 结束没个小分组;

代码

@startuml
'注释:爱丽斯向鲍勃发信息,请求认证'
Alice->Bob:请求认证
alt 成功
Bob->Alice: 认证成功
else 认证失败:密码错误
	Bob->Alice: 认证失败:密码错误
	group 如果有人不停的尝试,则记录在日志中,此时爱丽斯开始攻击
		Alice->Log:爱丽斯开始进行。。。
		loop 进行循环1000次
			Alice -> Bob:对鲍勃开始循环攻击
		end 
		Alice ->Log:循环结束
		note left:这是注释
	end
else 认证失败,拒绝访问
	Bob->Alice:爱丽斯,洗洗睡吧,我们拒绝你访问
end

@enduml

图例
在这里插入图片描述

if分支

代码

@startuml
start
title 流程

:用户进入;
if(判断条件)then(yes)
	-[#blue]->
	:执行yes操作;
else(no)
	-[#red]->
	:执行no操作;
endif


stop
@enduml

图例
在这里插入图片描述

重复循环

  • repeat
@startuml
start
title 流程

repeat
:int i-1;
note left:注释1
#red:执行i++;
note right:注释2
repeat while(i <= 100)

stop
@enduml

在这里插入图片描述

  • while

代码

@startuml
start
title 流程

while(i <= 100)
:int -=100;
:i++;
endwhile

stop
@enduml

图例
在这里插入图片描述

并行处理

代码

@startuml
start
title 流程

if(条件判断)then(yes)
	fork
	:并行操作1;
fork again
	:并行操作2;
	endfork
else(no)
:执行1;
:执行2;
endif

stop
@enduml

在这里插入图片描述

时序图

代码

@startuml
skinparam shadowing false
Alice -> Bob: Authentication Request
Bob --> Alice: Authentication Response
 
Alice -> Bob: Another authentication Request
Alice <-- Bob: Another authentication Response
@enduml

图例
在这里插入图片描述

代码

@startuml
title 关键字 actor 表示参与者

actor B #green
participant A #red
A->B: requestA
B->A: requestB

@enduml

图例
在这里插入图片描述
代码

@startuml

title 关键字 database 表示数据库

database Foo #red
participant Bar #red
Bar->Bar: 自己发消息

@enduml

图例
在这里插入图片描述

生命线激活、撤销

activate和deactivate用来表示参与者的生命活动激活、撤销,而 destroy 则代表生命线的摧毁:

生命线被撤销、摧毁以后,还是可以再次激活的,但是不能在同一个点,撤销、摧毁以后,立马激活,在图中表现为,线必须要有断点:
在这里插入图片描述

代码

@startuml
title skinparam 改变颜色字体

skinparam sequence {
	LifeLineBackgroundColor #red
	ParticipantBackgroundColor pink
	ParticipantFontSize 16
	ParticipantFontColor #000
}
actor User
participant "First Class" as A
participant "Second Class" as B
participant "Last Class" as C
User ->A:DoWork
activate A
A->B:Create Request
activate B
B->C:DoWork
activate C
C-->B:WorkDone
destroy C
B-->A:Request Create
deactivate B
A-->User:Done
deactivate A

@enduml

图例
在这里插入图片描述

component定义组件

代码

@startuml
title component定义组件
left to right direction
actor customer
actor clerk
rectangle {
	customer --(checkout)
	(checkout) .>(payment):include
	(help) .>(checkout) : extends
	(checkout) --clerk
}

@enduml

图例
在这里插入图片描述

泳道图

代码

@startuml
|Swimlane1|
start
:foo1;
|#AntiqueWhite|Swimlane2|
:foo2;
:foo3;
|Swimlane1|
:foo4;
|Swimlane2|
:foo5;
stop
@enduml

图例
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

C+ 安口木

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值