画图新方式——文本画UML图

Posted 汽车软件

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了画图新方式——文本画UML图相关的知识,希望对你有一定的参考价值。


墙裂呼吁:

每个软件工程师都要学会画UML图!

  软件开发过程中需要经常画各种图,流程图,时序图,状态转移图,组件图等等,画图的好处就是化繁为简,提炼本质,帮助自己和他人了解和明确需求和程序的表达。

  小伙伴们都知道怎么用代码来表达一件事情,一段逻辑,但是世界是丰富的,表达的方法也是丰富的,比如有人用音乐表达,有人用绘画表达,有人用PPT表达等等,但是软件开发工程师除了使用代码来表达外,还应该掌握UML模型描述图的方法。试想在评审你负责的模块时,一开始评审人员对你的设计一无所知,突然面对一堆密密麻麻的代码是多么让人崩溃的事情。

  如果你懂得如何绘制UML图,评审人员通过看UML图,例如通过流程图了解你软件的运行逻辑,通过时序图了解软件与内外部其它软件的交互关系,通过状态流图了解模块的状态流转,从多个维度评审你的软件,评审的价值才能体现,效率也会很高。而不是让大家关注的代码本身的问题,例如指针是否释放等等,这些由工具也能检查出来。

  但是图也不是随便乱画的,你画的图需要大家能看得懂,UML图提供了一种标准的用图形表达的方法,掌握了这个方法,你的图就能被大家所接收,也更加专业。

01


UML介绍

  UML (Unified Modeling Language),即统一建模语言,UML提供了多种类型的模型描述图(diagram),首先要注意的是 UML 涉及很多不同的图(模型),其原因是提供从许多不同的角度来审视系统。软件开发流程往往有许多角色参与其中,例如:

 -分析师

-设计师

-程序员

-测试员

-质量保证员

-客户

-技术文件撰稿员

  这些人都对系统的不同方面各持不同兴趣,故在建模时需要考虑不同的细节层次。例如,程序员需要了解系统的设计,并将设计转换为代码,而技术文件撰稿员则对整个系统的行为感兴趣,借以了解产品的功能。UML 提供了极富表达能力的建模语言,好让各角色至少可以从一个 UML 图表得到感兴趣的资讯。

UML 模型描述图

  虽然UML的内涵远不只是这些模型描述图,但是对于入门来说,通过把标准的UML图放进您的工作产品中,精通UML的人员就更加容易加入项目并迅速进入角色。


02

如何画UML模型描述图


  经常画图的人都知道,画好的图如果需要反复修改是非常痛苦的,图越画越大,导致画布不够大;处女座最不能忍受线条不直;要插一个小的组建或流程,挪动原来的图,然后再重新布局……

  一种画图工具,利用写文本,UML图自动生成,经过我多方调查和亲身使用体验,推荐的工具如下:



工具类型

工具名

费用

评价

在线工具

https://sequencediagram.org/


免费

功能简单,只能画时序图,但帮助文档详细


付费软件

PlantUML


免费

帮助文档详细,但需安装软件和依赖库graphviz和JRE


免费软件

EA,291服务器已安装


付费

可以画流程图,时序图,组建图等等,操作难度相当大,帮助文档相当晦涩难懂



_


_


_


_



03

PlantUML的安装



系统要求:WIN10

软件包:PlantUML.jar

依赖软件:graphviz-2.38,JRE


双击PlantUML.jar ,运行界面如下图:

画图新方式——文本画UML图

  先用任一文本编辑器,编写一段文本,然后将该文本保存到某一目录下,在PlantUML软件上,点击【Change Directory】选择该目录,PlantUML就会自动生成UML图,当文本变化时,PlantUML会自动检测到变化,更新UML图。



04

UML图绘制举例


  下面以绘制时序图举例,介绍PlantUML绘制UML图的方法

  首先,你需要了解时序图的各种定义,根据UML2.5,时序图的定义如下图,你需要了解生命线,同步message,异步message,返回message,分支(类似于if/else)等等表达方法。

画图新方式——文本画UML图
画图新方式——文本画UML图
画图新方式——文本画UML图

时序图Node和Path定义

  然后,你打开PlantUML 帮助文档,找到你需要画的Node类型和Path类型,编写文本。

 当你需要增加1个节点时,只要修改文本内容,图自动更新


05

相关Link


网上有很多UML 图的介绍,大家可以自行查阅。

                                                                                Editor:Mingyue Tang


往期图文





以上是关于画图新方式——文本画UML图的主要内容,如果未能解决你的问题,请参考以下文章

[UML] 时序图介绍 —— 程序员(灵魂画手)必备画图技能之一

[UML] 类图介绍 —— 程序员(灵魂画手)必备画图技能之一

[UML] 类图介绍 —— 程序员(灵魂画手)必备画图技能之一

VC++项目的UML类图怎么画 ?

[UML] 流程图介绍 —— 程序员(灵魂画手)必备画图技能之一

UML、Visio、powerDesigner、rose 高分酬谢。