Eintrag kommentierenEintrag bewerten
Dieser Eintrag wurde im Schnitt mit 0 von 5 Punkten bewertet
Erfahrung
Erfahrungen mit der Metrik Zyklomatische Komplexität
Erfahrung:15492
Externe Quellen zum Thema NEU: Externe Quellen zum Thema suchen 
Beschreibung der Erfahrung
Neben Halsteads Software Science hat auch Thomas McCabe's Maß der zyklomatischen Komplexität eine gewisse historische Bedeutung erlangt, hat zugleich aber auch eine wirkliche praktische Berechtigung.

McCabe empfiehlt ein Maximum von C(G)=10 für einzelne Module. Komplexere Module sollten zerlegt werden. Als generelles Kriterium für die "maximale Komplexität" von Modulen (siehe auch: Der Begriff Komplexität) ist diese Regel ist jedoch stark vereinfacht, da sie andere Einflussfaktoren, z.B. den Datenfluss, unberücksichtigt lässt.

Lorenz und Kidd [Literatur Object-Oriented Software-Metrics] bemerken, dass die McCabe-Zahl nur bedingt zur Messung der „Komplexität“ von objektorientierten Systemen genutzt werden kann. Sie führen folgende Gründe an:

  • Ursprünglich entworfen auf Basis prozeduraler Systeme, brachte man die Anzahl von Entscheidungen in einem Modul mit deren Verständlichkeit, Wartbarkeit etc. in Verbindung. Die „Komplexität“ eines objektorientierten Systems liegt jedoch nicht nur im Kontrollfluss, sondern es gibt viele weitere Strukturmerkmale, welche die Wartbarkeit beeinflussen (z.B. Kapselung).
  • Objektorientierte Systeme enthalten aufgrund der Verfügbarkeit von Vererbung und Polymorphismus weniger im Quelltext ersichtliche Entscheidungen. Das Maß erfasst diese indirekten Verzweigungen nicht.
Die zyklomatische Komplexität ist ein valides Maß für die Anzahl unabhängiger Pfade gemäß der Definition von McCabe, mehr jedoch nicht. Die Verwendung des Begriffs "Komplexität" ist einmal mehr irreführend. Bezieht man sich auf die kognitive Komplexität, vernachlässigt das Maß beispielsweise die Regularität des Kontrollflussgraphen. Eine Funktion mit einer flachern, regulären Struktur ist sicherlich leichter verständlich als etwa eine mit mehreren verschachtelten Schleifen. Beide Funktionen können jedoch die gleiche zyklomatische Komplexität aufweisen (siehe Abbildung). Die McCabe-Zahl kann daher nicht notwendigerweise mit der Verständlichkeit in Beziehung gesetzt werden.


Regulärer und irregulärer Kontrollflussgraph und deren McCabe-Zahlen
Irregulärer und regulärer Kontrollflussgraph mit gleicher zyklomatischer Komplexität aber offenber unterschiedlicher Verständlichkeit.


In Literatur Object-Oriented Metrics, Measures of Complexity werden verschiedene Varianten des Maßes "zyklomatische Komplexität" genannt, insbesondere unter Einbeziehung von Funktionsaufrufen. Hendersson-Sellers und Tegarden [Literatur The theoretical extension of two versions of cyclomatic complexity to multiple entry/exit modules] zeigen, dass McCabe's ursprüngliches Maß Modularisierung bestraft, weil jeder Funktionsaufruf die "Komplexität" erhöht. Dies ist andererseits nicht gerechtfertigt, weil ein Aufruf die Anzahl von Ausführungspfaden nicht erhöht.

Grady [Literatur Successfully applying software metrics] beschreibt eine Studie, in der 850.000 Zeilen FORTAN Code vermessen wurden und für jedes Modul deren zyklomatische Komplexität ermittelt wurde. Die Untersuchung zeigte einen engen Zusammenhang zwischen der McCabe-Zahl und den notwendigen Aktualisierungen für ein Modul.
Externe Quellen zum Thema NEU: Externe Quellen zum Thema suchen 
 Eintrag kommentieren 
 Eintrag bewerten 
Zu dieser Seite wurden noch keine Kommentare oder Bewertungen abgegeben.
 
Zum Seitenanfang Top Drucken Impressum AGB
Home

VSEK ©2001-2018