JDepend

一,什么是JDepend?

    JDepend,代码包结构分析工具(网友说法)。下面主要介绍一下官方的解释。JDepend一个开放源代码的可以用来评价Java程序质量的优秀工具,它遍历Java Class的文件目录,以Java包(package)为单位,为每一个包或者类自动生成包的依赖程度,稳定性,可靠度等的评价报告,根据这些报告,我们可以得到包或类之间的依赖关系,并分析出包的稳定程度,抽象程度,是否存在循环依赖关系等。我们可以根据JDepend给出的报告数据,分析出我们的包是否是可靠的,稳定的,健壮的包,是否符合面向对象的设计原则。

二,JDepend特性

    一个具有稳定性,扩展性,可维护性的软件系统要求系统设计遵循面向对象的设计原则。一般来说,面向对象的设计原则要求满足高聚合,低耦合,禁止循环依赖等基本原则。如果存在包与面向对象的设计原则有抵触,则有必要对这些包加以重新设计或抽象。

三,JDepend的主要功能

    JDepend生成的Java包的质量评价报告主要包括:

    (1)Number of Classes and Interfaces:实现类与抽象接口的数目。面向对象的设计原则之一The Stable Abstractions Principle (SAP):稳定抽象等价原则,指出了包的稳定程度与它的抽象程度(接口的数目)成正比,也就是说,一个包内包含的接口所占的比重越大,这个包就越稳定。

    (2)Abstractness (A):包的抽象度。指一个包内包含的抽象类或接口占整个包中的类的比重。该值处于0,1之间,若A=0,说明包内不包含任何抽象类或接口;若A=1,说明包内全部是抽象类或接口。包的抽象度与稳定性之间的关系上面已经作了说明。

    (3)Afferent Couplings (Ca):向心耦合。依赖该包(包含的类)的外部包(类)的数目(i.e. incoming dependencies),该数值越大,说明该包的担当的职责越大,也就越稳定。

    (4)Efferent Couplings (Ce):离心耦合。被该包依赖的外部包的数目(i.e. outgoing dependencies),该数值越大,说明该包越不独立(因为依赖了别的包),也越不稳定。

    (5)Instability (I):衡量一个包的不稳定程度。I=Ce/(Ce+Ca)。它的值处于[0,1]之间。I=0时说明包是最稳定的,反之I=1则说明包极不稳定。

    (6)Distance from the Main Sequence (D): 该指标主要用来评价包的抽象程度与稳定程度的平衡关系,它可以用二维直线图 A + I = 1 来表示。D=abs((A + I) - 1),也就是说D为一个包的抽象度 + 包的不稳定程度 - 1 的绝对值。一个理想的包是:完全抽象的(A=1),非常稳定的(I=0),这时D=0;或者是完全具体类构成的包(A=0),非常不稳定的 (I=1),这时同样也有D=0。D=0说明包的抽象程度与稳定程度是平衡的,反之D=1说明包的平衡程度被严重破坏。

    (7)Package Dependency Cycles:包的循环依赖度。面向对象的设计原则之一:The Acyclic Dependencies Principle (ADP) - OO设计的无环依赖原则要求包之间不能有循环依赖关系。

四,总结

    JDepend为我们提供了上述许多高级功能,为我们设计健壮的包/类提供了重要的参考数据,是一个不可多得的优秀工具。

五,Javadoc 使用详解(参阅

六,代码检查工具(findBugs

七,Junit的基本使用(详解

八,JavaNCSS的使用(详见

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果你想在 IntelliJ IDEA 中可视化查看依赖树,可以尝试安装一些插件或使用其他工具来实现。以下是一些可用的插件和工具: 1. Maven Dependency Plugin 的图形化界面:Maven 提供了一个插件叫做 Maven Dependency Plugin,它可以生成依赖树的文本输出。你可以使用该插件的 `dependency:tree` 命令来生成依赖树,然后将输出复制到一些在线工具(如 http://www.mvnrepository.com/analyze-tree.jsp)或其他插件中进行可视化。 2. Maven Helper 插件:Maven Helper 是一个 IntelliJ IDEA 的插件,它可以帮助你分析和解决 Maven 项目的依赖问题。该插件提供了一个图形化界面,可以显示项目的依赖树,并帮助你查找冲突和解决依赖问题。你可以在 IntelliJ IDEA 的插件市场中搜索并安装该插件。 3. Eclipse IDE 的 Dependency Graph 插件:如果你有 Eclipse IDE,可以尝试安装 Dependency Graph 插件。该插件可以帮助你生成 Maven 项目的依赖图,并提供可视化界面来查看依赖关系和冲突。你可以在 Eclipse 的插件市场中搜索并安装该插件。 4. JDependJDepend 是一个独立的 Java 依赖分析工具,它可以生成项目的依赖关系图。你可以通过命令行或使用 JDepend 的 GUI 工具来运行分析,并查看依赖关系图。 这些工具和插件可以帮助你可视化查看 Maven 项目的依赖树,并更直观地了解依赖关系和冲突。请注意,具体的安装和使用方法可能因工具和插件而异,你可以参考它们的文档或相关资源来获取更详细的指导。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值