我有一个我已经工作了一段时间的Java项目。设计开始时相当不错,但随着变化而慢慢退化。我正在寻找一种可以分析项目的工具。拥有不同类/方法的依赖关系的地图真的很不错。我觉得某些方法只是为了实现一个非常具体的目标。我想消除不必要的代码并使我的设计更好。
任何建议都会很棒!谢谢!
答案 0 :(得分:5)
答案 1 :(得分:2)
根据系统的大小,可以使用许多工具。他们的祖父都是Structure101,一种商业产品。
我在一些大型项目中使用过它 - 它很复杂但很容易是我所知道的所有工具中最全面的。它可以绘制一个巨大的架构,并让你解开一些复杂的东西。它有一个名为reStructure101的姐妹产品,您可以在其中进行假设情景。
一个不错的竞争对手是Stan4j。它远没有那么完整,但做得更好一些,尤其是在班级一级显示依赖关系。
(我拥有这两种产品,但两者都没有商业联系)
查看复杂依赖关系的另一种方法,特别是在项目级别,是依赖关系结构矩阵(DSM)。虽然S101可以做DSM,但Lattix有更多支持 - 它可以处理Spring和Hibernate依赖:
(我没有使用过lattix - 它们很难评估它,这很奇怪,因为我在一些非常大系统上工作)
如果您的软件相当小,并且您对简单的课程级别更感兴趣,那么像Architexa这样的东西可以帮助您更好地理解结构:
最后,如果您想自己动手,可以使用ASM轻松完成此操作。它甚至包括一个依赖矩阵工具,它在包级别跟踪:
http://asm.ow2.org/doc/tutorial-asm-2.0.html (参见nify依赖矩阵的页面)
这是它的来源 - 它非常简单,但很聪明。它可以解决字节码问题。 http://cvs.forge.objectweb.org/cgi-bin/viewcvs.cgi/asm/asm/examples/dependencies/src/org/objectweb/asm/depend/
答案 2 :(得分:1)
Doxygen可以提供帮助,尤其是对类和方法之间依赖关系的图形表示。
答案 3 :(得分:1)
这不是一个完美的答案,但它可能有助于快速检查。如果您使用Eclipse进行开发,则可以通过选择其名称并按Ctrl-Alt-H(或右键单击并选择“打开调用层次结构”)来查看方法的调用图。您可以使用打开的视图来查看调用方法的内容以及方法调用的方法。
答案 4 :(得分:1)
有几种优秀的Java分析器。到目前为止,我一直在玩PMD并且运气不错。
答案 5 :(得分:1)
您可能还想尝试FindBugs。这些以及许多其他问题都有很多帮助。
答案 6 :(得分:0)
我们使用这个免费的小项目
答案 7 :(得分:-1)
查看Apache Ivy