• Keine Ergebnisse gefunden

Prof. Dr. Jan Jürjens Softwarekonstruktion

N/A
N/A
Protected

Academic year: 2022

Aktie "Prof. Dr. Jan Jürjens Softwarekonstruktion"

Copied!
32
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

2.2 Modellbasierte Softwareentwicklung

1 Softwarekonstruktion

Softwarekonstruktion WS 2014/15 WS 2014/15

Vorlesung (WS 2014/15)

Softwarekonstruktion

Prof. Dr. Jan Jürjens

TU Dortmund, Fakultät Informatik, Lehrstuhl XIV

Teil 2.2: Softwaremetriken

v. 08.12.2014

(2)

2.2 Modellbasierte Softwareentwicklung

2 Softwarekonstruktion

Softwarekonstruktion WS 2014/15 WS 2014/15

Einordnung

Softwaremetriken

Modellgetriebene SW-Entwicklung

Qualitätsmanagement

Testen

Grundlagen Softwareverifikation

Softwaremetriken

Black-Box-Test

White-Box-Test

Testen im Softwarelebenszyklus

[inkl. Beiträge von Prof. Martin Glinz, Universität Zürich und Prof. Ian Sommerville, Univ. St. Andrews]

Literatur (s. Vorlesungswebseite):

Andreas Spillner, Tilo Linz: Basiswissen Softwaretest.

Eike Riedemann: Testmethoden für sequentielle und nebenläufige Software-Systeme.

Literatur:

E. Riedemann: Testmethoden für sequentielle und nebenläufige Software-Systeme

http://www.ub.tu-dortmund.de/katalog/titel/687299

H. Balzert: Lehrbuch der Software-Technik/2 –

Software-Management, Software-Qualitätssicherung

http://www.ub.tu-dortmund.de/katalog/titel/645541

(3)

2.2 Modellbasierte Softwareentwicklung

3 Softwarekonstruktion

Softwarekonstruktion WS 2014/15 WS 2014/15

Einleitung Softwaremetriken

Vorheriger Abschnitt: Einführung Softwareverifikation

Dieser Abschnitt: Bestimmung der Komplexität des Programmes

Softwaremetriken: Zyklomatische Zahl

Werkzeugunterstützung

(4)

2.2 Modellbasierte Softwareentwicklung

4 Softwarekonstruktion

Softwarekonstruktion WS 2014/15 WS 2014/15

2.2 Softwaremetriken

2.2 Software-

metriken

Motivation und Überblick Zyklomatische Komplexität Objektorientierte Metriken-Suite Werkzeugunterstützung

}

Literatur:

V. Gruhn: MDA - Effektives Software-Engineering http://www.ub.tu-dortmund.de/katalog/titel/1223129

Kapitel 2

(5)

2.2 Modellbasierte Softwareentwicklung

5 Softwarekonstruktion

Softwarekonstruktion WS 2014/15 WS 2014/15

Softwareverifikation vs.

Softwaremetriken

Volllständiges Austesten i.A. unmöglich => Prioritäten setzen.

Schwerpunkt auf besonders fehleranfällige Teile der Software legen !

Wie diese Teile effizient identifizieren ?

Fehleranfälligkeit korreliert mit Komplexität von Softwarekomponente.

Komplexität der Softwarekomponenten mit Metriken ermitteln.

Metrikwerte für verschiedene Komponenten und mit historischen Daten vergleichen.

Anomale Werte können auf Qualitätsprobleme hinweisen

=> intensiver testen.

Hier ein Beispiel: zyklomatische Komplexität.

Metrik wählen

Kompo- nenten auswählen

Metrik auf Komponenten

anwenden

Auffällige Komponenten

identifizieren

Auffällige Komponenten

analysieren

Literatur:

H. Balzert: Lehrbuch der Software-Technik/2 – Software-Management, Software-Qualitätssicherung http://www.ub.tu-dortmund.de/katalog/titel/645541

Abschnitt 5.11 (S.478-480)

(6)

2.2 Modellbasierte Softwareentwicklung

6 Softwarekonstruktion

