在调试源码、学习总结时如果能有清晰的类图、时序图在手边,那么必将事半功倍。今天总结下个人摸索这款工具的坑,希望能让大家在安装使用时少走弯路。
首先我们需要的是一款能够逆向的插件,逆向是指能够根据java代码自动生成类图或时序图。当然,很快我遍找到了很多款可用的插件列表。然而在安装过程中却历经坎坷。
主要原因如下:
第一、各种被墙;
第二、mac版,相对来说坑更多;
第三、网上帖子年代久远、大多项目地址已经搬迁;
第四、插件使用介绍不多,装好后仍难使用;
第五、没有安装GEF,导致插件出不来;
网上有很多中插件,本文不一一罗列,只讲亲测可用的AmaterasUML。
第一步:安装GEF
提供两个版本的update site地址,如果eclipse版本较高(5.0.0 Oxygen),下载GEF5,否则下载 GEF4;
GEF5 update site: http://download.eclipse.org/tools/gef/updates/releases
GEF4 update site: http://download.eclipse.org/tools/gef/gef4/updates/releases
补充一下update site的安装方式:
打开eclispe -> help -> Install New Software
弹出框如下:
点击add -> 输入update site地址(name随便填) -> ok
然后出现需要安装的套件,Select All -> Next,然后一步一步安装,这个地址没有被墙,稍微有点大,安装速度应该还可以。
第二步:安装AmaterasUML
AmaterasUML update site: https://takezoe.github.io/amateras-update-site/
AmaterasUML搬到了github,所以下载速度也很快。网上老版本地址很多都不可用。
安装步骤参考第一步;
第三步:使用AmaterasUML
顺利的话,现在重启eclipse就在file -> new -> other里面就可以看到AmaterasUML了。如果没有,应该是哪里出问题了,可以留言探讨。
AmaterasUML提供了活动图、类图、时序图、用例图。这里介绍类图和时序图的使用。
Class Diagram 类图:
类图比较简单,我们新建一个类图文件classDiagram.cld,
在这个视图下,我们直接把需要展现的类从左侧拖过去即可,需要注意的是,Link with Editor一定要关掉,如下图:
简单拖拽,一个简单的类图就完成了。
右击元素可以对其编辑、排版等,详细操作自由去探索吧。
Sequence Diagram时序图
时序图如何生成?逆向时序图由Stack Trace Sample视图生成。
首先window -> show view -> other,调出所有view
选择Stack Trace Sample -> ok
出现如下视图:
逆向时序图就是由此view生成,这里需要准备堆栈信息,复制进Stack Trace Sample窗口。
堆栈信息复制进去以后,点击窗口右上角的那个小按钮(不同版本可能不太一样)直接生成时序图,然后弹出窗口选择需要保存时序图的位置,如果没有弹窗,可能是堆栈信息格式有误。
打开保存的时序图如下:
是不是很完美? 哈哈 还是不错。
有了堆栈信息,产生时序图很方便,目前我的堆栈信息是通过自定义异常抛出的,还在寻找更好的生成方式。