2012-02-10 135 views
0

对于一个学生项目,我需要扩展一个Java项目。 问题是这个项目没有太多的评论,很难分析它。 我正在寻找一些东西来生成一个类图,如果可能的话,还有一个序列图。分析Java源代码的工具

我已经试过umbrello(但是有一些大类错误)和agilej,但是该项目有很多包和子包,我没有找到如何递归生成图。

是否有其他工具可以做到这一点?

预先感谢您。

+0

如果你使用eclipse然后看看这里:http://stackoverflow.com/questions/1120032/what-is-your-favorite-automatic-class-diagram-generator-for-eclipse – yurib 2012-02-10 15:09:42

+0

你试过的ArgoUML? – Joni 2012-02-10 15:14:51

回答

0

另一个eclipse插件叫做'metrics',你可以在sourceforge上找到它。它可以以文本和图形形式提供一组关于Java项目的信息。

1

在Eclipse中,您可以选择将包演示文稿设置为Flat或Hierarchical。在平面模式下,您可以在src /文件夹下看到每个软件包的完整名称,在分层模式下,您必须展开以查看src/com/mypackage等。在AgileJ中,当您处于平面模式时(默认模式为Eclipse),然后无论你从包资源管理器中拖出什么东西,无论是项目,文件夹,库,Java源文件,类还是其他任何东西,它都会通过所有权树进行缓冲并添加所发现的类,就像您期望的那样。

你在你的问题中描述的异常问题 - 不是通过子包递归 - 当你使用层级模式下的包资源管理器时发生。在这种情况下,发生的事情是类图只接收到一个包的下落通知 - 但它无法知道包资源管理器的包呈现模式,或者即使拖动源自包explorer。

所以,如果你真的想通过软件包层次递减,并且出于某种原因不想多次选择它们与平面模式下的包资源管理器,那么最简单的事情就是切换到资源透视图并在Navigator视图中找到要包含的所有包的父级文件夹,然后将其拖到类图上。这将启动对子类的递归搜索。

请注意,如果拖拽足够多的类(确切的阈值是可配置的),那么它会提供过滤它们 - 例如,您可能想要过滤掉单元测试或生成的类。如果你尝试添加大量的类(同样,它是可配置的,但是默认情况下它是200),那么你将被阻塞 - 但是一个包含200个类的类图有什么意义呢?只会导致不可读的类图。