Softwarekonstruktion WS 2014/15 WS 2014/15

2.2 Softwaremetriken

2.2 Software-

metriken

Motivation und Überblick Zyklomatische Komplexität Objektorientierte Metriken-Suite Werkzeugunterstützung

}

Literatur:

V. Gruhn: MDA - Effektives Software-Engineering http://www.ub.tu-dortmund.de/katalog/titel/1223129

Kapitel 2

(7)

2.2 Modellbasierte Softwareentwicklung

7 Softwarekonstruktion

Softwarekonstruktion WS 2014/15 WS 2014/15

Zyklomatische Komplexität eines Programmes

Zyklomatische Komplexität („McCabe-Metrik“):

Misst Komplexität eines Programmes auf Basis des Kontrollflussgraphen.

Zyklomatische Komplexität des Kontrollflussgraphen G: (G) = e - v + 2

Beispiel: (G) = ?

1 2 3 4 5

7 8 9 6

Literatur:

H. Balzert: Lehrbuch der Software-Technik/2 – Software-Management, Software-Qualitätssicherung http://www.ub.tu-dortmund.de/katalog/titel/645541

Abschnitt 5.11.2 – Die McCabe-Metrik (S.481-482)

T.J. McCabe: A Complexity Measure, IEEE Transactions

on Software Engineering Vol. 2, No. 4, p. 308 (1976)

(8)

2.2 Modellbasierte Softwareentwicklung

8 Softwarekonstruktion

Softwarekonstruktion WS 2014/15 WS 2014/15

Zyklomatische Komplexität eines Programmes

Zyklomatische Komplexität („McCabe-Metrik“):

Misst Komplexität eines Programmes auf Basis des Kontrollflussgraphen.

Zyklomatische Komplexität des Kontrollflussgraphen G: (G) = e - v + 2

Beispiel: (G) = 10 - 9 + 2 = 3.

1 2 3 4 5

7 8 9 6

Literatur:

H. Balzert: Lehrbuch der Software-Technik/2 – Software-Management, Software-Qualitätssicherung http://www.ub.tu-dortmund.de/katalog/titel/645541

Abschnitt 5.11.2 – Die McCabe-Metrik (S.481-482)

T.J. McCabe: A Complexity Measure, IEEE Transactions

on Software Engineering Vol. 2, No. 4, p. 308 (1976)

(9)

2.2 Modellbasierte Softwareentwicklung

9 Softwarekonstruktion

Softwarekonstruktion WS 2014/15 WS 2014/15

Beispiel: Zyklomatische Komplexität

Bemerkung: Berechnung von (G) in Programmiersprachen mit geschlossenen Ablaufkonstrukten:

Zähle alle Verzweigungen und Schleifen (if, while, for, etc.).

Addiere für jede Auswahl-Anweisung (switch, CASE) die Zahl der Fälle - 1.

Addiere 1.

Hier: ? + 1

Entspricht McCabe-Formel:

v = ? , e = ?

(G) = e - v + 2 = ?

A

B

Literatur:

H. Balzert: Lehrbuch der Software-Technik/2 – Software-Management, Software-Qualitätssicherung http://www.ub.tu-dortmund.de/katalog/titel/645541

Abschnitt 5.11.2 – Die McCabe-Metrik (S.481-482)

(10)

2.2 Modellbasierte Softwareentwicklung

10 Softwarekonstruktion

Softwarekonstruktion WS 2014/15 WS 2014/15

Beispiel: Zyklomatische Komplexität

Bemerkung: Berechnung von (G) in Programmiersprachen mit geschlossenen Ablaufkonstrukten:

Zähle alle Verzweigungen und Schleifen (if, while, for, etc.).

Addiere für jede Auswahl-Anweisung (switch, CASE) die Zahl der Fälle - 1.

Addiere 1.

Hier: 5 + 1.

Entspricht McCabe-Formel:

v = 13, e = 17

(G) = e - v + 2 = 17 - 13 + 2 = 6

A

B

Literatur:

H. Balzert: Lehrbuch der Software-Technik/2 – Software-Management, Software-Qualitätssicherung http://www.ub.tu-dortmund.de/katalog/titel/645541

