在团队协作过程中最常见的就是开会、开会最常用的就是图,而图中最常见的就是流程图,时序图,类图等下面介绍一款画图神器:PlantUML

PlantUML是一个开源项目,支持快速绘制:

  • 时序图
  • 用例图
  • 类图
  • 活动图
  • 组件图
  • 状态图
  • 对象图
  • 部署图
  • 定时图
附上地址: http://plantuml.com

在线画图

假如您和我一样也是个急性子 :-)

尝试 PlantUML 最简单快捷的方法就是使用在线编辑服务.

http://www.plantuml.com/plantuml/uml

  • 1.打开在线编辑服务

在线编辑服务

  • 2.输入代码:
@startumlBob -> Alice : hello@enduml
  • 3.点击submit即可

第一个UML图

本地画图

  • 安装PlantUML
 软件要求: Java : 是运行PlantUML的必需条件 (如果想绘制 除 时序图和活动图以外的图, 就需要安装 Graphviz)
  • 1.下载plantuml.jar

jar下载地址:http://sourceforge.net/projects/plantuml/files/plantuml.jar/download

  • 2.双击 plantuml.jar 文件(或者: java -jar plantuml.jar ), 启动 plantUML界面. 可以点击"Change Directory"按钮 来重新指定工作目录. 保持界面处于打开状态,不要关闭.

uml界面

  • 3.构建第一个本地UML图

在工作目录中建立一个demo.txt内容如下:

@startumlAlice -> Bob: test@enduml
  • 4.打开文件所在目录就可以看到生成的图片:demo.png

注: 图片的生成是实时的,可以边改边看哦!

看到这里,你是不是觉得爱上画图了?

我想你是爱我的我猜你也舍不得但是怎么说 总觉得我们之间留了太多空白格……

还没有爱上?怎么又是要打开网址,又是下载jar, 这么麻烦?

没关系, 下面我们再来介绍一个IDEA插件。

IntelliJ IDEA PLUGIN

  • 1.打开IDEA :

Settings -> Plugins -> Browse repositories -> 输入:Plantuml integration -> Install

(注:重启生效)

安装plugin

  • 2.右键-> New-> PlantUML FIle-> 输入Name -> ok

创建uml1

创建uml2

  • 3.打开demo.puml
@startumlAlice -> Bob: Authentication RequestBob --> Alice: Authentication ResponseAlice -> Bob: Another authentication RequestAlice 

这时候我们就可以看到,左边为代码, 右边为UML图。

怎么画图

看完上面的安装使用,大家可能发现了,画图的方式是不是变了?

平时画图都是通过鼠标,拖出各种图

现在而是通过代码的形式在生成

对于同为程序员的我来说,写代码跟画图来比,我还是更热衷于通过代码来实现

  • 时序图的语法于功能

修改箭头样式

