能很多程序员喜欢用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,还能绘制更多:

  • 复杂的数学公式:

    更多例子参考官方文档

  • 表格:

    更多例子参考官方文档

  • Graphviz/DOT

    可以使用 Graphviz/DOT 语法绘图:

  • 图表:

    更多例子参考官方文档

  • 使用图标

    更多例子参考官方文档

  • XEarth 地图图片

    更多例子参考官方文档

一些好玩的功能

  • 向 史蒂夫·乔布斯 和 斯蒂夫·盖瑞·沃兹尼亚克 致敬!真正的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图形。收费。

扩展阅读

  • 《使用 Sublime + PlantUML 高效地画图》
  • 《使用Emacs敲出UML,PlantUML快速指南》

    非常不错的中文文档。

  • 《PlantUML Language Reference Guide》

  • 《使用 Graphviz dot 创作 UML 类图》

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

  1. 程序员必备绘图工具,流程图、时序图、类图手到擒来!

  2. 从业10多年,我总结了这几款程序员必备实用工具

    优秀程序员之所以优秀的原因并不一定是他写代码的速度比别人快,而是他解决事情的效率比别人高.副业渠道比别人广,所以提供工作效率的方法并不需要我们样样精通,提高副业收入的办法也不需要我们挖空心思,有时候使 ...

  3. 天瑞地安科技集团程序员波波告诉你程序员必备开发工具

    官方给"程序员"的定义是从事于软件开发.维护的工作人员,所以他们的工作就是不断的开发.开发.开发!整天面对的是一堆又一堆的开发代码,想必一天下来整个人都不好,此时如果有捷径可走,你 ...

  4. 推荐收藏!10大程序员必备生产力工具

    作为程序员,提高生产力是我们一直追求的目标.随着技术的发展,越来越多的工具和应用程序被开发出来,帮助程序员们更好地完成工作.在本文中,我将介绍一些程序员必备的生产力工具. 一.IDE(集成开发环境) ...

  5. 这几个程序员必备画图工具,很实用!

    今天给大家分享一些实用的程序员绘图工具(我自己也在用),分为以下几类: 常规画图:Excalidraw.draw.io.语雀 思维导图:Xmind 代码截图:Carbon 画图模板:ProcessOn ...

  6. 老司机程序员必备效率工具

    程序员开发需要具备良好的信息检索能力,为了备忘(收藏夹真是满了),将开发过程中常用的网站进行整理. 1.搜索引擎 1.1.秘迹搜索 一款无敌有良心.无敌安全的搜索引擎,不会收集私人信息,保护私隐,没有 ...

  7. python开发工具排名-Python程序员必备的四款开发工具

    原标题:Python程序员必备的四款开发工具 每一位Python程序员都会有套工具来应对开发工作上的挑战.多年来,Python程序员使用开发工具来完成他们的工作.有很多工具对他们是有用的,不过对于初入 ...

  8. python界面开发工具免费_Python程序员必备的四款开发工具

    原标题:Python程序员必备的四款开发工具 Python自学与交流中心QQ群:260308621 大家今晚利用1个小时看python基础视频教程 23-27节 ,自己监督自己.跟着学习哈!一定要做到 ...

  9. java的六大_java程序员必备的六大工具!

    原标题:java程序员必备的六大工具! Java程序员都会有套工具来应对工作上的挑战.多年来,Java 程序员使用软件来完成他们的工作.有很多工具对他们是有用的,不过对于初入行的人员来说,寻找合适的工 ...

  10. 十大PHP程序员必备工具

    十大PHP程序员必备工具 1.Notepad++ 总结来说就是小而精,7.4版本的软件包只有2.9M,比一般的IDE小数十倍,但是Notepad++的功能确是很全面的,代码高亮,语法折叠,宏功能,内置 ...

最新文章

  1. 编程——无序数组中找到最大乘积(python)
  2. DDoS攻击惯犯图鉴
  3. 云数据中心网络遇到的问题_云数据中心面临安全问题,华为SDN解决方案有一个安全大脑...
  4. 装饰器,语法糖.有参装饰器 ,无参装饰器
  5. 一个影响我现在生活状况的故事[转载]
  6. android 禁用和开启四大组件的方法(setComponentEnabledSetting )
  7. Java字符串常见面试题
  8. 图像表示的相关概念:图像深度、像素深度、位深的区别和关系
  9. EOJ 1224 简单迷宫问题 bfs
  10. zencart包包模板
  11. 一口气带你学会Redis升级后的几种数据类型,效率daydayup
  12. 去中心化社交网络协议除了Nostr还有哪些?
  13. 单细胞拟时分析:基因及通路随拟时表达变化趋势
  14. JAVA工具类(17)--Java导入导出Excel工具类ExcelUtil
  15. python html转pdf 调整大小_用Python将HTML转为PDF。
  16. 微信小程序——【云音乐播放器】
  17. 计算机代码英语,计算机专业英语 (四)(示例代码)
  18. C++面向对象程序设计实践——任务与指导书(3)
  19. android的searchview焦点,Android how to focus ActionBar searchView
  20. C++ 统计输入的字符串中英文字母的个数

热门文章

  1. 模型预测控制的缺点_模型预测控制(MPC)与最优控制的理论分析 | NeurIPS 2020
  2. 二维图像(数组)的fftshift
  3. java web服务器热部署_Tomcat服务器热部署教程_如何实现tomcat热部署
  4. STM8L152K4T6原理图与开发程序
  5. 逻辑回归(LR) 算法模型简介
  6. php解析微信emoji字符
  7. k近邻算法_机器学习 第38集:k近邻算法k值过小和过大有什么危害?k值如何选取?( 含有笔记、代码、注释 )...
  8. 数值分析(一) 牛顿插值法及matlab代码
  9. 我的Ubuntu软件清单
  10. oracle去除字段值的所有英文