原文链接:http://www.cnblogs.com/bakari/p/3561207.html

今天在看一个模拟器的源码,一个包里有多个类,一个类里又有多个属性和方法,如果按顺序看下来,不仅不能对整个模拟器的框架形成一个大致的认识,而且只会越看越混乱,所以,想到有没有什么工具可以将这些个类以及它们之间的依赖关系转化成UML图,这样一看图就能一目了然。立刻搜了看,没想到这样的工具一大堆,下面罗列最经典的6款。参考:http://www.csdn.net/article/2012-09-12/2809862-6-java-to-uml-tools

1、Eclipse MDT

模型开发工具(MDT)提供了一些示范性工具,在元模型的基础上的发展模式。它支持创建UML图,从代码的逆向工程到UML图等等。

2、ArgoUML

ArgoUML是一个领先的开源UML模型工具,它支持UML 1.4的所有标准,可以运行于任何Java平台上。

3、ModelGoon

ModelGoon是一个Java包的依赖分析的Eclipse插件,用来显示项目中Java包与包之间的依赖关系,如下图所示:

4、Green

Green是Eclipse的一个插件,是一种先进的还简单的UML类图的工具,主要学生开发使用。它是live round-tripping编辑器,因此可以很容易地从一个UML类图生成Java代码。它有很好的可扩展性。

5、Minjava

Minjava是一个Java反向工程软件,可帮助理解已存在一些Java软件的架构和行为。

6、AmaterasUML

AmaterasUML可以对大工程的支持,上面所列的一些插件像Green,貌似不支持大工程,如果出现大的工程文件,通常会出现崩溃的情况,而且形成的整个UML图显得混乱无比。

由于我在eclipse上看源码,所以,装了两个适用于eclipse的插件,Green和AmaterasUML,下面简单谈谈安装和使用感受。

1、Green安装和使用

详见:http://wenku.baidu.com/view/7ec0b519ff00bed5b9f31d1b.html

安装有在线和离线安装,离线就是下载Green安装包,然后将里面的插件copy到eclipse的插件文件夹下即可,这种方法现在已经不适用了,其官网上是这么说的:

green will now be distributed via update site instead of direct download. The latest build of green can be found at the following update site: 
http://www.cse.buffalo.edu/faculty/alphonce/green
To install or update green, go to Help->Install New Software... Type in (or copy/paste) the above site URL and click Add. After the update site has been added, you can install from that same dialog.

所以,按照它的说法,使用在线安装就好了,注意:在装之前需要安装GEF插件,新版的eclipse貌似已经安装,4.0版本之前的需要手动安装。

安装好之后,重启,在任何类名上右击可以看见相关选项:Green UML,点击即可获得相关类的UML图:如下的显示效果:

2、AmaterasUML的安装于使用

如果对于小工程项目,即一个类或接口所包含的方法和属性不是很多,用Green是最好的选择,但是对于大工程项目,这个插件要么无法加载各个类,有时还崩溃,要么可以加载但是很混乱,需要自己人工调,非常麻烦,所以,对比了之后,发现AmaterasUML是最合适的,ModelGoon也很好,但安装的时候需要使用代理,这个在Linux上可以做,具体方法可以参考:http://blog.sina.com.cn/s/blog_6e10ddff0101eixf.html 。但是在windows上好像不行,从上面可以看出,这个插件比AmaterasUML要好,它可以显示各个包之间的依赖关系,也许AmaterasUML也可以,但是我到现在还没发现,具体安装和Green一样也有两种方法,下载地址和使用方法请见其官网:http://amateras.sourceforge.jp/cgi-bin/fswiki_en/wiki.cgi?page=AmaterasUML

下面是其显示效果,可以直接拖拽,如何拖拽,间上面的官网链接。

下面是网友遇到的问题,也许你也会遇到,先记下:

我刚下载了Green UML的3.4版本,把它配置到Eclipse 3.4的插件中,对代码进行UML模型转换时,发现得到的图形只有每个类的图形,而没有类之间的关系(依赖、泛化、实现等),而且选用板上也只有类、接口、枚举、注释这几种,没有依赖、泛化、实现等,而我看网上的介绍中应该是可以显示关系的,请问各位知道这是怎么回事吗?
 
Green UML的3.4 要和 GEF 配合用。您是不是只装了Green 没装GEF?
而且麻烦的地方在于 Green和GEF的版本还必须匹配。比如Green3.5要配GEF3.4
这是GEF3.4的链接
http://archive.eclipse.org/tools/gef/downloads/drops/R-3.4.0-200806091334/

stay hungry stay foolish ----jobs 希望多多烧香!

