问题:可维护性索引已重置为介于 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 | 绿色 | 代码的可维护性良好 |