Sterben zyklomatische Komplexität ist eine Metrik im Software Engineering, die dabei hilft, die Komplexität und damit die Fehleranfälligkeit und Wartbarkeit von Code zu bestimmen. Zyklomatische Komplexität wird auch genannt Mc Cabe-Maß festgelegt.

Bestimmung der zyklomatischen Komplexität

Diese Metrik gibt an, wie viele linear unabhängige Pfade es durch einen Programmgraphen gibt. Ein Pfad wird als linear unabhängig definiert, wenn er mindestens eine neue Kante (Linie in Abb. 1) enthält.

Im folgenden Beispiel gibt es vier linear unabhängige Pfade.

Abbildung 1: Programmdiagramm, das die Pfade zur Berechnung der zyklomatischen Komplexität veranschaulicht

Diese Pfade werden durch die arabischen Ziffern an den Kanten (Linien) des Programmdiagramms identifiziert:

  1. 2 – 7
  2. 1 – 4 – 6 – 9 – 10
  3. 1 – 4 – 6 – 9 – 8 – 9 -10
  4. 1 – 3 – 5 – 9 – 10

Dh die Zahlen geben die durchlaufenen Kanten an.

Hersteller ermitteln diese Kennzahl nicht von Hand, sondern mit einem Tool wie:

  • Eclipse für Java
  • Visual Studio
  • FXCop
  • uvm.

Zielwerte für die zyklomatische Komplexität

Im obigen Beispiel gibt es vier unabhängige Pfade. Dies würde eine geringe Komplexität und damit eine geringe Fehlerwahrscheinlichkeit bedeuten. Häufig werden folgende Bereiche unterschieden:

  • 1-10: Nicht komplex, geringes Fehlerrisiko
  • 11-20: Mittlere Komplexität, mäßiges Fehlerrisiko
  • 21-50: Hohe Komplexität, hohe Fehlerwahrscheinlichkeit
  • > 50: Nicht testbares System, sehr hohe Fehlerwahrscheinlichkeit

Hersteller sollten die zyklomatische Komplexität pro Komponente oder Methode ermitteln, um die „Hotspots“ zu identifizieren, an denen Refactoring besonders notwendig ist.

Regulatorischer Hintergrund

Es besteht keine gesetzliche Verpflichtung zur Bestimmung der zyklomatischen Komplexität. Allerdings wird diese Mc Cabe-Maßnahme oft als Stand der Technik bezeichnet.

Für medizinische Geräte ist der Softwarestandard IEC 62304 relevant. In Kapitel 5.5.3 geht es darum, Akzeptanzkriterien für Softwareeinheiten zu definieren und deren Einhaltung zu überprüfen. Eine Möglichkeit, solche Akzeptanzkriterien zu bestimmen, sind Softwaremetriken. Die zyklomatische Komplexität ist eine sehr nützliche Metrik.

Der Hersteller legt fest, dass das McCabe-Maß entweder in einer umfassenden Prozessanweisung oder in einem produkt- oder projektspezifischen Entwicklungsplan ermittelt werden muss.

Die zyklomatische Komplexität ist nur eine von vielen Metriken. Aber allein ihre Aussage ist eine hilfreiche Heuristik, um die Qualität einer Softwareentwicklung zu erkennen. Wenn diese Metrik nicht ermittelt wird, ist das ebenfalls eine Aussage.

Geschichte ändern

  • 19.09.2024: Artikel grundlegend überarbeitet
  • 14.09.2015: Erste Version des Artikels erstellt



Lifestyle