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

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

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

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

在线画图

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

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

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

  • 1.打开在线编辑服务
a4ee264cc0127d88848bc35fbc15b328.png

在线编辑服务

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

第一个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"按钮 来重新指定工作目录. 保持界面处于打开状态,不要关闭.
2de926a2476396ae9e8a035f78d3d651.png

uml界面

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

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

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

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

090a8ed755d72b33cd7d2a1cacca245f.png

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

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

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

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

IntelliJ IDEA PLUGIN

  • 1.打开IDEA :

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

(注:重启生效)

d015b4c82ec40b044452c736924855fc.png

安装plugin

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

创建uml1

cbae61ffff9b8706c9bb463d8ccca648.png

创建uml2

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

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

怎么画图

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

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

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

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

  • 时序图的语法于功能

修改箭头样式

方式有以下几种:

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

修改箭头颜色

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

声明参与者

  • 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
bc6171335206d74b1d3a291dec462499.png

分割示意图

@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
1526ccff3ba17cad8f034309a9295f54.png

组合消息

@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
7f9288b4ec50bc721ec3110f23c66663.png

给消息添加注释

@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
0eda7a02e90be5678af3cdeead6d8c50.png

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

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

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

http://plantuml.com/zh/running

d47202ca8e64ca1b9ba1d917a3984d22.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/409591.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

有限状态自动机java实现_用java开发编译器之:Thompson构造,将正则表达式转换为有限状态自动机...

阅读博客的朋友可以到我的网易云课堂中,通过视频的方式查看代码的调试和执行过程:上一节,我们通过代码,实现了一个有限状态自动机,并将其应用于对整形和浮点数的识别。构造有限状态自动机,并驱动它&#xf…

Zend Server搭建网站备注

1、Zend Server的使用 Zend Server自带php和apache,所以装zendserver的话不需要再安装其他任何东西。(mysql默认没有安装,可以自行设置) 2、工作路径配置: 在Zend\Apache2\conf\httpd.conf中添加 Alias/test "F:/workbench/t…

python的符号函数得到的数字类型_Python笔记——数字类型的几个函数

标准类型内建函数&#xff1a;cmp(obj1, obj2) 比较obj1和obj2&#xff0c;根据比较结果返回整型i:i < 0 if obj1 < obj2i > 0 if obj1 > obj2i 0 if obj1 obj2repr(obj)或obj 返回一个对象的字符串表示str(obj) 返回对象适合可读性好的字符串表示type(obj) 得到…

将SqlServer的数据导出到Excel/csv中的各种方法 .

以下都只是介绍操作的原理&#xff0c;具体要求要在应用中具体分析改变。 如果大家有其他好的方法&#xff0c;请相互告知&#xff0c;共同学习。 1. 此方法常用在form或者Console Application中&#xff0c;使用时须用要添加Reference&#xff0c;具体做法&#xff1a; …

java单例模式的实现方法_JAVA单例模式的几种实现方法

1 饿汉式单例类.在类初始化时&#xff0c;已经自行实例化class EagerSingleton {private static final EagerSingleton m_instance new EagerSingleton();/** * 私有的默认构造子 */private EagerSingleton() {}/*** * 静态工厂方法*/public static EagerSingleton getInstanc…

python链表排序_链表排序+末尾各种排序

#工具人排序def nums_sort(data):if not data:return []min_data min(data)max_data max(data)nums [0]*(max_data-min_data1)for value in data:nums[value-min_data]1cur min_datafor index in range (len(data)):while cur< max_data and nums[cur-min_data]<0:cu…

sl animation sample

http://samples.msdn.microsoft.com/Silverlight/SampleBrowser/index.htm#/?srefdoubleanimation 转载于:https://www.cnblogs.com/songtzu/archive/2012/09/05/2672445.html

python中cumsum_在python里“np.cumsum”这个命令是干什么的?怎么使用?

展开全部累计2113求和的命令。5261具体例子如下所示4102&#xff1a;>>> a np.array([[1,2,3], [4,5,6]])>>> aarray([[1, 2, 3],[4, 5, 6]])>>> np.cumsum(a)array([ 1, 3, 6, 10, 15, 21])>>> np.cumsum(a, dtypefloat) # specif…

java rgb转yuv_【转】总结各种RGB转YUV的转换公式

最近在学习视频的颜色空间转换&#xff0c;由于摄像机拍出来的视频很多都是用YUV格式保存的&#xff0c;而颜色空间的转换必须在RGB颜色模型上才能完成&#xff0c;所以第一步自然就是将YUV颜色模型转成RGB颜色模型。在网上查到了许多的YUV与RGB互转的公式&#xff0c;但是总觉…

EDM数据库营销是什么?-EDM数据库营销的概念

可能有些朋友对EDM数据库营销的概念不是很了解。本文就为大家详细讲解一下EDM数据库营销是什么。 EDM数据库营销依然是大部分营销公司的主打产品。但是伴随着B2C的EDM数据库营销的市场不断扩大&#xff0c;一些EDM数据库营销公司已经感觉到其中的商机&#xff0c;纷纷建立自己的…

python两列数据生成邻接矩阵_用python实现邻接矩阵转换为邻接表,python语言实现...

graph {A: [B, C],B: [C, D],C: [D],D: [C,G,H],E: [F],F: [C]}#从图中找出任意一条从起始顶点到终止顶点的路径def find_path(graph, start, end, path[]):if start end:print "path", pathreturn Trueif not graph.get(start):path.pop()return Falsefor v in gr…

驱动程序开发的模具

自从有了操作系统后&#xff0c;就诞生了一种职位叫&#xff1a;驱动程序开发。本文描叙驱动开发所需要的学习方式。 开发驱动程序和编写应用程序之间的区别从招聘岗位可以看出&#xff1a;程序设计师和驱动开发师&#xff0c;它们是设计和开发的区别。设计重点在需求阶段&…

java圆形进度条_可拖拽圆形进度条组件(支持移动端)

好久之前写过一个可拖拽圆形进度条的dome&#xff0c;中间有网友反馈过一些问题&#xff0c;最近比较闲有时间修改了一些问题也做了一些优化&#xff0c;并封装成组件&#xff0c;基于canvas实现&#xff0c;只需传入放置组件dom容器&#xff0c;任何框架均可直接使用&#xff…

java注解 interface_java @FunctionalInterface注解详解

下面要给大家介绍的就javaFunctionalInterface注解&#xff0c;对于FunctionalInterface注解不大了解的人&#xff0c;可以通过下面的文章来了解一下哦。在学习Lambda表达式的时候&#xff0c;假如&#xff0c;接口中只有一个抽象方法(可以包含多个默认方法或多个 static方法)&…