我想开始衡量 Michael Feathers 所说的代码的动荡,即churn vs.complexity。
为此,我需要测量 C++ 或 Java 文件的复杂性。所以我找到了几个测量圈复杂度(CC)的工具。他们每个人都在功能或方法级别上很好地衡量了 CC。但是,我需要一个文件级别的指标,而他们在那里做得不太好。一个工具只返回文件中所有方法复杂度的平均值,而另一个工具将整个文件视为一个巨大的方法,即它计算整个文件中的所有决策点。
所以我做了一些研究,发现 McCabe 仅根据模块来定义 CC——他们将模块定义为函数——而不是文件(参见本演示文稿的幻灯片 20 和 30 )。我认为这是有道理的。
所以现在我只剩下试图弄清楚如何表示文件复杂性了。我的想法是我应该只使用该文件的最大方法 CC。
关于这种方法或任何其他建议的任何想法?
谢谢!
肯