PlantUML 语法、图标和示例

news2024/9/22 23:22:24

基本语法

关键字

声明参与者的几个关键字
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

图例
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1944726.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[UE 虚幻引擎] DTHmacSha 蓝图HMACSHA加密算法插件说明

本插件可以在虚幻引擎中使用蓝图对字符串和文件进行HMACSHA加密。 1.节点说明 HMACSHA一共有5种加密方式&#xff0c;分辨是 HMAC SHA-1&#xff0c; HMAC SHA-224&#xff0c;HMAC SHA-256&#xff0c;HMAC SHA-384&#xff0c;HMAC SHA-512。 本插件对每种加密方式提供3个节点…

C++初学者指南-6.函数对象--函数对象

C初学者指南-6.函数对象–函数对象 文章目录 C初学者指南-6.函数对象--函数对象函数对象示例&#xff1a;区间查询区间内的查找区间划分(分组) 指南标准库函数对象比较算术运算 函数对象 提供至少一个成员函数重载 operator() 的对象 class Multiplier {int m_; public:// cons…

MATLAB绘制方波、锯齿波、三角波、正弦波和余弦波、

一、引言 MATLAB是一种具有很强的数值计算和数据可视化软件&#xff0c;提供了许多内置函数来简化数学运算和图形的快速生成。在MATLAB中&#xff0c;你可以使用多种方法来快速绘制正弦波、方波和三角波。以下是一些基本的示例&#xff0c;展示了如何使用MATLAB的命令来实现正弦…

centos系统mysql主从复制(一主一从)

文章目录 mysql80主从复制&#xff08;一主一从&#xff09;一、环境二、服务器master1操作1.开启二进制日志2. 创建复制用户3. 服务器 slave1操作4. 在主数据库中添加数据 mysql80主从复制&#xff08;一主一从&#xff09; 一、环境 准备两台服务器&#xff0c;都进行以下操…

入门C语言Day15——关系条件逻辑操作符

今天来学习操作符中的一些内容&#xff0c;主要讲的是关系&条件&逻辑操作符 1.关系操作符 首先要来了解一下什么是关系操作符&#xff0c;关系操作符其实就是关系运算符&#xff0c;关系运算符又和关系表达式有关。 C语言中用于比较的表达式&#xff0c;就被称为 “关…

google、windows自带语音识别中英文等实时字幕使用

2、自带实时字幕 1&#xff09;google浏览器自带 实时字幕 设置里可以设置&#xff1a; 有视频声音播放会弹出黑色文本框 下载其他语言包-比如中文&#xff1a; 测试 2&#xff09;windows11 辅助功能 实时字幕 &#xff08;直接快捷键打开&#xff1a;Win Ctrl L&#…

openmv学习笔记(24电赛笔记)

#opemv代码烧录清除详解 openmv的代码脱离IDE运行程序&#xff0c;只需要在IDE中将代码烧录道flash里面&#xff0c;断开IDE连接&#xff0c;上电之后&#xff0c;会自动执行main.py中的程序&#xff0c;IDE烧录的时候&#xff0c;会默认将程序后缀保存为 .py文件。 ​​​​​…

go语言day16 runtime包 临界资源 sync包

深入理解Java虚拟机到底是什么_java虚拟机是什么-CSDN博客 Golang-100-Days/Day16-20(Go语言基础进阶)/day17_Go语言并发Goroutine.md at master rubyhan1314/Golang-100-Days GitHub runtime 类似jvm&#xff0c;runtime包也提供了垃圾回收功能。 并且jvm实现了对线程创建销…

自动化网络爬虫:如何它成为提升数据收集效率的终极武器?

摘要 本文深入探讨了自动化网络爬虫技术如何彻底改变数据收集领域的游戏规则&#xff0c;揭示其作为提升工作效率的终极工具的奥秘。通过分析其工作原理、优势及实际应用案例&#xff0c;我们向读者展示了如何利用这一强大工具加速业务决策过程&#xff0c;同时保持数据收集的…

vuepress搭建个人文档

vuepress搭建个人文档 文章目录 vuepress搭建个人文档前言一、VuePress了解二、vuepress-reco主题个人博客搭建三、vuepress博客部署四、vuepress后续补充 总结 vuepress搭建个人文档 所属目录&#xff1a;项目研究创建时间&#xff1a;2024/7/23作者&#xff1a;星云<Xing…

