1、背景
期望在Android Sudio 上找到可以根据代码快速生成UML图的插件,以提高效率。
适用于
1)方案设计的接口输出,可以先写空的接口,然后直接生成UML图。
2)已经开发过的需求进行后期的设计文档输出,直接针对当前代码生成UML图
2、期望
1)支持通过当前代码快速生成UML图。
2)支持可以选择部份代码生成UML图。
3)支持代码修改时,可以自动更新到UML图上。
4)支持图形界面调整或者操作UML图。
将目前了解的插件介绍下,后续有更优的方案时可以补充上来。
目前优先推荐 SmpleUMLLCE,然后才是 PlantUML integration + PlantUML Parser
优点 | 缺点 | |
SmpleUMLLCE | 1、根据选择的代码生成UML图 2、修改代码时,UML图会自动更新 3、图形化操作,可以调整UML布局,简单易上手,同时还提供其他功能,如关系线是否显示等。 | 1、插件已经不更新了。 2、样式有点旧,美观有所不足,包括如果没有构造函数,也会有所提示。 |
PlantUML integration + PlantUML Parser | 1、根据选择的代码生成UML图 2、可以手动修UML代码 | 1、代码有变化时,UML图不会自动更新,只能重新生成。 2、UML图的布局无法调整,从左往右一直排列 |
SketchIt | 根据当前代码生成UML图 | 1、强制自动生成,像我们的项目那么多的代码,SketchIt 运行一次,AS直接卡死。 2、无法部份选中,只有在Tools 下能找到。 3、一个文件夹一个UML图。 |
Code iris | 1、Create Graph 后弹框选择,居然只能选择Module,无法细分到某个类,即使你是在类上右键点击选中的。 2、生成的是UML类图,没有类的接口、参数。 |
3、插件介绍
3.1 PlantUML
PlantUML是可已通过编写代码的形式生产UML图,具体可以访问 开源工具,使用简单的文字描述画UML图。
3.1.1 PlantUML integration
PlantUML integration 其实就是最基本的PlantUML插件,右键New 中 会有UML file 可以创建,然后后面by yourself.
使用过程种遇到了两个问题
1)UML图无法生成
需要手动下载、安装Graphviz,设置到PlantUML Settings 里,见下图
2、图片放大后,右边被截断。虽然缩小可以看得见,但是保存图片后看得很模糊。
手动下载 plantuml.jar,命令生成图片java -DPLANTUML_LIMIT_SIZE=8192 -jar plantuml.jar -charset UTF-8 E:\doc\index.puml
暂时没有发现更好的方案了。
此外还有缺点:
1)要调整只能在PlantUML的代码中调整 ,对于不熟练UML的使用起来不方便。
2)生成UML图是固定的,无法在图形化界面调整位置。长条式,如下
3)只能自已编辑UML代码来生成UML图,无法快速生成。
前面两个问题,如果插件是基于此开发的,暂时没有方案可以解决。而第三个问题,则是后面的插件期望解决的。
3.1.2 PlantUML Parser
看样子像是个人开发者,星数还行,达到可用状态。需要依赖 PlantUML integration ,如果单独下载这个也会有提示要求下载PlantUML integration 。
如果只需要部份类时,同时选中右键生成即可。
目前缺点还是很明显:代码修改时,UML 并不会自动刷新,只有覆盖生成。如果涉及到代码比较分散,每次都要一一选中,也会比较麻烦
3.1.1 SketchIt
可以自动升成UML图。
缺点
1、强制自动生成,像我们的项目那么多的代码,SketchIt 运行一次,AS直接卡死。
2、无法部份选中,只有在Tools 下能找到。
3、一个文件夹一个UML图。如果说第一个问题可以自已创建个工程来克服,但是包与包之前的联系呢?
也有可能是我使用的方法不对,但没找到有设置的地方。
3.2 SmpleUML
12 年前的插件的,但是反而是比较好用的插件。
要注意的是下载的是simpleUMLLCE,第一次下载了simpleUML,一样的界面,但是无法操作。
下载后,在根目录下,右键新建一个UML项目(如下图),会自动生成当前类的UML图,后续如果有新增的类,可以右键add 到指定的项目中。
也可以一开始就指定部份的类,右键选中文件即可。
第一次生成
展开(上图红框按键),会自动将类平铺(如下图)
Show Bridview (上图红框)缩略图因为这个没办法直接通过滚轮直接放大缩小。
其他功能在右上角和选中类右键后可自行研究。
优点:
1)图形化操作,更易上手,图形化界面功能强大(需要自已去探索了,比如:对于系统源码的类,UML图点击下,就可以生成对象了)
2)代码更新时,UML也可以自动更新
缺点:
1)无法直接放大或缩小
2)就个人而言,界面美观度需要加强,虽然可以换个皮肤,而且这个插件已经不更新了。
3.3 Code iris
也是网上推荐的,但是目前体验最差的一个吧,也可能还是没有掌握操作方法吧。
一样右键-》 Create Graph
直接上缺点
1、Create Graph 后弹框选择,居然只能选择Module,无法细分到某个类,即使你是在类上右键点击选中的。
2、生成的是UML类图,没有类的接口、参数。
直接弃疗。图就不上了