【转】Java 项目UML反向工程转化工具的更多相关文章

  1. Java 项目UML反向工程转化工具

    今天在看一个模拟器的源码,一个包里有多个类,一个类里又有多个属性和方法,如果按顺序看下来,不仅不能对整个模拟器的框架形成一个大致的认识,而且只会越看越混乱,所以,想到有没有什么工具可以将这些个类以及它 ...

  2. MyEclipse中将普通Java项目convert(转化)为Maven项目

    在MyEclipse10中将Maven项目转成普通Java项目后,想将Java项目转成Maven项目,结果一下子傻眼了.根本就没有攻略中提到的config标签.仔细一看,喵咪的,人家用的是Eclips ...

  3. java项目热加载工具jrebel

    flask有热加载的功能,修为代码后,自动生效. java项目也有类似的功能,不过需要使用收费的插件jrebel 提供一个免费的注册服务器:http://139.199.89.239:1008/884 ...

  4. Java项目案例之---常用工具类练习

    常用工具类练习 1. 请根据控制台输入的特定日期格式拆分日期,如:请输入一个日期(格式如:**月**日****年),经过处理得到:****年**月**日 import java.util.Scanne ...

  5. Java基础学习总结(70)——开发Java项目常用的工具汇总

    要想全面了解java开发工具,我们首先需要先了解一下java程序的开发过程,通过这个过程我们能够了解到java开发都需要用到那些工具. 首先我们先了解完整项目开发过程,如图所示: 从上图中我们能看到一 ...

  6. Jenkins+Gradle+Sonar进行Java项目代码分析

    Jenkins+Maven+Sonar与Jenkins+Gradle+Sonar配置方法很相似,区别就是Java项目所用的编译工具不同,一个是maven,一个是gradle 使用maven编译工具的可 ...

  7. 将 Maven生成的java项目转化为支持 Eclipse IDE的项目

    转自: http://www.xuebuyuan.com/1297046.html 将 Maven生成的java项目转化为支持 Eclipse IDE的项目   在前一篇文章中,我们使用maven创建 ...

  8. Mac笔记本中是用Idea开发工具在Java项目中调用python脚本遇到的环境变量问题解决

    问题描述: mac笔记本本身会自带几个python版本,比如python2.7版本,我没有改动mac默认的python版本,只是安装了python3.7版本. 使用Pycharm开发Python项目没 ...

  9. Java项目工程化之项目构建工具Maven

    欢迎查看Java开发之上帝之眼系列教程,如果您正在为Java后端庞大的体系所困扰,如果您正在为各种繁出不穷的技术和各种框架所迷茫,那么本系列文章将带您窥探Java庞大的体系.本系列教程希望您能站在上帝 ...

随机推荐

  1. 省级联动(使用ajax实现)

    在博客园学习了很多实用的东西,现在该慢慢开始自己写写博客文章, 由于本人水平有限,刚走出校园的小菜鸟,另外,文章在表述和代码方面如有不妥之处,欢迎批评指正.留下你 的脚印,欢迎评论! 有什么问题,可以 ...

  2. JavaScript目录菜单滚动反显组件的实现

    JavaScript目录菜单滚动反显组件,有以下两个特点 每个导航菜单项(nav)对应页面一个内容区域(content) 滚动页面到特定内容区域(content)时,对应的菜单会自动切换,一般会添加一 ...

  3. HTTP 请求报文 响应报文

    引言 超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议.所有的WWW文件都必须遵守这个标准.设计HTTP最初的目的是为了提供一种发 ...

  4. Sql server2012连接Sql server 2008时出现的问题:已成功与服务器建立连接,但在登陆过程中发生错误。(provider:SSL Provider,error:0-接收到的消息异常,或格式不正确。)

    以前连接是正常的,就这两天连不上了.(没有耐心的直接看末尾解决办法) 错误消息如下: 1.尝试读取或写入受保护的内存.这通常指示其他内存已损坏.(System.Data) 2.已成功与服务器建立连接, ...

  5. [译] libvirt 虚机的生命周期 (Libvirt Virtual Machine Lifecycle)

    翻译自:http://wiki.libvirt.org/page/VM_lifecycle   这篇文章描述虚机生命周期的基本概念.其目的在于在一篇文章中提供完整的关于虚机创建.运行.停止.迁移和删除 ...

  6. 【2016-10-13】【坚持学习】【Day4】【virtual 虚函数】

    定义一个基类,有一个虚函数 定义三个子类,分别继承,重写,New,这个虚函数   abstract class Test { public virtual void Prinf() { Console ...

  7. ZBrush中怎样对遮罩进行反选

    通过对ZBrush的学习,我们知道了如何手动创建遮罩,手动创建遮罩相对来说是最简单有效的方法,在某些特定的使用场合会起到事半功倍的效果.创建遮罩我们可以结合Ctrl键在物体保持编辑的状态下来执行,您可 ...

  8. CF722D. Generating Sets[贪心 STL]

    D. Generating Sets time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  9. 安装VS2013,可是电脑C盘没空间了,今天早上整理了下

    安装VS2013,可是电脑C盘没空间了,今天早上整理了下 安装VS2013,要求C盘有11G的空闲空间,不然不让装, 咋天下好了安装文件,6.89G 今天早上一来, 首先把 一些软件删掉,装到了D盘, ...

  10. [No00001C]不想背单词患者的福音!-快来定制你的个性词包-不想记、记不牢,这可怎么办?

    肯定有朋友觉得我像是在给百词斩做广告一样,其实我可没拿到他们一分钱哦.不过好东西就是要分享,这才是互联网最有价值的地方. 点击下载百词斩