(转)Eclipse 生成类图、时序图UML逆向插件
在调试源码、学习总结时如果能有清晰的类图、时序图在手边,那么必将事半功倍。今天总结下个人摸索这款工具的坑,希望能让大家在安装使用时少走弯路。
首先我们需要的是一款能够逆向的插件,逆向是指能够根据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
![](http://upload-images.jianshu.io/upload_images/11183270-d6a495fcf097eb34.png?imageMogr2/auto-orient/strip|imageView2/2/w/732/format/webp)
弹出框如下:
![](http://upload-images.jianshu.io/upload_images/11183270-f3fb46d9b42d1d34.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200/format/webp)
点击add -> 输入update site地址(name随便填) -> ok
然后出现需要安装的套件,Select All -> Next,然后一步一步安装,这个地址没有被墙,稍微有点大,安装速度应该还可以。
![](http://upload-images.jianshu.io/upload_images/11183270-d2c45651df5d7327.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200/format/webp)
第二步:安装AmaterasUML
AmaterasUML update site: https://takezoe.github.io/amateras-update-site/
AmaterasUML搬到了github,所以下载速度也很快。网上老版本地址很多都不可用。
安装步骤参考第一步;
第三步:使用AmaterasUML
顺利的话,现在重启eclipse就在file -> new -> other里面就可以看到AmaterasUML了。如果没有,应该是哪里出问题了,可以留言探讨。
![](http://upload-images.jianshu.io/upload_images/11183270-db0a76b960ca7062.png?imageMogr2/auto-orient/strip|imageView2/2/w/1050/format/webp)
AmaterasUML提供了活动图、类图、时序图、用例图。这里介绍类图和时序图的使用。
Class Diagram 类图:
类图比较简单,我们新建一个类图文件classDiagram.cld,
![](http://upload-images.jianshu.io/upload_images/11183270-f9e1cb0c6dc32f43.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200/format/webp)
在这个视图下,我们直接把需要展现的类从左侧拖过去即可,需要注意的是,Link with Editor一定要关掉,如下图:
![](http://upload-images.jianshu.io/upload_images/11183270-3cc258647a0e8d2f.png?imageMogr2/auto-orient/strip|imageView2/2/w/592/format/webp)
简单拖拽,一个简单的类图就完成了。
![](http://upload-images.jianshu.io/upload_images/11183270-1be262632023baed.png?imageMogr2/auto-orient/strip|imageView2/2/w/332/format/webp)
右击元素可以对其编辑、排版等,详细操作自由去探索吧。
Sequence Diagram时序图
时序图如何生成?逆向时序图由Stack Trace Sample视图生成。
首先window -> show view -> other,调出所有view
![](http://upload-images.jianshu.io/upload_images/11183270-2132a24c63968701.png?imageMogr2/auto-orient/strip|imageView2/2/w/896/format/webp)
选择Stack Trace Sample -> ok
![](http://upload-images.jianshu.io/upload_images/11183270-5047031862e18445.png?imageMogr2/auto-orient/strip|imageView2/2/w/594/format/webp)
出现如下视图:
![](http://upload-images.jianshu.io/upload_images/11183270-1f9f442575a44a8d.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200/format/webp)
逆向时序图就是由此view生成,这里需要准备堆栈信息,复制进Stack Trace Sample窗口。
![](http://upload-images.jianshu.io/upload_images/11183270-59aeaa93bf2826f9.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200/format/webp)
堆栈信息复制进去以后,点击窗口右上角的那个小按钮(不同版本可能不太一样)直接生成时序图,然后弹出窗口选择需要保存时序图的位置,如果没有弹窗,可能是堆栈信息格式有误。
![](http://upload-images.jianshu.io/upload_images/11183270-e82879a1e7673e1e.png?imageMogr2/auto-orient/strip|imageView2/2/w/688/format/webp)
打开保存的时序图如下:
![](http://upload-images.jianshu.io/upload_images/11183270-f7bfdb4c030f6530.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200/format/webp)
是不是很完美? 哈哈 还是不错。
有了堆栈信息,产生时序图很方便,目前我的堆栈信息是通过自定义异常抛出的,还在寻找更好的生成方式。
这就是今天总结的eclipse UML逆向插件,希望对大家有所帮助,如果大家有更好的欢迎推荐。
本文转自:
作者:徐志毅
链接:https://www.jianshu.com/p/6239c916fc83
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。