Hier sind einige Komplexitätsmetriken von stan4j .
Ein Tool zur Analyse der Eclipse-Klassenstruktur.
Ich mag dieses Tool und die Metriken. Ich behandle die Metriken als Statistiken, Indikatoren, Warnmeldungen. Aufgrund einiger Methoden oder Klassen hat eine komplizierte Logik sie manchmal komplex gemacht. Was zu tun ist, ist, sie im Auge zu behalten, sie zu überprüfen, um festzustellen, ob es notwendig ist, sie zu überarbeiten oder sie sorgfältig zu überprüfen, was normalerweise der Fall ist Sie sind fehleranfällig. Ich benutze es auch als Analysewerkzeug, um Quellcode zu lernen, da ich gerne von komplex bis einfach lerne. Tatsächlich enthält es einige andere Metriken wie Robert C. Martin Metriken, Chidamber & Kemerer Metriken, Count Metrics. Aber ich mag diese am besten
Komplexitätsmetriken
Zyklomatische Komplexitätsmetriken
Zyklomatische Komplexität (CC) Die zyklomatische Komplexität einer Methode ist die Anzahl der Entscheidungspunkte im Kontrollflussdiagramm der Methode, die um eins erhöht werden. Entscheidungspunkte treten bei if / for / while-Anweisungen, case / catch-Klauseln und ähnlichen Quellcodeelementen auf, bei denen der Kontrollfluss nicht nur linear ist. Die Anzahl der (Bytecode-) Entscheidungspunkte, die durch eine einzelne (Quellcode-) Anweisung eingeführt werden, kann variieren, z. B. abhängig von der Komplexität der Booleschen Ausdrücke. Je höher der zyklomatische Komplexitätswert einer Methode ist, desto mehr Testfälle sind erforderlich, um alle Zweige des Kontrollflussdiagramms der Methode zu testen.
Durchschnittliche zyklomatische Komplexität
Durchschnittlicher Wert der Metrik für die zyklomatische Komplexität über alle Methoden einer Anwendung, Bibliothek, eines Paketbaums oder eines Pakets.
Fettmetriken
Die Fettmetrik eines Artefakts ist die Anzahl der Kanten in einem geeigneten Abhängigkeitsdiagramm des Artefakts. Der Abhängigkeitsdiagrammtyp hängt von der Metrikvariante und dem ausgewählten Artefakt ab:
Fett
Die Fettmetrik einer Anwendung, Bibliothek oder eines Paketbaums ist die Kantenanzahl des Teilbaum-Abhängigkeitsdiagramms. Dieses Diagramm enthält alle untergeordneten Elemente des Artefakts in der Paketbaumhierarchie und damit auch Blattpakete. (Um das entsprechende Diagramm in der Kompositionsansicht anzuzeigen, muss das Umschalten der Flat Packages des Struktur-Explorers deaktiviert werden. Das Umschalten von Bibliotheken anzeigen muss aktiviert sein, wenn das ausgewählte Artefakt eine Bibliothek ist, andernfalls muss es deaktiviert werden.)
Die Fettmetrik eines Pakets ist die Kantenanzahl seines Einheitenabhängigkeitsgraphen. Dieses Diagramm enthält alle Klassen der obersten Ebene des Pakets.
Die Fettmetrik einer Klasse ist die Kantenanzahl ihres Mitgliedsdiagramms. Dieses Diagramm enthält alle Felder, Methoden und Elementklassen der Klasse. (Dieses Diagramm und der Fettwert sind nur verfügbar, wenn die Code-Analyse mit dem Detailgrad-Mitglied und nicht mit der Klasse durchgeführt wurde.)
Fett für Bibliothek Abhängigkeiten (Fat - Bibliotheken)
The Fat für Bibliothek Abhängigkeiten Metrik einer Anwendung ist der Flankenzählwert seiner Bibliothek Abhängigkeitsgraphen. Dieses Diagramm enthält alle Bibliotheken der Anwendung. (Um das entsprechende Diagramm in der Kompositionsansicht anzuzeigen, muss der Schalter "Bibliotheken anzeigen" des Struktur-Explorers aktiviert sein.)
Fett für flache Paketabhängigkeiten (Fett - Pakete)
Die Metrik Fett für flache Paketabhängigkeiten einer Anwendung ist die Kantenanzahl ihres Diagramms für flache Paketabhängigkeiten. Dieses Diagramm enthält alle Pakete der Anwendung. (Um das entsprechende Diagramm in der Kompositionsansicht anzuzeigen, muss der Schalter für flache Pakete des Struktur-Explorers aktiviert und der Schalter für das Anzeigen von Bibliotheken deaktiviert sein.)
Die Metrik Fett für flache Paketabhängigkeiten einer Bibliothek ist die Kantenanzahl ihres Diagramms für die flache Paketabhängigkeit. Dieses Diagramm enthält alle Pakete der Bibliothek. (Um das entsprechende Diagramm in der Kompositionsansicht anzuzeigen, müssen die Schaltflächen Flat Packages und Show Libraries des Struktur-Explorers aktiviert sein.)
Fett für Klassenabhängigkeiten der obersten Ebene (Fett - Einheiten)
Die Metrik Fett für Klassenabhängigkeiten der obersten Ebene einer Anwendung oder Bibliothek ist die Kantenanzahl ihres Einheitsabhängigkeitsdiagramms. Dieses Diagramm enthält alle Klassen der obersten Ebene der Anwendung oder Bibliothek. (Für sinnvolle Anwendungen ist es zu groß, um visualisiert zu werden, und kann daher nicht in der Zusammensetzungsansicht angezeigt werden. Einheitenabhängigkeitsdiagramme werden möglicherweise nur für Pakete angezeigt.)
the number of StyleCop warnings + 10 * the number of FxCop warnings + 2 to the power of the number of disabled warning types
. Erst wenn der Wert dieser Metrik so klein wie möglich ist, lohnt es sich für einen Menschen, den Code zu überprüfen (meiner Meinung nach). In der Summe: Ausgefeilte Tools anstelle von vereinfachten Formeln können zur Verbesserung der Codequalität beitragen. Dies ist jedoch wahrscheinlich kein Thema.