Abschnitt 5.11.2 – Die McCabe-Metrik (S.481-482)

(11)

2.2 Modellbasierte Softwareentwicklung

11 Softwarekonstruktion

Softwarekonstruktion WS 2014/15 WS 2014/15

Mehrere Endpunkte

Bislang Annahme: Programm hat nur ein Endpunkt.

Zyklomatische Komplexität des Kontrollflussgraphen G eines Programms mit mehreren Endpunkten:

(G) = e - n + p + 1

e Zahl der Kanten

n Zahl der Knoten

p Zahl der Endpunkte des Programms [NB: Annahme weiterhin: Nur ein Startpunkt.]

Literatur:

H. Balzert: Lehrbuch der Software-Technik/2 – Software-Management, Software-Qualitätssicherung http://www.ub.tu-dortmund.de/katalog/titel/645541

Abschnitt 5.11.2 – Die McCabe-Metrik (S.481-482)

(12)

2.2 Modellbasierte Softwareentwicklung

12 Softwarekonstruktion

Softwarekonstruktion WS 2014/15 WS 2014/15

Bewertung der

zyklomatischen Komplexität (1)

Zyklomatische Komplexität > 10 nach McCabe nicht tolerabel.

Überarbeitung des Programmteils !

Messwert 6 im Beispiel liegt im Bereich → nach McCabe akzeptabel

Z.T. Messwerte bis 15 ausnahmsweise akzeptiert (dokumentierte Begründung).

Für Wartbarkeit: Verständlichkeit eines Programmstücks wichtig.

Ermittelte zyklomatische Komplexität hoch:

→ Nachvollziehen des Ablaufs des Programmstücks schwierig.

→ Schlechte Verständlichkeit.

Literatur:

H. Balzert: Lehrbuch der Software-Technik/2 – Software-Management, Software-Qualitätssicherung http://www.ub.tu-dortmund.de/katalog/titel/645541

Abschnitt 5.11.2 – Die McCabe-Metrik (S.481-482)

(13)

2.2 Modellbasierte Softwareentwicklung

13 Softwarekonstruktion

Softwarekonstruktion WS 2014/15 WS 2014/15

Bewertung der

zyklomatischen Komplexität (2)

Auskunft über Testaufwand:

Zykl. Komplexität = Anzahl unabhängiger Pfade.

Zykl. Komplexität – 1 = Anzahl Entscheidungen im Kontrollflussgraph.

100%-ige Ausführung aller Anweisungen und Verzweigungsmöglichkeiten eines Programms verlangt.

 Einmaliger Durchlauf unabhängiger Pfade durch Kontrollfluss- graphen.

Zykl. Komplexität: Obere Grenze für Anzahl benötigter Testfälle zur Erreichung dieses Kriteriums.

Literatur:

H. Balzert: Lehrbuch der Software-Technik/2 – Software-Management, Software-Qualitätssicherung http://www.ub.tu-dortmund.de/katalog/titel/645541

Abschnitt 5.11.2 – Die McCabe-Metrik (S.481-482)

(14)

2.2 Modellbasierte Softwareentwicklung

14 Softwarekonstruktion

Softwarekonstruktion WS 2014/15 WS 2014/15

Bewertung der

zyklomatischen Komplexität (3)

Problem der Validität:

Komplexität Spaghetti-Programm = Komplexität wohlstrukturiertes Programm gleichen Problems.

Auch intuitiv gleich komplex ?

Eignet sich Maß als Indikator für Fehleranfälligkeit ?

 Nicht besser als NCSS (Kafura und Canning, 1985).

Skala: Verhältnisskala, aber nicht additiv:

Aneinanderreihung zweier Programmstücke mit Komplexitäten

1 und 2: Komplexität 1+2-1

→ Kontraintuitive Eigenschaft.

Literatur:

H. Balzert: Lehrbuch der Software-Technik/2 – Software-Management, Software-Qualitätssicherung http://www.ub.tu-dortmund.de/katalog/titel/645541

Abschnitt 5.11.2 – Die McCabe-Metrik (S.481-482)

