当前位置: 首页 > news >正文

PlantUML入门教程:画时序图

软件工程中会用到各种UML图,例如用例图、时序图等。那我们能不能像写代码一样去画图呢?
今天推荐一款软件工程师的作图利器--PlantUML,它能让你用写代码的方式快速画出UML图。

一、什么是PlantUML?
PlantUML是一个允许你快速作出UML图的组件:

  • 序列图
  • 用例图
  • 类图
  • 对象图
  • 活动图(这里是传统的语法)。
  • 组件图
  • 部署图
  • 状态图
  • 时序图

也支持以下非UML图表:

  • JSON数据
  • YAML数据
  • Extended Backus-Naur Form (EBNF)图表
  • 网络图(nwdiag)
  • 线框图形界面或UI模拟图(盐)。
  • 架构图
  • 规范和描述语言(SDL)
  • Ditaa图
  • 甘特图
  • 思维导图
  • 工作分解结构图(WBS)
  • 用AsciiMath或JLaTeXMath符号进行数学计算
  • 实体关系图(IE/ER)。

此外:

  • 超链接和工具提示
  • 克里奥尔语:富文本、表情符号、unicode、图标
  • OpenIconic图标
  • Sprite图标
  • AsciiMath数学表达式

关于PlantUML的更多信息,可通过查阅PLantUML官网获取:
https://plantuml.com/zh/


二、如何使用PlantUML?
使用PlantUML画图有多种方式,一种是使用PlantUML在线编辑器,另一种是使用VSCode/PyCharm/IDEA等软件支持的插件来编写。
PlantUML在线编辑器:
http://www.plantuml.com/plantuml/uml/SyfFKj2rKt3CoKnELR1Io4ZDoSa70000

下面我们演示一个PlantUML画时序图例子:

@startuml
/'boundary  分界; control  控制器; entity  数据对象; database  数据库; collections  集合'/
'为了图标更加简洁,去掉底部重复的对象
hide footbox
autonumberparticipant SERVICE
database    DB
participant AGENTrnote over DB
Database, 数据驱动设计
endnoteSERVICE ->o SERVICE: 服务端处理
SERVICE [#Red]-> DB: 写状态,触发更新事件
note right
Pub/Sub机制
endnote
DB -> AGENT: 发布更新事件activate AGENT
alt 激活事件AGENT --> AGENT: 激活处理
else 去激活事件AGENT --> AGENT: 去激活处理
else 升级事件AGENT <--> AGENT: 升级处理
end
AGENT [#Blue]-> DB: 写状态,触发更新事件
deactivate AGENT@enduml


时序图用来标识某个操作的整个流程,通过时序图可以很清晰地知道某个操作的全流程,以及相关的交互方。

如下是上述代码作出的时序图:

更多PlantUML作图演示,可参考:
https://www.cnblogs.com/wangbin2188/p/16128832.html

http://www.lryc.cn/news/163923.html

相关文章:

  • C#范围运算符
  • 云数据库知识学习——云数据库产品、云数据库系统架构
  • C++中引用详解!
  • VUE3+TS项目无法找到模块“../version/version.js”的声明文件
  • 数据结构-堆的实现及应用(堆排序和TOP-K问题)
  • Spring 条件注解没生效?咋回事
  • 96. 不同的二叉搜索树
  • Android Jetpack 中Hilt的使用
  • 批量采集的时间管理与优化
  • uniApp监听左右滑动事件
  • 十八、MySQL添加外键?
  • 图像文件的操作MATLAB基础函数使用
  • 【k8s】Kubernetes版本v1.17.3 kubesphere 3.1.1 默认用户登录失败
  • Mysql加密功能
  • redis-win10安装和解决清缓存报错“Error: Protocol error, got “H“ as reply type byte”
  • 【视觉检测】电源线圈上的导线弯直与否视觉检测系统软硬件方案
  • Java elasticsearch scroll模板实现
  • 嵌入式基础知识-信息安全与加密
  • TCP的三次握手与四次挥手
  • 【Face Swapping综述】Quick Overview of Face Swap Deep Fakes
  • etcd选举源码分析和例子
  • Android 网络配置
  • 【网络通信 -- WebRTC】Open WebRTC Toolkit 环境搭建指南
  • 文件上传漏洞(CVE-2022-30887)
  • LeetCode-77-组合
  • Oracle中instr,rtrim,XMLPARSE,XMLAGG,GETCLOBVAL函数的使用
  • java接入apiv3微信小程序支付(以java的eladmin框架为例)
  • 第19节-PhotoShop基础课程-历史记录画笔工具
  • MongoDB常用的比较符号和一些功能符号
  • 网络安全(黑客)技术自学