画图新方式——文本画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 ,运行界面如下图:
先用任一文本编辑器,编写一段文本,然后将该文本保存到某一目录下,在PlantUML软件上,点击【Change Directory】选择该目录,PlantUML就会自动生成UML图,当文本变化时,PlantUML会自动检测到变化,更新UML图。
04
UML图绘制举例
下面以绘制时序图举例,介绍PlantUML绘制UML图的方法
首先,你需要了解时序图的各种定义,根据UML2.5,时序图的定义如下图,你需要了解生命线,同步message,异步message,返回message,分支(类似于if/else)等等表达方法。
时序图Node和Path定义
然后,你打开PlantUML 帮助文档,找到你需要画的Node类型和Path类型,编写文本。
当你需要增加1个节点时,只要修改文本内容,图自动更新
05
相关Link
网上有很多UML 图的介绍,大家可以自行查阅。
Editor:Mingyue Tang
往期图文
以上是关于画图新方式——文本画UML图的主要内容,如果未能解决你的问题,请参考以下文章
[UML] 时序图介绍 —— 程序员(灵魂画手)必备画图技能之一
[UML] 类图介绍 —— 程序员(灵魂画手)必备画图技能之一
[UML] 类图介绍 —— 程序员(灵魂画手)必备画图技能之一