質問: 保守容易性インデックスが 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 | 緑 | コードの保守性が良好 |