About SW-Quality Safety SW-Entwicklung UML Nachschlagen Programme
Q-Kriterien
Basics
Prozess
CodingRules
SourceCode Metriken
ISO9000 und SW
Grundlagen Metrik Beispiel RSM Beschreibung RSM Beispiel
Zyklomatische Komplexitätszahl (CC) CC nach McCabe

McCabe Quote für eine Methode =
  (Zweiganzahl der Methoden / 
   Lines of Code der Methode)*100;
  • Die „cyclomatic complexity“ misst die Anzahl der Entscheidungslogiken in einer Sourcecode-Funktion.
  • „descriptive measure“: schwer lesbaren/wartbaren Code identifizieren. 
  • „prescriptive“: Messen von Operationsanweisungen, Bestimmen Testzeit.
  • Je nach Auslegung werden die hähe der ermittelten Zahlen für Meldungen verwendet:

  • Scores of 11-19= warning
    Scores of 20 or greate r= error.
    Hier ist zu beachten, dass es immer gerechtfertigte Ausnahmen für eine Funktionen mit hoher Komplexität gibt.

    Zweiganzahl einer Methode =
     1 + |if| + |case| + |for| + |while|

      |if|   Anzahl der if-Anweisungen
      |case| Anzahl der case-Anweisungen
      |for|  Anzahl der for-Anweisungen
      |while| Anzahl der while-Anweisungen

    „if“, „else“, „switch“, „case“, „default“,  „for“, „do“,  „while“,

    Häufig wird zur CC auch noch die Interface-Komplexität dazugezogen. 
      Interface-Komplexität = 
         Anzahl der Paramter + 
         Anzahl der return-Statements. 

    Die LOC (Lines of Code) ist die Anzahl der bereinigten Codezeilen. Also ohne Leerzeilen, und ohne Kommentare. 

    Anmerkungen:
    • Durch das Zusammenzähen der Programmverzweigungen erhält man also die Komplexitätszahl, angelehnt an den McCabe Faktor. Dies bedeutet jedoch nicht, dass eine hohe gemessene Zahl auch gleichbedeutend mit einer schwer verständlichen Methode ist. Eine große switch Anweisung mit jedoch klarem und eindeutigen Verzweigungen ist einfach zu verstehen, hat jedoch eine hohe CC. 
    • Bei der Ermittlung der Werte legt jedes Tool geringfügig andere Maßstäbe an. So führt selbst die Bestimmung der LOC nicht immer zum gleichen Ergebnis. Bei der Weitergabe der Messwerte ist deshalb auf die Angabe des Tools zu achten (Nachvollziehbarkeit). 
     

     
    ©; created Mon Aug 07 22:31:53 CEST 2006; eMail