(15)

2.2 Modellbasierte Softwareentwicklung

15 Softwarekonstruktion

Softwarekonstruktion WS 2014/15 WS 2014/15

2.2 Softwaremetriken

2.2 Software-

metriken

Motivation und Überblick Zyklomatische Komplexität Objektorientierte Metriken-Suite Werkzeugunterstützung

}

Literatur:

V. Gruhn: MDA - Effektives Software-Engineering http://www.ub.tu-dortmund.de/katalog/titel/1223129

Kapitel 2

(16)

2.2 Modellbasierte Softwareentwicklung

16 Softwarekonstruktion

Softwarekonstruktion WS 2014/15 WS 2014/15

Die objektorientierte Metriken-Suite „CK“ (1)

Softwaremetrik Beschreibung Gewichtete

Methoden pro Klasse

(Weighted Method Complexity, WMC)

Anzahl Methoden in jeder Klasse, gewichtet durch Komplexität:

WMC = C(i) mit C(i) = Komplexität von Methode i Komplexe Objekte: Verständnis schwer.

Tiefe des Vererbungs- baums (Depth of Inheritance Tree, DIT)

Maximale Tiefe der Generalisierungshierarchie. → Anzahl Ebenen im Vererbungsbaum.

Je tiefer der Baum, desto komplexer das Design: Viele Klassen verstehen, um unterstes Blatt des Vererbungsbaums nachvoll zu ziehen.

Zahl der Kinder (Number of Children, NOC)

Anzahl direkter Unterklassen.

Hoher NOC-Wert = hohe Wiederverwendung → Validierung der Basisklassen aufwändig, wegen großer Zahl abhängiger

Unterklassen.

Literatur:

H. Balzert: Lehrbuch der Software-Technik/2 – Software-Management, Software-Qualitätssicherung http://www.ub.tu-dortmund.de/katalog/titel/645541

Abschnitt 5.11.3 – Metriken für objektorierntierte Komponenten (S.482-486)

WMC (S.484)

DIT (S.483)

NOC (S.483)

(17)

2.2 Modellbasierte Softwareentwicklung

17 Softwarekonstruktion

Softwarekonstruktion WS 2014/15 WS 2014/15

Softwaremetrik Beschreibung Kopplung von

Klassen (CBO) Methoden von C benutzen Methoden/Variablen von D → Klassen C und D gekoppelt.

CBO: Maß für Anzahl der Kopplungen. Hoher CBO-Wert: Klassen voneinander sehr abhängig → Änderung einer Klasse betrifft viele Klassen im Programm.

Die objektorientierte Metriken-Suite „CK“ (2)

Reaktion einer

Klasse (RFC) Maß für Anzahl Methoden: als Antwort auf Nachricht an umgebene Klasse ausführbar.

Hoher RFC-Wert: Klasse komplexer und fehleranfälliger.

Mangel an Zusammenhalt in Methoden

(Lack of Cohesion of Methods, LCOM)

Anzahl gemeinsam benutzter Instanzvariablen von Methoden einer Klasse. Verschiedene Arten von Metriken → Informationen zu anderen Metriken lieferbar.

Literatur:

H. Balzert: Lehrbuch der Software-Technik/2 – Software-Management, Software-Qualitätssicherung http://www.ub.tu-dortmund.de/katalog/titel/645541

Abschnitt 5.11.3 – Metriken für objektorierntierte Komponenten (S.482-486)

CBO (S.484)

RFC (S.483)

LCOM (S.485)

(18)

2.2 Modellbasierte Softwareentwicklung

18 Softwarekonstruktion

Softwarekonstruktion WS 2014/15 WS 2014/15

Beispiel: WMC, DIT und NOC

AbstrakteKlasse

WMC = 0; DIT = 0;

NOC = 1

BasisKlasse

WMC = 2; DIT = 1;

NOC = 2

UnterKlasse1

WMC = 1; DIT = 2;

NOC = 0

UnterKlasse2

WMC = 2; DIT = 0;

NOC = 0

AbstrakteKlasse +m1()

BasisKlasse +m1() +m2()

