Software Design-Komplexität



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.

Halsteads Komplexitätsmessungen

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.

Zyklomatische Komplexitätsmessungen

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
Zyklomatische Komplexitätsmessungen

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.

Funktionspunkt

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.

Function Point

Lasst uns sehen, Parameter der Funktion Punkt:

Externe Eingage

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.

Externe Ausgang

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.

Logisch Interne Dateien

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.

Externe Interface-Dateien

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.

externe Anfrage

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:

  • Datenkommunikation
  • verteilte Verarbeitung
  • Durchführungsziele
  • Betriebskonfiguration Last
  • Transaktionsrate
  • Online-Dateneingabe,
  • Endbenutzer Effizienz
  • Online update
  • Komplexe Verarbeitungslogik
  • Wiederverwendbarkeit
  • Installation leichtigkeit
  • operativleichtigkeit
  • Sites verschiedenster Anbieter
  • Lust auf Veränderungen zu erleichtern

Diese Eigenschaften Faktoren werden dann von 0 bis 5 bewertet, wie unten erwähnt:

  • kein Einfluss
  • nebensächlich
  • mäßigen
  • Durchschnitt
  • signifikant
  • wesentliche

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

Advertisements