PlantUML - 程序员必备绘图工具,不只是UML
发表于2016-12-10 12745次阅读
可能很多程序员喜欢用Viso(window下)或OmniGraffle(Mac 下)绘制UML图。但你用过 PlantUtml 之后,你可能会觉得其他工具简直“弱爆了”!。Viso或OmniGraffle 这类工具的确更灵活,绘制系统结构图的时候更有优势,但在绘制UML方面(不太关心样式的情况下),他们和 PlantUML比起来效率就低很多。PlantUML 完全使用代码方式绘图,更符合程序员的习惯,让逻辑表述更清晰,更易于修改。
官方网址:plantuml.com
图片来源 wikimedia
快速入门
核心的使用方式就是“名称”加“箭头”,官方的入门文档也只有两段话:
编写绘图代码文件,如:sequenceDiagram.txt
1
2
3
@startuml
Alice -> Bob: test
@enduml
运行命令生成图片,会自动生成名为 sequenceDiagram.png 文件
java -jar plantuml.jar sequenceDiagram.txt
So Easy!,用PlantUML绘制UML图就是这么简单,形象你用Viso之类的工具需要拖拽多久?用代码方式简单明了,几秒钟搞定。
当然这里使用命令行方式生成图片未免有些笨拙,后面会介绍跟好用的工具。
PlantUML 能做什么?
UML 图形是必备
- 时序图:
更多例子参考官方网址 - 用例图:
更多例子参考官方文档 - 类图:
更多例子参考官方文档 - 活动图/流程图
更多例子参考官方文档 - 组件图
更多例子参考官方文档 - 状态图
更多例子参考官方文档 对象图
更多例子参考官方文档
不是只有 UML
PlantUML 的强大之处在于不只能绘制UML,还能绘制更多:
复杂的数学公式:
更多例子参考官方文档- 表格:
更多例子参考官方文档 - Graphviz/DOT
可以使用 Graphviz/DOT 语法绘图: - 图表:
更多例子参考官方文档 - 使用图标
更多例子参考官方文档 XEarth 地图图片
更多例子参考官方文档
一些好玩的功能
向 史蒂夫·乔布斯 和 斯蒂夫·盖瑞·沃兹尼亚克 致敬!真正的hacker应该做的事情!
来源地址:点这里- ASCII Art
PlantUML还可将绘图代码绘制成 ASCII ART 形式:
来源地址:点这里
还可以将ASCII ART 转成图片形式:
来源地址:点这里 - 数独游戏
来源地址:点这里 -
支持中文
工具
在线编辑工具
https://www.planttext.com/
非常强大,单不挂代理国内访问会比较慢,工具引了几个google的js文件,国内访问不了只能等到超时才行。- 官方在线编辑工具
非常简单的工具,截图:
但是可以生成一个可引用的图片地址: - Plant UML Previewer
也是一个非常简单的编辑器,有预发高亮功能。 - 其他官方推荐在线编辑器
有些是收费的。
参考:官方文档
本地工具
PlantUML 可集成的IDE工具非常多,几乎主流编辑器都支持:
参考:官方文档
下面仅用Eclipse举例集成到 Eclipse
- 安装 Graphviz/DOT 官方网址:http://www.graphviz.org/Download.php Mac可以用
brew install graphviz
安装 - 安装PlantUML Eclipse扩展: 更新地址(Eclipse 4 ):http://basar.idi.ntnu.no/svn/tdt4100/anonymous/trunk/updatesite/
- 配置Graphviz Path 设置->PlantUML->Graphviz Path
- 打开PlantUML view window -> show view -> PlantUML
- 试用 对于已有的Java文件,PlantUML 可以自动绘制出类图:
普通UML绘制试用txt文件即可:
参考:官方文档
自建 PlantUML Web 服务
如果你觉得用别人的在线服务,以及别人的图片地址不够安全或稳定。PlantUML 官方也提供自建Web服务的套件,基于 Java 和 Tomcat。参考:官方文档
自建效果参考 http://www.plantuml.com/plantuml/uml/
多种开发语言调用
参考:官方文档
其他在线UML工具
- ArgoUml
本地IDE工具,略重,截图: - mermaid
和 PlantUML类似,也是通过代码绘制图形,样式比较美观,功能没有 PlantUML丰富,截图: - Draw.io
完全在线的图例编辑工具,可绘制的类型非常丰富,相当于在线的Viso。 - ProcessOn
国产在线图例编辑工具 - staruml
收费。 - UMLet (http://www.umlet.com/)
基于 Java 的UML IDE,比较轻量简单,界面不是很好看。 - WebSequenceDiagrams(https://www.websequencediagrams.com/)
专门绘制时序图的在线图例编辑器,基于代码语法的,有关键字提示功能,类似PlantUML,部分功能免费。 - Speeder
一个绘制时序图的前端js框架,收费。 - JS Sequence Diagrams
另一个绘制时序图的前端js框架,开源免费,有手绘风格。 - 10 个 Eclipse UML 插件
- Mscgen
类似 PlantUML 的绘图工具,基于代码绘制,非常轻量级,有点简陋。 - graphviz
另一个强大的基于代码的绘图工具,不过PlantUML已经可以集成他的功能了。参考:http://plantuml.com/dot - JUMLY
一个比较不错的前端js UML框架。样式也比较美观。 - blockdiag
一个小众基于代码的UML绘制工具,功能比较少。 yUML
可以通过URL参数绘制UML图形。收费。
扩展阅读
- 《使用Emacs敲出UML,PlantUML快速指南》
非常不错的中文文档。 - 《PlantUML Language Reference Guide》
- 《使用 Graphviz dot 创作 UML 类图》
出处:https://www.coderxing.com/plantuml-the-best-uml-tools.html
本文为原创文章,采用署名-相同方式共享 3.0 中国大陆(CC BY-SA 3.0 CN))进行许可,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。