Share via


Codemetrik - Wartbarkeitsindexbereich und Bedeutung

Frage: Der Wartbarkeitsindex wurde zwischen 0 und 100 zurückgesetzt. Wie und warum wurde das getan?

Die Metrik wurde ursprünglich wie folgt berechnet: Maintainability Index = 171 - 5.2 * ln(Halstead Volume) - 0.23 * (Cyclomatic Complexity) - 16.2 * ln(Lines of Code)

Die Verwendung dieser Formel bedeutete, dass sie von 171 bis zu einer unbegrenzten negativen Zahl variierte. Da Code zu 0 tendierte, war es eindeutig schwierig, Code zu verwalten und der Unterschied zwischen Code bei 0 und einigen negativen Werten war nicht nützlich. Aufgrund der abnehmenden Nützlichkeit der negativen Zahlen und dem Wunsch, die Metrik so klar wie möglich zu halten, haben wir beschlossen, alle 0 oder weniger Indizes als 0 zu behandeln und den Bereich von 171 oder weniger auf 0 bis 100 umzustellen. Aus diesem Grund lautet die Formel, die wir verwenden:

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

Darüber hinaus haben wir beschlossen, mit den Schwellenwerten konservativer zu sein. Der Wunsch war, dass wir, wenn der Index rot zeigt, mit einem hohen Maß an Sicherheit sagen können, dass es ein Problem mit dem Code gibt. Dies hat uns die folgenden Schwellenwerte gegeben:

Für die Schwellenwerte haben wir uns entschieden, diesen Bereich von 0-100 auf 80-20 aufzuteilen, um das Rauschen gering zu halten und nur verdächtigen Code zu markieren. Wir haben die folgenden Schwellenwerte verwendet:

  • 0-9 = Rot
  • 10-19 = Gelb
  • 20-100 = Grün