Ganze Bücher wurden auf Code-Metriken geschrieben worden ist, so dass Sie haben Glück, dass Sie eine spezifischere Frage sind gefragt. Für die zyklomatische Komplexität von Java könnten Sie die Anzahl der Methoden finden, die eine zyklomatische Komplexität von 5 oder 6 überschreiten (Sie wählen die Zahl hier aus). Wenn diese Anzahl mehr als einen bestimmten Prozentsatz Ihrer Anzahl an Methoden übersteigt, ist die gesamte zyklomatische Komplexität gering. Eine gute Zahl für den Prozentsatz hängt ausschließlich von der Größe des Projekts ab. Daher können Sie vielleicht nicht nur durch die Anzahl der Methoden dividieren, sondern auch die Anzahl der Methoden in der Division verringern, indem Sie sie langsam für große Zahlen wie z eine Quadratwurzel oder einen Logarithmus, um zu versuchen, es stabiler zu machen, wenn das Projekt wächst.
Vielleicht so etwas wie folgt aus:
public double evaluateCyclomaticComplexity(List<MethodStat> methodStats) {
int bad = 0;
for (MethodStat methodStat : methodStats)
if (methodStat.getCyclomaticComplexity() >= 6)
bad++;
double denominator = Math.sqrt(methodStats.size());
return bad * 100.0/denominator;
}
Je kleiner die Zahl hier zurückgekehrt, desto besser. Für wirklich schlechtes Projekt, wird dies etwas größer als 100 zurückgeben.
Die Nenner-Funktion sollte darstellen, wie schnell Sie in Ordnung mit der Komplexität sind, wächst mit der Code-Basis wächst. Normalerweise möchten Sie, dass der CC pro Funktion niedriger wird, da der Code wächst, so dass er beibehalten werden kann. Daher ist es am besten, wenn die Projektgröße zunimmt.
Testen, zwicken, etc. Letztlich sind Code-Metriken schwer zu bekommen, was ich bestätigen kann, nachdem ich mehrere Zeitschriftenartikel über Open-Source-Software gelesen habe, die Zahlen für "Wartbarkeit" verwenden. Alles, was wir hier erreichen können, wird wahrscheinlich erheblich verbessert, wenn genug Zeit dafür aufgewendet wird.