方式有以下几种:

  • 表示一条丢失的消息:末尾加 x
  • 让箭头只有上半部分或者下半部分:将替换成或者 /
  • 细箭头:将箭头标记写两次 (如 >> 或 //)
  • 虚线箭头:用 -- 替代 -
  • 箭头末尾加圈:->o
  • 双向箭头:
@startumlBob ->x AliceBob -> AliceBob ->> AliceBob - AliceBob - AliceBob //-- AliceBob ->o AliceBob o-- AliceBob  AliceBob o Alice@enduml

修改箭头颜色

@startumlBob -[#red]> Alice : helloAlice -[#0000FF]->Bob : ok@enduml

声明参与者

  • actor
  • boundary
  • control
  • entity
  • database
@startumlactor Foo1boundary Foo2control Foo3entity Foo4database Foo5collections Foo6Foo1 -> Foo2 : To boundaryFoo1 -> Foo3 : To controlFoo1 -> Foo4 : To entityFoo1 -> Foo5 : To databaseFoo1 -> Foo6 : To collections@enduml

分割示意图

@startumlAlice -> Bob : message 1Alice -> Bob : message 2newpageAlice -> Bob : message 3Alice -> Bob : message 4newpage A title for thelast pageAlice -> Bob : message 5Alice -> Bob : message 6@enduml

组合消息

@startumlAlice -> Bob: Authentication Requestalt successful caseBob -> Alice: Authentication Acceptedelse some kind of failureBob -> Alice: Authentication Failuregroup My own labelAlice -> Log : Log attack start loop 1000 times Alice -> Bob: DNS Attack endAlice -> Log : Log attack endendelse Another type of failure Bob -> Alice: Please repeat end@enduml

给消息添加注释

@startumlAlice->Bob : hellonote left: this is a first noteBob->Alice : oknote right: this is another noteBob->Bob : I am thinkingnote lefta notecan also be definedon several linesend note@enduml

更多的语法请参考官方……

通过代码来实现流程图,有没有觉得很爽呢?

更重要的,支持的平台非常多

http://plantuml.com/zh/running

流程图中的虚线含义_还在为画流程图烦恼,焦躁?介绍一款画图神器,让你爱上画图!...相关推荐

  1. smartart连续块状流程图_还在为「流程图」抓破头?用 Word 能又快又美的搞定!...

    原标题:还在为「流程图」抓破头?用 Word 能又快又美的搞定! 作者:卓晓思 来源:纵横职场(id:ZHZC14) 我们以这张简单的招聘流程图为例,如果,我们在描述公司招聘流程的时候只是用文字进行描 ...

  2. Java摇骰子比大小_还在摇骰子比大小?这几款火热的KTV喝酒游戏你值得收藏

    原标题:还在摇骰子比大小?这几款火热的KTV喝酒游戏你值得收藏 嗨,此时屏幕前的你, 是否正在包厢里和客人尽情高歌. 曲也唱了两三首了, 不如来点酒桌游戏助助兴. 今天带来6种当下最流行的喝酒游戏, ...

  3. umi脚手架搭建的项目_还在从零开始搭建项目?手撸了款快速开发脚手架!

    之前开源了一款项目骨架mall-tiny,完整继承了mall项目的整个技术栈.总感觉mall-tiny集成了太多中间件,过于复杂了.这次对其进行了简化和升级,使它成为了一款拥有完整权限管理功能的快速开 ...

  4. ps里面怎么插入流程图_用PS怎么画流程图?

    回答: 相信大家对流程图并不陌生,高中时期,数学流程图历历在目,如今,工作中使用流程图也是越来越频繁了,开发者理顺和优化业务,流程图对它们有一个很好的帮助.流程的绘制,基本上是按照业务的实际处理步骤和 ...

  5. java中数组的含义_数组

    数组(Array)是有序的元素序列.[1] 若将有限个类型相同的变量的集合命名,那么这个名称为数组名.组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量.用于区分数组的各个元素的数 ...

  6. python中系列的含义_一篇文章让你彻底搞清楚Python中self的含义

    刚开始学习Python的类写法的时候觉得很是麻烦,为什么定义时需要而调用时又不需要,为什么不能内部简化从而减少我们敲击键盘的次数? 你看完这篇文章后就会明白所有的疑问. self代表类的实例,而非类. ...

  7. java流程图中平行四边形代表什么_程序流程图中通常用平行四边形表示分支结构...

    程序流程图中通常用平行四边形表示分支结构 答:错 DES的分组长度和有效密钥长度分别为( ) 答:64,56 若采用2∶1的比例绘制一个直径为20的圆时,其绘图直径为40,标注尺寸为40. 答:错 某 ...

  8. 请举例说明python中**运算符的含义_举例讲解Python中的身份运算符的使用方法

    Python身份运算符 身份运算符用于比较两个对象的存储单元 以下实例演示了Python所有身份运算符的操作: #!/usr/bin/python a = 20 b = 20 if ( a is b ...

  9. 知云文献翻译打不开_还在为论文翻译烦恼吗?点进来帮您解决

    毕业论文的摘要如何更专业的翻译?阅读外文文献如何更好的理解全文?PDF文档如何更简单地翻译?听说这些问题也在困扰大家,于是,我来了!! 今天给大家献上神器一枚--知云文献翻译. 知云文献翻译是一款功能 ...

最新文章

  1. 2nd 四人小组项目的进一步分析
  2. List集合ArrayList,LinkList
  3. java write int,void write(byte[] b, int off, int len)
  4. 用编码实现gridview的创建!(一)(转www.asp.net)
  5. 【Leetcode】112. 路径总和
  6. Linux入门学习(七)
  7. SpringBoot整合JdbcTemplate
  8. [ExtJS 6] SenchaCmd编译出错与解决
  9. Maven搭建webService (一) 创建服务端---使用main函数发布服务
  10. 2018年最新全国县级以上行政区划对应关系数据(按国家统计局网站整理)
  11. 百度之星冠军分享:AI图像赛事入门
  12. Icode编程>>>图形化编程>>>1级训练场>>>重复执行练习【1】
  13. Apple PUSH Notication Service (APNS) 配置攻略
  14. effective c++ 23NVI手法
  15. 关于SCI论文发表的五不准原则是
  16. (转)《一定要争气》
  17. Linux 静态链接库与动态链接库之一:静态链接库生成及使用
  18. 云系统服务器收费,云服务器收费标准
  19. [Python]可视化函数绘图计算器
  20. 使用scrapy框架抓取手机商品信息(2)

热门文章

  1. 微信上传素材 java_微信素材上传(JAVA)
  2. swift 从手机选照片_19元起!定制专属手机壳!还可免费打印照片...
  3. Flask入门之上传文件到服务器
  4. MSP432P401R TI Drivers 库函数学习笔记(六)UART 串口
  5. Linux C 算法——排序
  6. 【python】动态调用函数名
  7. linux内核模块常见问题
  8. [python]删除列表中相同的元素
  9. [react] 说说react的生命周期有哪些?
  10. [react] react与angular、vue有什么区别?