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

Jér*_*dix 10 cyclomatic-complexity sonarqube

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

Complexity:     830

Complexity /method:     8,1
Run Code Online (Sandbox Code Playgroud)

你怎么能解释这两个指标之间的区别?

"复杂性"是阶级复杂性吗?

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

谢谢.

编辑

我还看一下文件中的Cyclomatic-Complexity规则违规.

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

"Lacomplexitécyclomatiquede la classe est de 28 alors que lemaximumautoriséestde 10."

用英语讲 :

"类圈复杂度为28,但允许的最大值为10".

我不明白为什么它说"类圈复杂度",因为它似乎是"方法圈复杂度".

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

Fab*_*eam 6

您可以查看我们的"度量定义"Wiki页面(更具体地说,请参阅"复杂性"部分),以了解有关Sonar中指标的含义的更多信息.

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