Java响应式编程库Reactor的介绍和基本使用

关于响应式编程的概念和介绍可以参考: 响应式编程(Reactive Programming)是什么? Java语言中,RxJava和Reactor是实现响应式编程的两个最流行的库,因为 Spring 5 及更高版本中,Reactor 是 Spring WebFlux 的底层实现框架,用于构建响应式 Web 应用,所以相比而言,Reactor…

【docker】部署证书过期监控系统mouday/domain-admin

证书过期了再去部署证书容易被骂&#xff0c;就找了一个开源的证书过期系统来部署一下 过程 官方文档&#xff1a;https://domain-admin.readthedocs.io/zh-cn/latest/manual/install.html#docker 直接下载镜像是超时的&#xff0c;切换一下文档推荐的镜像源 新建docker配置…

WPF多语言国际化,中英文切换

通过切换资源文件的形式实现中英文一键切换 在项目中新建Language文件夹&#xff0c;添加资源字典&#xff08;xaml文件&#xff09;&#xff0c;中文英文各一个。 在资源字典中写上想中英文切换的字符串&#xff0c;需要注意&#xff0c;必须指定key值&#xff0c;并且中英文…

【QT】窗口|菜单栏|菜单项|工具栏|状态栏|浮动窗口

目录 ​编辑 QT窗口 窗口分类 菜单栏 创建菜单栏&#xff0c;菜单&#xff0c;菜单项 菜单栏 菜单 菜单项 添加分割线 添加槽函数 ​编辑 添加快捷键 工具栏 停靠位置 浮动属性 移动属性 添加快捷项 ​编辑 状态栏 ​编辑 添加标签 添加进度表 ​编辑…

【C语言】指针的神秘探险:从入门到精通的奇幻之旅 !

目录 C语言指针精讲1. 什么是指针&#xff1f;1.1 指针的内存模型1.1.1 指针演示输出 1.2 指针运算1.2.1 指针算术运算输出1.2.2 指针与数组的关系输出 1.3 指针类型1.3.1 不同类型的指针示例输出1.3.2 void 指针输出 1.4 指针与内存管理动态内存分配输出 1.5 指针与内存泄漏1.…

手写RPC-令牌桶限流算法实现,以及常见限流算法

为什么需要服务限流、降级 分布式架构下&#xff0c;不同服务之间频繁调用&#xff0c;对于某个具体的服务而言&#xff0c;可能会面临高并发场景。在这样的情况下&#xff0c;提供服务的每个服务节点就都可能由于访问量过大而引起一系列问题&#xff0c;比如业务处理耗时过长、…

数据结构中的八大金刚--------八大排序算法

目录 引言 一&#xff1a;InsertSort(直接插入排序) 二&#xff1a;ShellSort(希尔排序) 三&#xff1a;BubbleSort(冒泡排序) 四&#xff1a; HeapSort(堆排序) 五&#xff1a;SelectSort(直接选择排序) 六&#xff1a;QuickSort(快速排序) 1.Hoare版本 2.前后指针版本 …

数组Arrays,排序算法,String类,Stringbulider,正则表达式

## 数组 排序 经典的三大排序&#xff1a;冒泡&#xff0c;选择&#xff0c;插入 &#xff08;一&#xff09;冒泡排序核心&#xff1a;数组中的 相邻 两项比较&#xff0c;交换&#xff08;正序or倒序&#xff09; 正序原理图&#xff1a; 代码实现&#xff1a; public s…

jmeter 重试机制

一、功能实现 我们在测试过程中&#xff0c;请求接口可能是因为请求超时&#xff0c;或者接口异常失败&#xff0c;导致整个测试链路验证失败&#xff0c;jmeter重试机制&#xff0c;这个时候就可以避免上述问题发生 二、配置 1、添加线程组 首先&#xff0c;确保你已经在测…

Python | Leetcode Python题解之第278题第一个错误的版本

题目&#xff1a; 题解&#xff1a; # The isBadVersion API is already defined for you. # def isBadVersion(version: int) -> bool:class Solution:def firstBadVersion(self, n: int) -> int:left, right 1, nwhile left < right:mid left (right - left) //…