Einführung in die zyklomatische Komplexität

Die zyklomatische Komplexität wurde 1976 von Thomas J. McCabe entwickelt. Er empfahl den Programmierern, die Komplexität der Module zu zählen, an denen sie arbeiten, und sie in kleinere Module aufzuteilen, damit die zyklomatische Komplexität des Moduls 10 übersteigt maximale zyklomatische Komplexität für ein Programm. Es ist ein Maß für die Komplexität des Quellcodes, die mit einer Reihe von Codierungsfehlern zusammenhängt. Es bestimmt die unabhängigen Pfade, die für die Entwickler und Tester sehr hilfreich wären.

Dies hilft beim Testen der Software und gibt uns mehr Vertrauen, dass jeder Aspekt unseres Programms getestet wurde. Dies verbessert die Codequalität und hilft auch, sich mehr auf unsichtbare Pfade zu konzentrieren, falls vorhanden. Sie wird im Allgemeinen berechnet, indem ein Steuerflussdiagramm des Codes entwickelt wird, das die Anzahl linear unabhängiger Pfade durch ein Programm misst, um die Komplexität eines Codeteils genau zu messen. Dies trägt zur Verbesserung der Softwarequalität bei.

Definition

Die zyklomatische Komplexität des Codes ist die Anzahl der linear unabhängigen Pfade, die darin berechnet werden.

Wie berechnet man die zyklomatische Komplexität?

Die Berechnung der zyklomatischen Komplexität des Programms ist mit der folgenden Formel sehr einfach.

Cyclomatische Komplexität = E - N + 2P

  • E => Die Nr. von Kanten des Graphen
  • N => Die Anzahl der Knoten des Graphen
  • P => Die Anzahl der angeschlossenen Komponenten

Es gibt eine alternative Formel, wenn wir den Ausgangspunkt berücksichtigen, der zu Ihrem Einstiegspunkt zurückführt. Und Sie werden es wie einen Zyklus erstellen.

Cyclomatische Komplexität = E - N + P

Cyclomatische Komplexität = E - N + 1

Wir haben noch einen Weg, dies zu berechnen. Dies ist ein einfacher Weg.

  1. Diagramm zeichnen
  2. Verbinden Sie dann den Austrittspunkt mit dem Eintrittspunkt
  3. Und dann zählen Löcher in der Grafik

Schauen Sie sich die folgende Abbildung an:

Es folgen einige Notationen für Flussdiagramme:

Wenn-dann-sonst:

Während:

Do-While:

Zum:

Wenn das Programm keine Schleife hat, ist seine Komplexität geringer. Wenn das Programm auf eine Schleife stößt, nimmt die Komplexität zu.

Angenommen, wir haben eine, wenn die Bedingung definiert ist, dann haben wir die Komplexität als 2. Aufgrund der Bedingung gibt es zwei Bedingungen: Wahr und Falsch.

Diese Technik wird hauptsächlich für grundlegende Tests der White Box verwendet. Die zyklomatische Komplexität stellt ein Minimum dar. von Tests erforderlich, um jeden Pfad im Code auszuführen.

Verschiedene Sprachen verfügen über unterschiedliche Tools, um die zyklomatische Komplexität des Programms zu messen.

Die Schritte zur Berechnung der zyklomatischen Komplexität sind wie folgt

  1. Zeichnen Sie das Flussdiagramm oder ein Diagramm aus dem Code.
  2. Überprüfen Sie nun im zweiten Schritt die Anzahl der unabhängigen Pfade.
  3. Berechnen Sie dann die zyklomatische Komplexität mit der unten angegebenen Formel:

M = E –N + 2P

  1. Entsprechend der Maßnahme gestalten die Testfälle.

Nun können Sie eine Frage bekommen, wie es tatsächlich berechnet werden kann. Lassen Sie uns verstehen, wie wir das tatsächlich berechnen werden.

Betrachten Sie das folgende Java-Codebeispiel:

Dieses Programm berechnet die Fibonacii-Reihe wie folgt:

0 + 1 = 1

1 + 1 = 2

2 + 1 = 3

3 + 2 = 5