UnterKlasse1 +m3()

UnterKlasse2 +m4()

+m5()

(hier wird angenommen, dass jede Methode die Komplexität C = 1 hat)

(19)

2.2 Modellbasierte Softwareentwicklung

19 Softwarekonstruktion

Softwarekonstruktion WS 2014/15 WS 2014/15

Diskussionsfrage

Komplexitätsmaße: Indikator für Fehleranfälligkeit und Pflegbarkeit.

Welches Problem ergibt sich, wenn Programmierer am

Komplexitätsmaß gemessen wird, um beide Eigenschaften zu steuern ?

(20)

2.2 Modellbasierte Softwareentwicklung

20 Softwarekonstruktion

Softwarekonstruktion WS 2014/15 WS 2014/15

Diskussionsfrage

Komplexitätsmaße: Indikator für Fehleranfälligkeit und Pflegbarkeit.

Welches Problem ergibt sich, wenn Programmierer am

Komplexitätsmaß gemessen wird, um beide Eigenschaften zu steuern ?

Antwort:

1) Komplexität von Code = Komplexität des zu lösenden Problems

→ teilweise durch Programmierer steuerbar.

Vergleich von mehreren Lösungen für das gleiche Problem durch Metriken → Vergleich von Qualität der Programmierung.

2) Metrik bekannt: Programmierer kann Code optimieren, ohne Qualität zu verbessern.

(21)

2.2 Modellbasierte Softwareentwicklung

21 Softwarekonstruktion

Softwarekonstruktion WS 2014/15 WS 2014/15

2.2 Softwaremetriken

2.2 Software-

metriken

Motivation und Überblick Zyklomatische Komplexität Objektorientierte Metriken-Suite Werkzeugunterstützung

}

Literatur:

V. Gruhn: MDA - Effektives Software-Engineering http://www.ub.tu-dortmund.de/katalog/titel/1223129

Kapitel 2

(22)

2.2 Modellbasierte Softwareentwicklung

22 Softwarekonstruktion

Softwarekonstruktion WS 2014/15 WS 2014/15

Werkzeugunterstützung

Testwell CMTJava http://www.testwell.fi/cmtjdesc.html

Unterstützte Metriken: Zeilenmetriken, Halstead-Metrik, McCabe Zyklomatische Komplexität, Wartungsaufwand.

Eclipse Metrics Plugin (Freeware)

http://eclipse-metrics.sourceforge.net

Unterstützte Metriken: McCabe Zyklomatische Komplexität.

Ndepend (Testversion)

http://ndepend.com

Unterstützte Metriken:

Zyklomatische Komplexität

Schätzung des Entwicklungsaufwands.

Erkennung von großen Methoden und Klassen.

(23)

2.2 Modellbasierte Softwareentwicklung

23 Softwarekonstruktion

Softwarekonstruktion WS 2014/15 WS 2014/15

Werkzeugunterstützung

Sonar Source (Freeware)

http://sonarsource.com

Unterstützte Metriken: McCabe Zyklomatische Komplexität.

Source Monitor (Freeware)

http://www.campwoodsw.com/sourcemonitor.html

Unterstützte Metriken:

Zyklomatische Komplexität.

(24)

2.2 Modellbasierte Softwareentwicklung

24 Softwarekonstruktion

Softwarekonstruktion WS 2014/15 WS 2014/15

Zusammenfassung

In diesem Abschnitt:

Motivation Softwaremetriken

Zyklomatische Komplexität

Werkzeugunterstützung Im nächsten Abschnitt:

Dynamisches Testen

(25)

2.2 Modellbasierte Softwareentwicklung

25 Softwarekonstruktion

Softwarekonstruktion WS 2014/15 WS 2014/15

Anhang

(weitere Informationen)

(26)

2.2 Modellbasierte Softwareentwicklung

26 Softwarekonstruktion

Softwarekonstruktion WS 2014/15 WS 2014/15

Zyklomatische Zahl eines zyklischen Graphen

Zyklischer Graph: Auffassung als Vektorraum.

[via Menge seiner Eulerschen Teilgraphen]

