Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Software-Engineering

Ähnliche Präsentationen


Präsentation zum Thema: "Software-Engineering"—  Präsentation transkript:

1 Software-Engineering
Lösung für Praktikum I Software-Engineering Software-Metriken Prof. Dr. Bernd Hafenrichter

2 Lösung für Praktikum I Zyklomatische Zahl (CCN)
Wird pro Methode berechnet Darstellung der Programms als Kontrollflussgraph V(G) = e – n + 2 e = Anzahl der Kanten n = Anzahl der Knoten Prof. Dr. Bernd Hafenrichter

3 Lösung für Praktikum I Zyklomatische Zahl
Faustregeln für die zyklomatische Komplexität V(G): V(G) Risiko 1 – 10 Einfaches Programm, geringes Risiko 11 – 20 komplexeres Programm, erträgliches Risiko 21 – 50 komplexes Programm, hohes Risiko > 50 untestbares Programm, extrem hohes Risiko oder einfacher: Wenn eine Umstrukturierung ansteht, dann beginne mit der Komponente, die die h¨ochste zyklomatische Komplexit¨at hat! Prof. Dr. Bernd Hafenrichter

4 Lösung für Praktikum I Coupling between Objects
Zählt die Referenztypen, die in • Attributdeklarationen, • formalen Parametern, • Rückgabewerttypen, • "Throws"-Deklarationen und • lokalen Variablen verwendet werden, sowie • Typen, mit denen die Auswahl von Attributen und Methoden getroffen wird. • Primitive Typen, Typen des Pakets java.lang und Supertypen werden nicht gezählt. Prof. Dr. Bernd Hafenrichter

5 Lösung für Praktikum I Coupling between Objects
Der Messwert für eine Klasse A gibt die Anzahl von Klassen an, die A benutzt. • Besitzen Klassen einen hohen CBO, sind sie aufgrund zahlreicher Abhängigkeiten mit anderen Klassen schwer einzeln wiederverwendbar und verstehbar. • Außerdem sorgt die hohe Verflochentenheit dafür, dass bei Änderungen einer einzelnen Klasse, viele weitere Systemteile in Mitleidenschaft gezogen werden. Prof. Dr. Bernd Hafenrichter

6 Lösung für Praktikum I Response for a Class
Bei der Berechnung dieses Maßes werden Klassen als nachrichtenempfangende Einheiten angesehen und die Frage gestellt: Welche Methoden können ausgeführt werden, wenn eine beliebige Nachricht an eine Instanz dieser Klasse gesendet wird? Zu diesem "reponse set" gehören 1. alle Methoden der Klasse selbst und 2. alle weiteren Methoden anderer Klassen, welche durch die Methoden in (1.) direkt aufgerufen werden. Das Maß liefert daher ein Indiz für die Interaktionskopplung der betreffenden Klasse. Die Autoren argumentieren, dass Klassen mit einer großen Antwortmenge ein größeres Maß an Verständnis erfordern und daher zu mehr Aufwand beim Debuggen und Testen führen. Also: Je größer RFC, desto höher ist die Fehlerwahrscheinlichkeit Prof. Dr. Bernd Hafenrichter

7 Lösung für Praktikum I ACD-Metrik
Die ACD ist die mittlere Anzahl von Abhängigkeiten einer Komponente zu anderen Komponenten. ACD=10/5=2 Prof. Dr. Bernd Hafenrichter

8 Lösung für Praktikum I NCSS-Metrik
NCSS = Non-Commenting-Source-Statement Setzt sich wie folgt zusammen Alle Deklarationen Alle Statements Keine Kommentare Keine leeren Anweisungen Grundansatz: Zähle alle ";" und alle " {„ Klassen mit mehr als 1000 Zeilen Code werden als zu groß erachtet Prof. Dr. Bernd Hafenrichter


Herunterladen ppt "Software-Engineering"

Ähnliche Präsentationen


Google-Anzeigen