如何计算项目的圈复杂度(不是类/函数)?

yeg*_*256 5 java cyclomatic-complexity

如何计算整个Java项目的圈复杂度?我对每种方法都有复杂性,但是如何将它们全部聚合成一个数字度量?任何想法或现有方法?

我不是在寻找工具,而是在寻找算法.

简单平均几乎1不起作用,因为存在许多复杂性方法,这些方法实际上并不具有低复杂性,但对于代码库(在大多数情况下)的重要性较低.

Bap*_*cht 2

我发现了这个公式:

TCC = Sum(CC) - Count(CC) + 1
TCC: Total CC
Sum(CC): Sum of CC of all functions
Count(CC): Number of functions
Run Code Online (Sandbox Code Playgroud)

资料来源: http: //www.aivosto.com/project/help/pm-complexity.html

但也许它太有限了。

另一个想法是将程序的调用图视为程序本身并计算调用图的 CC。节点将根据其 CC 进行加权。(不知道是否可行,只是一个想法)