Menge unabhängiger Pfade (erzeugen in Linearkombination alle Pfade durch Graphen).

Zyklomatische Zahl: Anzahl linear unabhängigen Pfade eines (zyklischen) Graphen.

Sei G = (V, E) mit

– e = |E(G)|, Anzahl Kanten (edges).

– v = |V(G)|, Anzahl Knoten (vertices).

Dann gilt cn(G) = e - v + 1 (cyclomatic number).

Literatur:

E. Riedemann: Testmethoden für sequentielle und nebenläufige Software-Systeme

http://www.ub.tu-dortmund.de/katalog/titel/687299

Abschnitt 16.1 (S.439-444)

Zyklomatische Zahl (S.440-441)

H. Balzert: Lehrbuch der Software-Technik/2 – Software-Management, Software-Qualitätssicherung http://www.ub.tu-dortmund.de/katalog/titel/645541

Abschnitt 5.11.2 – Die McCabe-Metrik (S.481-482)

(27)

2.2 Modellbasierte Softwareentwicklung

27 Softwarekonstruktion

Softwarekonstruktion WS 2014/15 WS 2014/15

Zyklomatische Zahl:

Alternative Definition

Alternative (äquivalente) Definition: Anzahl zu entfernender Kanten stark zusammenhängenden Graphen, um Spannbaum zu erhalten

Beispiel:

cn(G) = 5 - 4 + 1 = 2

(NB: Entfernung beider Kanten B-C und D-B ergibt einen Spannbaum des Graphen !)

A B

C

D

Literatur:

E. Riedemann: Testmethoden für sequentielle und nebenläufige Software-Systeme

http://www.ub.tu-dortmund.de/katalog/titel/687299

Abschnitt 16.1 (S.439-444)

Zyklomatische Zahl (S.440-441)

H. Balzert: Lehrbuch der Software-Technik/2 – Software-Management, Software-Qualitätssicherung http://www.ub.tu-dortmund.de/katalog/titel/645541

Abschnitt 5.11.2 – Die McCabe-Metrik (S.481-482)

(28)

2.2 Modellbasierte Softwareentwicklung

28 Softwarekonstruktion

Softwarekonstruktion WS 2014/15 WS 2014/15

Zyklomatische Komplexität eines Programmes

Für Definition dieser Zahl als Metrik für Programme, Kontrollflussgraphen „virtuelle“

Kante vom Endknoten zurück zum

Anfangsknoten hinzufügen, um zyklischen Graphen zu erhalten. (Annahme: Programm hat nur einen Endpunkt.)

(G) = e - v + 2: Zyklomatische Komplexität („McCabe-Metrik“) eines Kontrollflussgraphen G.

Beispiel: (G) = 10 - 9 + 2 = 3.

1 2 3 4 5

7 8 9 6

Virtuelle Kante, Kontrollfluss durch

„umgebendes“

Programm

Literatur:

H. Balzert: Lehrbuch der Software-Technik/2 – Software-Management, Software-Qualitätssicherung http://www.ub.tu-dortmund.de/katalog/titel/645541

Abschnitt 5.11.2 – Die McCabe-Metrik (S.481-482)

T.J. McCabe: A Complexity Measure, IEEE Transactions

on Software Engineering Vol. 2, No. 4, p. 308 (1976)

(29)

2.2 Modellbasierte Softwareentwicklung

29 Softwarekonstruktion

Softwarekonstruktion WS 2014/15 WS 2014/15

Mehrere Endpunkte

Bislang Annahme: Programm hat nur ein Endpunkt.

Programm mit mehreren Endpunkten: Für jeden Endpunkt „virtuelle“

Kante zum Startpunkt einfügen.  Zyklischen Graph erhalten.

Zyklomatische Komplexität des Kontrollflussgraphen G eines Programms mit mehreren Endpunkten:

(G) = e - n + p + 1

e Zahl der Kanten

n Zahl der Knoten

p Zahl der Endpunkte des Programms [NB: Annahme weiterhin: Nur ein Startpunkt.]

Literatur:

