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

简介: 今天在看一个模拟器的源码,一个包里有多个类,一个类里又有多个属性和方法,如果按顺序看下来,不仅不能对整个模拟器的框架形成一个大致的认识,而且只会越看越混乱,所以,想到有没有什么工具可以将这些个类以及它们之间的依赖关系转化成UML图,这样一看图就能一目了然。

今天在看一个模拟器的源码,一个包里有多个类,一个类里又有多个属性和方法,如果按顺序看下来,不仅不能对整个模拟器的框架形成一个大致的认识,而且只会越看越混乱,所以,想到有没有什么工具可以将这些个类以及它们之间的依赖关系转化成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/ 

目录
相关文章
|
3天前
|
Java
探索Java世界的奇妙工具——运算符与表达式运算符
探索Java世界的奇妙工具——运算符与表达式运算符
5 0
|
13天前
|
算法 安全 Java
性能工具之 JMeter 自定义 Java Sampler 支持国密 SM2 算法
【4月更文挑战第28天】性能工具之 JMeter 自定义 Java Sampler 支持国密 SM2 算法
30 1
性能工具之 JMeter 自定义 Java Sampler 支持国密 SM2 算法
|
2天前
|
移动开发 前端开发 Java
STS里的java 工程项目名称修改和目录设置成源代码
STS里的java 工程项目名称修改和目录设置成源代码
|
2天前
|
JavaScript 前端开发 Java
java项目的打包将vue放到.jar里面部署
java项目的打包将vue放到.jar里面部署
|
5天前
|
监控 Java Maven
揭秘Java Agent技术:解锁Java工具开发的新境界
作为JDK提供的关键机制,Java Agent技术不仅为Java工具的开发者提供了一个强大的框架,还为性能监控、故障诊断和动态代码修改等领域带来了革命性的变革。本文旨在全面解析Java Agent技术的应用场景以及实现方式,特别是静态加载模式和动态加载模式这两种关键模式。
27 0
|
5天前
|
缓存 安全 前端开发
来聊聊Java项目分层规范
本文讨论了Java项目的分层规范,强调了分层的重要性以避免代码不易扩展和职责边界模糊。作者分享了阿里提出的六层分层模型(开放接口层、终端显示层、Web层、Service层、Manager层、Mapper层)以及对应的领域模型(DO、DTO、VO、query)。同时,提出了简化版的分层规约,以提高开发效率。作者是CSDN Java博客专家,维护者之一的Java Guide项目,并提供了个人项目结构示例。文章鼓励读者关注其公众号以获取更多交流机会。
20 4
|
6天前
|
Java
springboot项目出现Exception in thread “main“ java.lang.NoClassDefFoundError: javax/servlet/Filter
springboot项目出现Exception in thread “main“ java.lang.NoClassDefFoundError: javax/servlet/Filter
12 0
|
10天前
|
Java Maven
Maven 构建 Java 项目
使用Maven的`maven-archetype-quickstart`插件在C:\MVN下创建Java应用,命令包括`groupId`, `artifactId`, 和 `archetypeArtifactId`参数。生成的项目包含src/main/java和src/test/java目录,分别用于存放源代码和测试代码,还有src/main/resources用于资源文件。默认提供App.java主类和AppTest.java测试类。按照预设结构组织文件,Maven将自动管理构建过程。
|
13天前
|
Java
IDEA云行项目提示Error: java: OutOfMemoryError
IDEA云行项目提示Error: java: OutOfMemoryError
|
13天前
|
Java API 数据安全/隐私保护
【亮剑】如何在Java项目中结合Spring框架实现邮件发送功能
【4月更文挑战第30天】本文介绍了如何在Java项目中结合Spring框架实现邮件发送功能。首先,需在`pom.xml`添加Spring和JavaMail依赖。然后,在`applicationContext.xml`配置邮件发送器,包括SMTP服务器信息。接着,创建一个使用依赖注入的`EmailService`类,通过`JavaMailSender`发送邮件。最后,调用`EmailService`的`sendSimpleEmail`方法即可发送邮件。最佳实践包括:使用配置管理敏感信息,利用`MimeMessage`构造复杂邮件,异常处理和日志记录,以及在大量发送时考虑使用邮件队列。