PlantUML - 程序员必备绘图工具,不只是UML

何禄
2023-12-01

能很多程序员喜欢用Viso(window下)或OmniGraffle(Mac 下)绘制UML图。但你用过 PlantUtml 之后,你可能会觉得其他工具简直“弱爆了”!。Viso或OmniGraffle 这类工具的确更灵活,绘制系统结构图的时候更有优势,但在绘制UML方面(不太关心样式的情况下),他们和 PlantUML比起来效率就低很多。PlantUML 完全使用代码方式绘图,更符合程序员的习惯,让逻辑表述更清晰,更易于修改。

官方网址:plantuml.com

图片来源 wikimedia

快速入门

核心的使用方式就是“名称”加“箭头”,官方的入门文档也只有两段话:

  1. 编写绘图代码文件,如:sequenceDiagram.txt

  1. @startuml
    Alice -> Bob: test
    @enduml
  2. 运行命令生成图片,会自动生成名为 sequenceDiagram.png 文件

    java -jar plantuml.jar sequenceDiagram.txt 

So Easy!,用PlantUML绘制UML图就是这么简单,形象你用Viso之类的工具需要拖拽多久?用代码方式简单明了,几秒钟搞定。

当然这里使用命令行方式生成图片未免有些笨拙,后面会介绍跟好用的工具。

PlantUML 能做什么?

UML 图形是必备

不是只有 UML

PlantUML 的强大之处在于不只能绘制UML,还能绘制更多:

一些好玩的功能

  • 向 史蒂夫·乔布斯 和 斯蒂夫·盖瑞·沃兹尼亚克 致敬!真正的hacker应该做的事情!

    来源地址:点这里

  • ASCII Art

    PlantUML还可将绘图代码绘制成 ASCII ART 形式:

    来源地址:点这里

    还可以将ASCII ART 转成图片形式:

    来源地址:点这里

  • 数独游戏

    来源地址:点这里

  • 手绘风格

    来源地址:点这里

    来源地址:点这里

支持中文

工具

在线编辑工具

  • PlantText UML Editor

    非常强大,单不挂代理国内访问会比较慢,工具引了几个google的js文件,国内访问不了只能等到超时才行。

  • 官方在线编辑工具

    非常简单的工具,截图:

    但是可以生成一个可引用的图片地址:

  • Plant UML Previewer

    也是一个非常简单的编辑器,有预发高亮功能。

  • 其他官方推荐在线编辑器

    有些是收费的。

    参考:官方文档

本地工具

PlantUML 可集成的IDE工具非常多,几乎主流编辑器都支持:

参考:官方文档

下面仅用Eclipse举例

集成到 Eclipse

  1. 安装 Graphviz/DOT 官方网址:https://graphviz.org/download/ Mac可以用brew install graphviz 安装

  2. 安装PlantUML Eclipse扩展: 更新地址(Eclipse 4 ):http://basar.idi.ntnu.no/svn/tdt4100/anonymous/trunk/updatesite/

  3. 配置Graphviz Path 设置->PlantUML->Graphviz Path

  4. 打开PlantUML view window -> show view -> PlantUML

  5. 试用 对于已有的Java文件,PlantUML 可以自动绘制出类图:

    普通UML绘制试用txt文件即可:

参考:官方文档

自建 PlantUML Web 服务

如果你觉得用别人的在线服务,以及别人的图片地址不够安全或稳定。PlantUML 官方也提供自建Web服务的套件,基于 Java 和 Tomcat。参考:官方文档

自建效果参考 PlantUML Web Server

多种开发语言调用

参考:官方文档

其他在线UML工具

  • ArgoUml

    本地IDE工具,略重,截图:

  • mermaid

    和 PlantUML类似,也是通过代码绘制图形,样式比较美观,功能没有 PlantUML丰富,截图:

  • Draw.io

    完全在线的图例编辑工具,可绘制的类型非常丰富,相当于在线的Viso。

  • ProcessOn

    国产在线图例编辑工具

  • staruml

    收费。

  • UMLet (UMLet - Free UML Tools for fast UML diagrams)

    基于 Java 的UML IDE,比较轻量简单,界面不是很好看。

  • WebSequenceDiagrams(WebSequenceDiagrams - Draw sequence diagrams online in seconds)

    专门绘制时序图的在线图例编辑器,基于代码语法的,有关键字提示功能,类似PlantUML,部分功能免费。

  • Speeder

    一个绘制时序图的前端js框架,收费。

  • JS Sequence Diagrams 

    另一个绘制时序图的前端js框架,开源免费,有手绘风格。

  • 10 个 Eclipse UML 插件

  • Mscgen

    类似 PlantUML 的绘图工具,基于代码绘制,非常轻量级,有点简陋。

  • graphviz

    另一个强大的基于代码的绘图工具,不过PlantUML已经可以集成他的功能了。参考:Integration of Dot diagrams

  • JUMLY

    一个比较不错的前端js UML框架。样式也比较美观。

  • blockdiag

    一个小众基于代码的UML绘制工具,功能比较少。

  • yUML

    可以通过URL参数绘制UML图形。收费。

扩展阅读

 类似资料: