PlantUML流程图语法学习实践

news/2025/1/17 20:41:31/


前言

        PlantUML流程图在软件开发中具有多种用途,使用PlantUML生成的UML图表可以帮助审查者更快地理解代码的结构和逻辑;在AI发展的大环境中,可以借助plantUML语法生成的伪代码形式利用promt直接生成开发代码。

一、PlantUML

        PlantUML 是一款非常强大的开源工具,用于生成各种 UML 图表,包括类图、序列图、活动图、用例图等。我们可以从plantUML官网的指导手册学习其语法,并使用网站提供的在线工具编写plantuml代码,查看下载流程图
        Open-source tool that uses simple textual descriptions to draw beautiful UML diagrams.

        对于开发设计工程师人员来说,plantUML可以用'序列图'便捷的描述模块间的通信,可以用'活动图'描述代码框架/代码逻辑。

        例如:

二、序列图

        序列图用于描述几个参与者之前的关系,能够清晰地展示对象之间的消息传递和交互过程,以下是如何使用PlantUML绘制序列图的说明和示例。

1.编写要点

(1)声明参与者

        最简单的例子可以使用->直接描述参与者之间的关联;还可以在开头声明参与者,后续仅通过例如代号A B C来编写多个参与者之间的交互:

@startuml
participant role1 as A
participant role2 as B
participant role3 as C
A -> B : To B
A -> C : To C
B -> C : To C
@enduml

                        

        参与者类型包括如下几种,其类型定义和对应的图案如下所示:

