Der Begriff Komplexität steht für die Zustand der Ereignisse oder Dinge, welche mehrere miteinander verbundene Links und hoch komplizierten Strukturen haben. In der Software-Programmierung, wie Gestaltung der Software realisiert wird, die Anzahl der Elemente und ihre Verbindungen allmählich emerge zu riesig sein, was zu schwierig wird,auf einmal verstehen.
Software Design-Komplexität ist schwierig, ohne unter Verwendung die komplexität Metriken und Maßnahmen zu beurteilen. Lassen Sie uns drei wichtige Softwarekomplexität Maßnahmen sehen.
Im Jahr 1977 führte Herr Maurice Howard Halstead-eingebracht Metriken, um die Software Komplexität zu messen. Halstead-Metriken, hängt von der tatsächlichen Durchführung des Programms und seiner Maßnahmen, die direkt von den Operatoren und Operanden aus dem Quellcode berechnet werden, in statisch Manier. Es ermöglicht zu bewerten die Testzeit, Wortschatz, Größe, Schwierigkeit, Fehler, und die Bemühungen für C / C ++ / Java-Quellcode.
Nach Halstead, "Ein Computerprogramm ist eine Implementierung eines Algorithmus betrachteten zu eine Sammlung von Token, welche entweder als Operatoren oder Operanden eingeordnet werden kann." Halstead-Metriken denke, ein Programm als Folge von Operatoren und die damit verbundenen Operanden.
Er definiert verschiedene Indikatoren, um die Komplexität des Moduls überprüfen.
Parameter | Bedeutung |
---|---|
n1 | Anzahl der eindeutigen Operatoren |
n2 | Anzahl der eindeutigen Operanden |
N1 | Anzahl von gesamt Vorkommen von Operatoren |
N2 | Anzahl von gesamt Vorkommen von Operanden |
Wenn wir wählen quelldatei zu ansehen seine Komplexität Detail in Metric-Viewer wird das folgende Ergebnis in Metric Bericht gesehen:
metrisch | Bedeutung | mathematische Darstellung |
---|---|---|
n | Vokabular | n1 + n2 |
N | Größe | N1 + N2 |
V | Volumen | Länge * Log2 Vokabular |
D | Schwierigkeit | (n1/2) * (N1/n2) |
E | Bemühen | Schwierigkeit * Volumen |
B | Fehler | Volumen / 3000 |
T | Testen zeit | Zeit= Bemühen / Sek., where Sek.=18 Sek. |
Jedes Programm emcompasses Aussagen ausführen in Ordnung zu, auszuführen einige Aufgabe und anderen EntscheidungsMaking Aussagen, die entscheiden, was Aussagen müssen ausgeführt werden. Diese EntscheidungsMaking Konstrukte Veränderung den Ablauf des Programms.
Wenn wir Vergleichen zwei Programme der gleichen Größe, der eine mit mehr EntscheidungsMaking Aussagen komplexer sein wird als die Kontrolle der Programmsprünge häufig.
McCabe, in 1976, vorgeschlagen Zyklomatische Komplexität maßnahme zu quantifizieren, die Komplexität einer gegeben Software. Es ist graph Angetrieben modell, dass ist basierend auf EntscheidungsMaking Konstrukte von programm wie if-else, do-while, repeat-untile, switch-case und goto-Anweisungen.
Prozess zu Machen Flusskontrolle Graph.
Pause Programm in kleineren Blöcken, die durch EntscheidungsMaking Konstrukte abgegrenzt.
Erstellen Knoten, vertreten jedem dieser Knoten.
Verbinden Sie Knoten wie folgt.
Wenn die Kontrolle kann Zweig von block i zu block j
Zeichne einen Bogen
Von der Ausfahrt Knoten zu Eintrag Knoten
Zeichne einen Bogen
Um Zyklomatische Komplexität eines Programmmoduls zu berechnen, nutzen wir die Formel -
V(G) = e – n + 2 wo e ist gesamt Anzahl von Ränder n ist gesamt Anzahl von Knoten
Die Cyclomatic Komplexität der oben Modul ist.
e = 10 n = 8 Cyclomatic Komplexität = 10 - 8 + 2 = 4
Nach P. Jorgensen, sollte Zyklomatische Komplexität eines Moduls 10 nicht überschreiten.
Es ist weit verbreitet, um die Größe der Software zu messen. Funktionspunkt konzentriert sich auf die Funktionalität, die von dem System bereitgestellt. Merkmale und Funktionalität des Systems sind verwendet, zu messen SoftwareKomplexität.
Function-Point zählt auf fünf Parameter, als Externe Eingange, Externe Ausgang, Logisch Interne Dateien, externe Anfrage. Um die betrachtenKomplexität der Software, jeder Parameter wird weiter als einfache, Durchschnitt oder komplexe kategorisiert.
Lasst uns sehen, Parameter der Funktion Punkt:
Jede eindeutige Eingang dem System von außen ist betrachtet als externe Eingabe. Einzigartigkeit der Eingang wird gemessen, wie keine zwei Eingänge sollten gleichen Formate haben. Diese Eingänge können entweder Daten oder Steuerparameter sein.
einfache - wenn der eingangzählen ist gering und betrifft weniger interne Dateien.
Komplex - wenn der eingangzählen ist hoch und betrifft mehr interne Dateien.
Durchschnitt - In-zwischen einfacher und komplexer.
Alle Ausgabe typen vom System bereitgestellten werden in dieser Kategorie gezählt. Ausgang wird betrachtet einzigartig, wenn ihre Ausgabeformat und / oder die Verarbeitung eindeutig sind.
einfache - wenn Ausgang zählen ist niedrig.
Komplex - wenn Ausgang zählen ist hoch.
Durchschnitt - in zwischen einfacher und komplexer.
Jedes Softwaresystem unterhält interne Dateien, in Ordnung um unterhält seine funktionelle Informationen und ordnungsgemäß zu funktionieren. Diese Dateien halten logische Daten des Systems. Diese logische Daten können enthalten sowohl Funktionsdaten und Steuerdaten.
einfache - Wenn die Anzahl der Datensatztypen niedrig sind.
Komplex - Wenn die Anzahl der Datensatztypen hoch sind.
Durchschnitt - in zwischen einfacher und komplexer.
Software-System muss auf seine Dateien mit einige einer externen Software zu teilen oder es kann brauchen, um die Datei zur Verarbeitung oder als Parameter zu einige Funktion. All diese Dateien werden als externe Schnittstellendateien gezählt.
einfache - Wenn die Anzahl der Datensatztypen in gemeinsam genutzten Datei sind niedrig.
Komplex - Wenn die Anzahl der Datensatztypen in gemeinsam genutzten Datei sind hoch.
Durchschnitt - in zwischen einfacher und komplexer.
eine Anfrage ist ein kombination von eingang und ausgang, wo Benutzer sendet einige daten zu Erkundigen über als eingang und die system reagieren zu die Benutzer with die ausgange von Anfrage Verarbeitet. Die Komplexität einer Abfrage ist mehr als External Input und externer Ausgang. Abfrage ist sagte sein einzigartig, wenn seine Eingabe und Ausgabe sind in Bezug auf Format und Daten einzigartig.
einfache - wenn Abfrage bedürfnissen niedrigen Verarbeitungs und ergibt geringe Menge an Ausgabedaten.
Komplex - wenn Abfrage bedürfnissen hohe Prozess und ergibt große Menge an Ausgabedaten.
Durchschnitt - in zwischen einfacher und komplexer.
Jeder dieser Parameter im System Gewichtung entsprechend ihrer Klasse und Komplexität gegeben. Die folgende Tabelle nennt die Gewichtung zu jedem Parameter angegeben:
Parameter | einfache | Durchschnitt | Komplex |
---|---|---|---|
Eingänge | 3 | 4 | 6 |
Ausgänge | 4 | 5 | 7 |
Anfrage | 3 | 4 | 6 |
Dateien | 7 | 10 | 15 |
Schnittstellen | 5 | 7 | 10 |
Die Tabelle obige Ausbeute roh Function Points. Diese Funktions punkte sind entsprechend der Umgebung Komplexität eingestellt. System ist unter Verwendungvierzehn verschiedenen Charakteristik beschrieben:
Diese Eigenschaften Faktoren werden dann von 0 bis 5 bewertet, wie unten erwähnt:
Alle Wertungen werden dann zusammengefasst als N. Der Wert von N im Bereich von 0 bis 70 (14 typen von Charakteristik x 5 typen von ratings). Es wird verwendet, um Anpassungsfaktoren zu berechnen Komplexität (CAF), unter Verwendung folgenden Formeln:
CAF = 0.65 + 0.01N
Then,
Geliefert Function Points (FP) = x CAF Raw FP
Diese FP kann dann verwendet werden in verschiedene Metriken, wie:
Kosten = $ / FP
Qualität = Fehler / FP
Produktivität = FP / PersonMonats