数字校园建设专题网站建设企业银行官方网站
软件工程中会用到各种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