5 + 3 = 8

8 + 5 = 13

// Das folgende Programm soll nur die Fibonacii-Reihe drucken

class Printno (
Public static void main(String() args)(
int max = 20 ;
int pre = 0;
int next = 1;
System.out.println(“The Fibonacii series is : ” +prev);
While(next<= max)(
System.out.println(next);
Sum = prev + next;
Prev = next;
Next =sum;
)
)
)

> javac Printno.java

> java Printno

O / p:

Die Fibonacii-Reihe ist: 0

1

1

2

3

5

8

13

Schauen Sie sich das obige Programm genauer an. Sie werden eine while-Schleife finden. Dieses Programm besteht nur aus einer while-Schleife.

Jetzt ist es an der Zeit, eine Grafik dafür zu zeichnen.

Kontrollflussdiagramm wie folgt:

Flussdiagramm

Um nun die Komplexität des obigen Programms zu berechnen, müssen wir zuerst die Gesamtzahl berechnen. von Kanten:

Gesamtanzahl Kantenanzahl: 6

Berechnen Sie nun die Gesamtzahl der Knoten.

Gesamtzahl der Knoten: 5

Formel: M = EN + 2p

M = 6 & ndash; 5 + 2

M = 1 + 2

M = 3

Die zyklomatische Komplexität für dieses Programm beträgt also 3.

Komplexe Codes sind schwierig zu warten und zu aktualisieren oder zu ändern. Wie wir alle wissen, sollte die zyklomatische Komplexität 10 nicht überschreiten.

Arten von Komplexität

Es gibt zwei Arten von Komplexität:

Wesentliche Komplexität :

Diese Komplexität ist eine Art Code, den wir nicht ignorieren können.

Ex. Das Flugmanagementsystem ist komplexer.

Zufällige Komplexität:

Wie der Name schon sagt, weil im System Fehlerbehebungen, Patches, Modifikationen usw. aufgetreten sind. Meistens arbeiten wir nur an zufälliger Komplexität.

Vorteile der cyclomatischen Komplexität:

  • Wenn sich die Komplexität verringert, ist es für uns einfacher, dies zu verstehen.
  • Wenn das komplexere Programm vorhanden ist, muss der Programmierer prüfen, ob keine Möglichkeiten mehr bestehen.
  • In der Komplexität gezählte Pfade zeigen, dass ein von einem Programm geschriebenes Programm komplex ist, oder wir können fortfahren und die Komplexität reduzieren.
  • Es reduziert die Kopplung von Code.
  • Angenommen, ein Programm hat eine zyklomatische Komplexität von 5. Das bedeutet, dass es 5 verschiedene unabhängige Pfade durch das Verfahren gibt.
  • Dies bedeutet, dass 5 Testfälle durchgeführt werden müssen, um diesen Code zum Testen zu implementieren.
  • Daher ist es immer gut, eine geringere Anzahl für die Komplexität der Zyklomatik zu erhalten.
  • Dieser Prozess ist erforderlich, da der stark gekoppelte Code nur sehr schwer zu ändern ist.
  • Je komplexer der Code ist, desto komplexer ist auch der Code.

Werkzeuge zur Berechnung der zyklomatischen Komplexität sind

  • Cyclo
  • CCCC
  • McCabe IQ
  • GCov
  • Bullseye-Abdeckung
  • PMD
  • LC2
  • Findbugs
  • Jarchitekt

Fazit

Die zyklomatische Komplexität ist das Maß für die Programmkomplexität. Diese Maßnahme hilft uns zu verstehen, welche Arbeiten erforderlich sind und wie komplex die Software sein wird. Zyklomatische Komplexität ist Teil des White-Box-Testens.

Empfohlene Artikel

Dies war ein Leitfaden für die zyklomatische Komplexität. Hier diskutieren wir, wie man die zyklomatische Komplexität berechnet. zusammen mit Vorteilen und Arten von Komplexität. Sie können sich auch die folgenden Artikel ansehen, um mehr zu erfahren -

  1. Einführung in Linux
  2. Einführung in C ++
  3. Was ist HTML5?
  4. Was ist der Ruhezustand?