Java类和方法的依赖关系映射

Java类和方法的依赖关系映射,java,dependencies,analyzer,Java,Dependencies,Analyzer,我有一个Java项目,我已经做了一段时间了。设计一开始相当不错,但随着变化,它慢慢退化了。我正在寻找某种工具来分析这个项目。如果有一个不同类/方法的依赖关系的映射就太好了。我觉得某些方法只是为了实现一个非常具体的目标。我想消除不必要的代码,使我的设计更好 任何建议都很好!谢谢 看一看Apache会有所帮助,特别是在类和方法之间依赖关系的图形表示方面。这不是一个完美的答案,但它可能有助于快速检查。如果您正在使用Eclipse进行开发,则可以通过选择方法的名称并按Ctrl-Alt-H(或右键单击并选

我有一个Java项目,我已经做了一段时间了。设计一开始相当不错,但随着变化,它慢慢退化了。我正在寻找某种工具来分析这个项目。如果有一个不同类/方法的依赖关系的映射就太好了。我觉得某些方法只是为了实现一个非常具体的目标。我想消除不必要的代码,使我的设计更好


任何建议都很好!谢谢

看一看Apache

会有所帮助,特别是在类和方法之间依赖关系的图形表示方面。

这不是一个完美的答案,但它可能有助于快速检查。如果您正在使用Eclipse进行开发,则可以通过选择方法的名称并按Ctrl-Alt-H(或右键单击并选择“打开调用层次结构”)来查看该方法的调用图。您可以使用打开的视图查看调用该方法的内容以及该方法调用的方法。

您可能需要签出。它是专门为解决您面临的问题而开发的

作为一名顾问,我经常被扔进一个庞大的遗留代码库中。通常,我要做的第一件事就是在它上运行,试图了解代码库和所有依赖项


祝你好运。

有几种很好的Java分析器。到目前为止,我一直在玩PMD,运气不错。

你也可以试试。这对解决这些问题和许多其他问题有很大帮助。

根据系统的大小,有许多工具可用于解决这些问题。其中最重要的是Structure101,一种商业产品

我在一些大型项目中使用过这个工具——它很复杂,但很容易成为我所知道的最全面的工具。它可以描绘出一个巨大的架构,让你解开一些复杂的东西。它有一个姐妹产品,名为Structure101,您可以在其中执行假设情景

Stan4j是一个很好的竞争对手。它远没有那么完整,但在某些方面做得更好,特别是在类级别显示依赖项上下文

(我拥有这两种产品,但与其中任何一种都没有商业联系)

查看复杂依赖关系的另一种方法,特别是在项目级别,是依赖关系结构矩阵(DSM)。尽管S101可以执行DSM,但Lattix有更多的支持—它可以处理Spring和Hibernate依赖关系:

(我没有使用lattix——它们让评估变得太难,这很奇怪,因为我在一些非常大的系统上工作)

如果您的软件相当小,并且您对简单类级别更感兴趣,那么类似Architexa的东西可能会帮助您更好地理解结构:

最后,如果您想自己动手,可以使用ASM轻松实现这一点。它甚至包括一个在包级别跟踪的依赖关系矩阵工具:

(有关nify依赖关系矩阵,请参见下一页)

这里是它的来源-它非常简单,但很聪明。它使用字节码。
我们使用这个免费的小项目


Ivy是一个不错的依赖关系管理者,但这并没有回答他的问题,他正在寻找一种可以分析他现有项目依赖关系的方法。实际上,这很有帮助。谢谢很多很棒的答案!谢谢你的帮助!这有点不相关,但是UML工具Umbrello将生成代码的UML图。这在当时对我很有帮助。由于您最近的评论,我刚刚发现了这一点,但为了将来的参考,您可以查看Structure101。JDepend只提供包之间的依赖关系,而不提供类和方法