PMD统治上帝阶级 - 理解指标

时间:2016-05-23 11:08:24

标签: java pmd

我们在Java项目中使用源代码分析器PMD。我正在尝试解决报告的问题,目前我正在努力解决GodClass规则问题。我知道这个想法不是为了创造庞大的课程。

但是,我不喜欢“巨大”这个词,因为它太模糊了。任何人都可以解释这条规则的指标是如何运作的吗?报告说例如。

Possible God class (WMC=47, ATFD=11, TCC=0.06315789473684211)

这些数字是什么意思?有没有人知道决定一个特定类是否巨大的公式?

Javadoc对此规则的陈述

  

该规则使用[1]中描述的检测策略。针对整个班级报告违规行为。 [1] Lanza。实践中面向对象的度量。第80页。

好吧,我不会因为第80页而订购一些书。

顺便说一下。有没有办法配置这样的规则,即改变其参数?

感谢您的解释。

2 个答案:

答案 0 :(得分:7)

  • WMC =加权方法计数
  • ATFD =访问外国数据
  • TCC =紧密级别凝聚力

基线似乎被定义为常数值。如果您想了解更多信息,可以找到实施here

答案 1 :(得分:6)

WMC代表每类加权方法计数或加权方法。 WMC度量标准定义为类中声明的所有方法的复杂度之和。该指标很好地指示了维护和开发特定课程需要多少努力。

ATFD代表访问外国数据。此度量标准表示给定类直接或通过访问器方法访问属性的外部类的数量。

TCC代表紧密级别凝聚力。 TCC是通过访问属性直接连接的方法的相对数量。

如果WMC> = 47且ATFD>,code会触发违规行为。 5和TCC<三分之一。

您可以在实践中面向对象度量标准page 55上阅读关于上帝课程的内容(并且您不必购买本书只需阅读1页)。您还可以阅读PMD documentation