代码指标 - 可维护性索引范围和含义

问题:可维护性索引已重置为介于 0 和 100 之间。 如何和为什么进行重置?

指标最初按如下方式计算:Maintainability Index = 171 - 5.2 * ln(Halstead Volume) - 0.23 * (Cyclomatic Complexity) - 16.2 * ln(Lines of Code)

此公式的使用意味着它的范围从 171 到无界负数。 由于代码倾向于 0,因此显然很难维护代码,并且代码在 0 和一些负值之间的差异并不有用。 由于负数的有用性下降,并且希望尽可能明确指标,我们决定将所有 0 个或更少的索引视为 0,然后将 171 或更少范围重新设置为 0 到 100。 因此,我们使用的公式是:

Maintainability Index = MAX(0,(171 - 5.2 * ln(Halstead Volume) - 0.23 * (Cyclomatic Complexity) - 16.2 * ln(Lines of Code))*100 / 171)

此外,我们决定采取保守的门槛设定。 希望是,如果索引显示为红色,那么我们可以高度确信代码存在问题。

对于阈值,我们决定分解此 0-100 范围 80-20,以保持低噪音级别,我们只标记了可疑的代码。 我们使用了以下阈值:

索引值 颜色 意义
0-9 红色 代码的可维护性较低
10-19 黄色 代码的中等可维护性
20-100 绿色 代码的可维护性良好