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

Cim*_*man 6 java pmd

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

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

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

所有这些数字意味着什么?有人知道决定特定班级是否庞大的公式吗?

Javadoc遵守这条规则

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

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

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

谢谢你的解释.

Csu*_*uki 7

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

基线似乎被定义为常数值.如果您想了解更多信息,可以在此处找到实施方案.


Nat*_*han 6

WMC代表每类加权方法计数或加权方法。WMC指标定义为类中声明的所有方法的复杂度之和。该指标很好地表明了维持和发展特定班级需要付出多少努力。

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

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

代码触发违反如果WMC> = 47和ATFD> 5和TCC <1/3。

您可以在第55页的“面向对象的度量标准实践”中阅读有关God课的知识(并且您不必仅阅读1页就可以买到这本书)。您也可以阅读PMD 文档