免费且好用的UML工具推荐
1、引言
统一建模语言(Unified Modeling Language,UML)是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言。UML使用面向对象设计的的建模工具,但独立于任何具体程序设计语言。
作为一名程序员,画UML图几乎是必须掌握的一项技能,除非你不写文档。工欲善其事必先利其器,用什么画UML图就成为了一个问题,市面上的工具有很多,VISO、StarUML等等,但要么收费要么不好用,本着免费且好用的原则推荐一款工具:PlantUML。
2、安装
PlantUML是一款开源工具,使用方式有很多种,比如在vscode, webstorm都有相关的插件可以使用。本文基于vscode安装使用,vscode怎么安装本文就不再赘述了,所以假设你已经安装了vscode。打开vscode在扩展中输入PlantUML,点击install即可,如下图所示,安装就这么简单。
3、使用
为什么说它好用呢,因为PlantUML是用代码编译UML图的,这与VISO的可视化工具不同,不用妥妥拽拽反而效率更高,更适合程序员使用,不夸张的说是会让你画UML图画上瘾的工具。
首先,新建文件。PlantUML支持*.wsd, *.pu, *.puml, *.plantuml, *.iuml几种文件格式,以.iuml为例,建立一个Demo.iuml文件用vscode打开,为了方便管理可以把uml文件放在相关代码工程文件夹里。
然后,编写uml代码。作为程序员我们向来不喜欢看说明,所以直接上代码。
示例1:
@startuml
Alice -> Bob: Authentication Request
Bob --> Alice: Authentication Response
Alice -> Bob: Another authentication Request
Alice <-- Bob: another authentication Response
@enduml
那示例1是什么意思,PlantUML有预览功能,alt+d,直接看图,如下,
所以看几个示例,就会用了,继续。
示例2:进入和发出消息
如果只想关注部分图示,你可以使用进入和发出箭头。
使用方括号[和]表示图示的左、右两侧。
@startuml [-> A: DoWork activate A A -> A: Internal call activate A A ->] : << createRequest >> A<--] : RequestCreated deactivate A [<- A: Done deactivate A @enduml
示例3:组合消息
我们可以通过以下关键词将组合消息:
- alt/else
- opt
- loop
- par
- break
- critical
- group, 后面紧跟着消息内容
可以在标头(header)添加需要显示的文字(group除外)。
关键词 end 用来结束分组。
注意,分组可以嵌套使用。
@startuml Alice -> Bob: Authentication Request alt successful case Bob -> Alice: Authentication Accepted else some kind of failure Bob -> Alice: Authentication Failure group My own label Alice -> Log : Log attack start loop 1000 times Alice -> Bob: DNS Attack end Alice -> Log : Log attack end end else Another type of failure Bob -> Alice: Please repeat end @enduml
最后,最关键的一步,画完图要生成图片,总不能预览截图吧,使用vscode输入PlanUML命令,
可以选择导出当前文件图表,选择格式,比如png矢量图,放大不失真这就不同于截图。
会在out文件夹下生成png图片,
另外,有一条代码命令较为重要,设置图片分辨率:scale,
可以设置scale值来设置生成图片的分辨率,效果,试试就知道了~
4、更多
更多请查看官网https://plantuml.com/
更多内容,欢迎关注公众号“嵌入式大玩家”,任何技术问题欢迎留言