(2) 格式设置

        设置参与者颜色,直接在定义后面跟颜色的编码:

                participant role1 #red

                participant role1 as A #FF0000

        设置文本对齐,在开头定义skinparam sequenceMessageAlign,后面可以设置left right center:

                skinparam sequenceMessageAlign left

        设置箭头样式、颜色和箭头指向角度:

                A --[#red](10)> B

        对消息内容编号,使用autonumber,后面可以设置编号起始值:

                autonumber 10

        消息分割,使用newpage;

        设置延迟:

                ... ... ...

 示例:

@startuml
autonumber
skinparam sequenceMessageAlign left
participant role1 as A
participant role2 as B
participant role3 as C
A --[#red]>(10) B : To B
... ... ... ...
A -> C : To C
newpage
autonumber 11
B -> C : To C
@enduml

                                

2.示例

@startuml
skinparam sequenceMessageAlign center
participant 客户端 as Client
participant 服务器 as Server
== TCP 三次握手 ==
Client -> Server: SYN
Server -> Client: SYN ACK
Client -> Server: ACK
== 发送HTTP请求和响应 ==
Client -> Server: HTTP Request Get
Server -> Client: HTTP Response
== TCP 四次挥手 ==
Client -> Server: FIN
Server -> Client: ACK
Server -> Client: FIN
Client -> Server: ACK
@enduml

                

三、活动图

        活动图用于描述几个动作之间的顺序关系,能够清晰地展示代码逻辑,明确代码架构,以下是如何使用PlantUML绘制活动图的说明和示例。

1.编写要点

(1) 简单活动图

        使用start stop标识流程的开始结束;使用':'';'标识一个动作       

@startuml
start
:Hello world;
stop
@enduml

(2) 条件语法

        条件语法包括:

        if (...) then (...)        then后通常标识yes no      else (...)    endif
        if (...) is (...) then     is后通常标识yes no

        条件判断终止,使用kill或者detach

        

@startuml
if (条件?) then (no)
#pink:错误;
detach
else (yes)
endif
#palegreen:行为;
@enduml

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        

(3) 循环语法

        使用关键字 repeat 和 repeatwhile 进行重复循环,使用 backward 关键字插入一个全
局行为,使用break跳出循环。

2.示例

@startuml
repeat :测试某事;
if (发生错误?) then (没有)
#palegreen:好的;
break
endif
->not ok;
:弹窗 "错误";
backward :cnt++;
repeat while (重试次数<3?) is (是的) not (不是)
:结束;
stop
@enduml

        ​​​​​​​        ​​​​​​​        ​​​​​​​        

四、AI辅助根据plantUML代码生成

#include <stdio.h>int main() {int cnt = 0;  // 重试次数计数器while (cnt < 3) {// 测试某事if (测试某事()) {// 如果没有发生错误printf("好的\n");break;  // 跳出循环} else {// 如果发生错误printf("弹窗 \"错误\"\n");cnt++;  // 增加重试次数}}if (cnt >= 3) {// 如果重试次数达到3次printf("结束\n");}return 0;
}// 模拟测试某事的函数
int 测试某事() {// 这里可以实现具体的测试逻辑// 返回1表示没有错误,返回0表示发生错误// 为了示例,这里随机返回一个值return 0;  // 假设每次都发生错误
}

http://www.ppmy.cn/news/1563969.html

相关文章

GitLab CI/CD使用runner实现自动化部署前端Vue2 后端.Net 7 Zr.Admin项目

1、查看gitlab版本 建议安装的runner版本和gitlab保持一致 2、查找runner 执行 yum list gitlab-runner --showduplicates | sort -r 找到符合gitlab版本的runner&#xff0c;我这里选择 14.9.1版本 如果执行出现找不到下载源&#xff0c;添加官方仓库 执行 curl -L &quo…

数据结构-顺序表及链表结构分析

文章目录 一、顺序表的插入&删除Ⅰ.顺序表的插入(增)1.1 顺序表的尾插1.2 顺序表的头插1.3 顺序表的指定位置插入 Ⅱ.顺序表的移除元素(删)2.1 顺序表的尾删2.2 顺序表的头删2.3 顺序表的指定位置删除 Ⅲ.顺序表数据的查找Ⅳ.顺序表的销毁 二、链表的插入(增)1.单链表的尾插…

HTTP:Nagle算法与TCP_NODELAY

背景&#xff1a;TCP 有一个数据流接口&#xff0c;应用程序可以通过它将任意尺寸的数据放入 TCP 栈中—— 即使一次只放一个字节也可以!但是&#xff0c;每个 TCP 段中都至少装载了 40 个字节的标记和首部&#xff0c;所以如果 TCP 发送了大量包含少量数据的分组&#xff0c;网…

【 MySQL学习1】简介

文章目录 一、一些概念1.1 什么是数据库1.2 数据库管理系统1.3 SQL1.4 三者之间的关系 二 安装MySQL数据库三、命令启动3.1 停止服务3.2 启动服务 一、一些概念 1.1 什么是数据库 英文单词DataBase&#xff0c; 简称DB。 按照一定格式存储数据的一些文件的组合。 存储数据的仓…

微信小程序:实现首页权限菜单效果

一、效果 二、数据库表 1、菜单表 包含权限名称,模块名称,图标名称,页面跳转的方法,菜单是否显示栏位 2、角色对应权限表 包含角色id和权限id,这个表将角色和菜单角色连接,给角色赋予权限功能 3、 账户表 用于绑定账号隶属于什么角色,绑定的角色表 4、角色表 菜单的…

配置AOSP下载环境

1#curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo 2#repo init -u https://android.googlesource.com/platform/manifest 3#清华镜像站帮助页 https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/ 4#同步安卓AOSP 这里是安卓13 repo init -u htt…

深入解析:Python机器学习在气象领域中的应用实例——GFS数值模式的风速预报订正。数据处理、科学计算、数学建模、数据挖掘和数据可视化

在气象领域&#xff0c;全球预报系统&#xff08;GFS&#xff09;数值模式的风速预报订正是一个关键的应用场景&#xff0c;其中机器学习技术发挥了重要作用。本文将详细解析这一应用实例&#xff0c;包括所用到的公式和代码&#xff0c;帮助读者更好地理解如何利用Python和机器…

AI Agent:软件测试自动化的新纪元

在信息技术日新月异的今天&#xff0c;人工智能&#xff08;AI&#xff09;技术的蓬勃发展正引领着各个行业的深刻变革&#xff0c;软件测试领域同样迎来了前所未有的机遇与挑战。AI Agent&#xff0c;这一融合了先进机器学习与自然语言处理技术的智能实体&#xff0c;正悄然成…