免费且好用的UML工具推荐

1、引言

统一建模语言(Unified Modeling Language,UML)是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言。UML使用面向对象设计的的建模工具,但独立于任何具体程序设计语言。

 

作为一名程序员,画UML图几乎是必须掌握的一项技能,除非你不写文档。工欲善其事必先利其器,用什么画UML图就成为了一个问题,市面上的工具有很多,VISO、StarUML等等,但要么收费要么不好用,本着免费且好用的原则推荐一款工具:PlantUML。

 

2、安装

PlantUML是一款开源工具,使用方式有很多种,比如在vscode, webstorm都有相关的插件可以使用。本文基于vscode安装使用,vscode怎么安装本文就不再赘述了,所以假设你已经安装了vscode。打开vscode在扩展中输入PlantUML,点击install即可,如下图所示,安装就这么简单。

office vision uml生成java代码 uml生成工具_UML

 

3、使用

为什么说它好用呢,因为PlantUML是用代码编译UML图的,这与VISO的可视化工具不同,不用妥妥拽拽反而效率更高,更适合程序员使用,不夸张的说是会让你画UML图画上瘾的工具。

 

首先,新建文件。PlantUML支持*.wsd, *.pu, *.puml, *.plantuml, *.iuml几种文件格式,以.iuml为例,建立一个Demo.iuml文件用vscode打开,为了方便管理可以把uml文件放在相关代码工程文件夹里。

office vision uml生成java代码 uml生成工具_好用_02

 

然后,编写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,直接看图,如下,

office vision uml生成java代码 uml生成工具_UML_03

 

所以看几个示例,就会用了,继续。

 

示例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


office vision uml生成java代码 uml生成工具_生成图片_04

 

最后,最关键的一步,画完图要生成图片,总不能预览截图吧,使用vscode输入PlanUML命令,

office vision uml生成java代码 uml生成工具_生成图片_05

 

可以选择导出当前文件图表,选择格式,比如png矢量图,放大不失真这就不同于截图。

office vision uml生成java代码 uml生成工具_工具_06

 

会在out文件夹下生成png图片,

office vision uml生成java代码 uml生成工具_UML_07

 

另外,有一条代码命令较为重要,设置图片分辨率:scale,

可以设置scale值来设置生成图片的分辨率,效果,试试就知道了~

office vision uml生成java代码 uml生成工具_生成图片_08