H. Balzert: Lehrbuch der Software-Technik/2 – Software-Management, Software-Qualitätssicherung http://www.ub.tu-dortmund.de/katalog/titel/645541

Abschnitt 5.11.2 – Die McCabe-Metrik (S.481-482)

(30)

2.2 Modellbasierte Softwareentwicklung

30 Softwarekonstruktion

Softwarekonstruktion WS 2014/15 WS 2014/15

Größenmaße

Größe – Wie umfangreich ist Software?

Skala: Verhältnisskala.

Mögliche Maße: NCSS, Anzahl Zeichen.

NCSS (Non-commented source statements):

Zählung der Codezeilen ohne Kommentar- und Leerzeilen.

Genaue Zählregeln erforderlich.

Programmiersprachenabhängig.

Leicht messbar.

(31)

2.2 Modellbasierte Softwareentwicklung

31 Softwarekonstruktion

Softwarekonstruktion WS 2014/15 WS 2014/15

Weitere Komplexitätsmaße

Softwaremetrik Beschreibung Fan-in /

Fan-out Fan-in einer Funktion oder Methode X: Anzahl Funktionen oder

Methoden, die X aufrufen. Fan-out: Anzahl Funktionen oder Methoden, die von X aufgerufen werden.

Hoher Fan-in: X eng mit Rest des System verbunden. Änderungen an X können weitreichende Folgewirkungen haben.

Hoher Fan-out: Gesamte Komplexität von X ist hoch, da

Steuerungs-logik von X aufgerufene Komponenten koordinieren muss.

Länge der

Bezeichner Maß durchschnittlicher Länge von Bezeichnern (Namen von Variablen, Klassen, Methoden, etc.) im Programm. Je länger sie sind, desto aussagekräftiger sind sie (damit Programm verständlicher).

Tiefe der Verschachte- lung

Maß der Tiefe der Verschachtelung von if-Bedingungen im Programm.

Tief verschachtelte if-Bedingungen: Schwer zu verstehen und potentiell fehleranfälliger.

Fog-Index Maß durchschnittlicher Länge von Wörtern und Sätzen im Dokument.

Je höher Fog-Index eines Dokuments ist, desto schwerer ist es zu verstehen.

(32)

2.2 Modellbasierte Softwareentwicklung

32 Softwarekonstruktion

Softwarekonstruktion WS 2014/15 WS 2014/15

Weitere Metriken für objektorientierte Programme

Kürzel Bezeichnung Erläuterung

NOV Number of

Variables Anzahl der Instanzvariablen (member variables) einer Klasse

NOM Number of

Methods Anzahl der Methoden (Operationen) einer Klasse

NORM Number of Redefined Methods

Anzahl der in einer Klasse redefinierten Methoden

Referenzen

ÄHNLICHE DOKUMENTE

● [Seminar „Software-Engineering und Sicherheit“ => erst wieder WiSe 2015/16 wg Forschungssemester]. Forschungsbereich Master: Software, Sicherheit

Für welche Zwecke könnte man Ihrer Meinung nach Modelle (z.B. in UML) in der modellbasierten Softwareentwicklung verwenden ?...

Für welche Zwecke könnte man Ihrer Meinung nach Modelle (z.B. in UML) in der modellbasierten Softwareentwicklung verwenden ?... 1.0 Modellbasierte

Wo finden sich die rot markierten Elemente aus dem Klassendiagramm im Metamodell wieder.. (Zur Erinnerung: Attribut in UML-Metamodell als

Beispiel: Profil für Datenbank.. Softwarekonstruktion WS 2014/15. Zu welchen Metamodellelementen gehören die

● IBM Redbook: Eclipse Development using the Graphical Editing Framework and the Eclipse Modeling Framework: http://www.redbooks.ibm.com/abstracts/sg246302.html.. 1.5 Eclipse

● Test beginnt mit der Komponente des Systems, die weitere Komponenten aufruft, aber selbst nicht aufgerufen wird. ● Untergeordnete Komponenten: Durch

5) Definieren der Syntax: Für jede identifizierte Operation Syntax formal beschreiben.  Alle Operationen zusammen mit ihren Parametern definieren. Syntax gesamter