“复杂性”度量与“复杂性/方法”度量之间的差异

时间:2012-04-25 14:02:38

标签: sonarqube cyclomatic-complexity

在Sonar中,对于特定的Java类,我看到:

Complexity:     830

Complexity /method:     8,1

您如何解释这两个指标之间的区别?

“复杂性”是否是阶级复杂性?

一个班级应该承担的最大复杂程度是多少?我知道方法复杂度的方法应该小于10,但是一个类应该符合的最大类复杂度数是多少才算不复杂?

感谢。

修改

我还会查看文件中的Cyclomatic-Complexity规则违规行为。

对于许多方法,声纳说具有不同的复杂度数字(法语):

“Lacompleitécyclomatiquede la classe est de 28 alors que lemaximumautoriséestde 10。”

英文:

“类圈复杂度为28,但允许的最大值为10”。

我不明白为什么它会说“类圈复杂度”,因为它似乎是一种“方法复杂性”。

此外,有问题的类没有出现在按平均复杂度/方法排序的最复杂的类之上,因为声纳表示它只有8,1平均方法复杂度。

1 个答案:

答案 0 :(得分:6)

您可以查看我们的“度量标准定义”Wiki页面(更具体地说,可以查看"Complexity" section),以了解有关Sonar中指标含义的更多信息。

  • “复杂性”是资源的总复杂性(对于文件=>文件中定义的每个类的复杂性的总和)
  • “复杂性/方法”是“复杂性”除以文件
  • 中找到的方法数
  • ...等等其他指标。