Die Computerentwicklung unserer heutigen Zeit ist geprägt durch große Fortschritte im Bereich der Hardware. Computer werden immer schneller und leistungsstarker und sind ein zentraler Bestandteil der Organisationen aller Unternehmen. Die Folge aus dieser Entwicklung ist, dass die Implementierung von immer modernen, leistungsfähigeren Softwareanwendungen möglich ist und auch von den meisten Organisationen erwartet wird. Leistungsfähige, qualitativ hochwertige Softwareanwendungen gewinnen in vielen Anwendungsbereichen immer mehr an Bedeutung, da sie zunehmend in vielen Projekten der Faktor sind, der über Erfolg und Misserfolg entscheidet. (Thaller 1994, S.14) In der Softwareentwicklung jedoch, erschweren leistungsfähige Softwaresysteme die einfache und schnelle Erstellung von zuverlässigen und verwaltbaren Code. Nicht selten bestehen Computerprogramme aus tausenden Zeilen von Code und bringen aufgrund ihres großen Umfangs enorme Schwierigkeiten mit sich. So ist unnötig komplexer Code oft Ursache für fehleranfällige Software und damit auch Ursache für eine schlechte Softwarequalität. Zudem kommt es mit steigernder
Komplexität zu einer Erhöhung der Änderbarkeit und Wartbarkeit von Software. Angesicht dieser Komplexitäts- und Umfangssteigerung, nimmt die Bedeutung des Messens von Softwarecode zur Qualitätskontrolle immer mehr zu. (Ligessmeyer 2009, S.232) Auch Tom DeMarco erkannte die Wichtigkeit von Softwaremessung und fasste dessen Bedeutung wie folgt zusammen:
„You can’t manage what you can’t control, and you can’t control what you don’t measure. To be effective software engineers or software managers, we must be able to control software development practice. If we don’t measure it, however, we will never have that control.” (DeMarco 1986)
Inhaltsverzeichnis
- 1 Einleitung
- 1.1 Problemstellung
- 1.2 Ziel dieser Arbeit
- 1.3 Gliederung
- 2 Begriffsdefinition
- 2.1 Softwarekomplexität
- 2.2 Metrik und Maß
- 3 Software-Metriken
- 3.1 Definition
- 3.2 Auswahl geeigneter Software-Metriken
- 3.2.1 Problematik
- 3.2.2 GQM Ansatz
- 3.3 Interpretation der Messergebnisse
- 3.4 Darstellung der Messergebnisse
- 4 Für die Messung von Code-Komplexität relevante Metriken
- 4.1 Traditionelle Produktmetriken
- 4.1.1 Lines of Code
- 4.1.2 Halstead Metriken
- 4.1.3 McCabes zyklomatische Komplexität
- 4.2 Objektorientierte Produktmetriken
- 4.2.1 Coupling between Objects
- 4.2.2 Depth of Inheritance Tree
- 4.2.3 Lack of Cohesion in Methods
- 5 Werkzeuge zur Ermittlung von statischen Produktmetriken
- 5.1 Statische Produktmetriken in Visual Studio generieren
- 5.2 Metrics Plugin für Eclipse
- 6 Zusammenfassung und Fazit
Zielsetzung und Themenschwerpunkte
Diese Seminararbeit befasst sich mit der Messung und Bewertung von Code-Komplexität. Ziel ist es, verschiedene Metriken und Werkzeuge zur Komplexitätsanalyse von Software vorzustellen und zu bewerten. Die Arbeit untersucht sowohl traditionelle als auch objektorientierte Metriken und deren praktische Anwendung.
- Definition und Bedeutung von Softwarekomplexität
- Übersicht und Vergleich verschiedener Code-Komplexitätsmetriken
- Anwendung geeigneter Metriken in der Praxis
- Bewertung von Software-Metrik-Werkzeugen
- Interpretation und Darstellung der Messergebnisse
Zusammenfassung der Kapitel
1 Einleitung: Dieses Kapitel führt in die Thematik der Code-Komplexität ein, beschreibt die Problemstellung und das Ziel der Arbeit. Es skizziert den Aufbau und die Struktur der Arbeit und liefert einen Überblick über die behandelten Themen.
2 Begriffsdefinition: Hier werden grundlegende Begriffe wie Softwarekomplexität, Metrik und Maß präzise definiert, um ein gemeinsames Verständnis für die weitere Arbeit zu schaffen. Diese Definitionen bilden die Grundlage für die folgenden Kapitel, die auf diesen Begriffen aufbauen.
3 Software-Metriken: Dieses Kapitel befasst sich mit der Auswahl geeigneter Software-Metriken zur Messung der Code-Komplexität. Es diskutiert die Problematik der Metrikauswahl und beschreibt den GQM-Ansatz (Goal-Question-Metric) als methodisches Vorgehen zur Auswahl relevanter Metriken. Weiterhin werden Aspekte der Interpretation und Darstellung der Messergebnisse behandelt.
4 Für die Messung von Code-Komplexität relevante Metriken: In diesem zentralen Kapitel werden verschiedene Metriken detailliert erläutert, unterteilt in traditionelle und objektorientierte Produktmetriken. Es werden Beispiele und deren Anwendung im Kontext von Code-Komplexität dargestellt, inklusive Lines of Code (LOC), Halstead-Metriken und der zyklomatischen Komplexität nach McCabe. Objektorientierte Metriken wie Coupling between Objects, Depth of Inheritance Tree und Lack of Cohesion in Methods werden ebenfalls eingehend beschrieben. Es erfolgt eine differenzierte Betrachtung und Gegenüberstellung der verschiedenen Ansätze.
5 Werkzeuge zur Ermittlung von statischen Produktmetriken: Das Kapitel beschreibt die praktische Anwendung der vorgestellten Metriken mithilfe von Werkzeugen. Es werden die Möglichkeiten zur Generierung statistischer Produktmetriken in Visual Studio und mit dem Metrics Plugin für Eclipse detailliert erklärt und verglichen. Dies zeigt die praktische Umsetzung der theoretischen Konzepte aus den vorherigen Kapiteln.
Schlüsselwörter
Code-Komplexität, Software-Metriken, Produktmetriken, Objektorientierte Metriken, Halstead-Metriken, Zyklomatische Komplexität, Coupling between Objects, Depth of Inheritance Tree, Lack of Cohesion in Methods, Visual Studio, Eclipse, GQM-Ansatz, Software-Qualität.
Häufig gestellte Fragen (FAQ) zur Seminararbeit: Messung und Bewertung von Code-Komplexität
Was ist der Gegenstand dieser Seminararbeit?
Die Seminararbeit befasst sich mit der Messung und Bewertung der Code-Komplexität in Software. Sie untersucht verschiedene Metriken und Werkzeuge zur Komplexitätsanalyse und bewertet deren Anwendung in der Praxis.
Welche Ziele verfolgt die Arbeit?
Das Hauptziel ist die Vorstellung und Bewertung verschiedener Metriken und Werkzeuge zur Komplexitätsanalyse von Software. Die Arbeit untersucht sowohl traditionelle als auch objektorientierte Metriken und deren praktische Anwendung. Weitere Ziele beinhalten die Definition und Bedeutung von Softwarekomplexität, den Vergleich verschiedener Code-Komplexitätsmetriken, die Anwendung geeigneter Metriken, die Bewertung von Software-Metrik-Werkzeugen und die Interpretation sowie Darstellung der Messergebnisse.
Welche Metriken werden behandelt?
Die Arbeit behandelt sowohl traditionelle Produktmetriken (Lines of Code, Halstead-Metriken, McCabe's zyklomatische Komplexität) als auch objektorientierte Metriken (Coupling between Objects, Depth of Inheritance Tree, Lack of Cohesion in Methods). Es erfolgt eine detaillierte Erläuterung und Gegenüberstellung der verschiedenen Ansätze.
Welche Werkzeuge werden vorgestellt?
Die praktische Anwendung der Metriken wird anhand von Visual Studio und dem Metrics Plugin für Eclipse demonstriert und verglichen. Die Arbeit erläutert detailliert, wie statische Produktmetriken in diesen Entwicklungsumgebungen generiert werden können.
Wie ist die Arbeit strukturiert?
Die Arbeit gliedert sich in folgende Kapitel: Einleitung (Problemstellung, Zielsetzung, Gliederung), Begriffsdefinition (Softwarekomplexität, Metrik, Maß), Software-Metriken (Auswahl, GQM-Ansatz, Interpretation, Darstellung), Relevante Metriken (traditionelle und objektorientierte Metriken), Werkzeuge zur Ermittlung statistischer Produktmetriken (Visual Studio, Eclipse Plugin), Zusammenfassung und Fazit.
Was ist der GQM-Ansatz?
Der GQM-Ansatz (Goal-Question-Metric) wird als methodisches Vorgehen zur Auswahl relevanter Metriken zur Messung der Code-Komplexität beschrieben. Er hilft, die Auswahl der Metriken gezielt auf die definierten Ziele auszurichten.
Welche Schlüsselwörter beschreiben den Inhalt der Arbeit?
Schlüsselwörter sind: Code-Komplexität, Software-Metriken, Produktmetriken, Objektorientierte Metriken, Halstead-Metriken, Zyklomatische Komplexität, Coupling between Objects, Depth of Inheritance Tree, Lack of Cohesion in Methods, Visual Studio, Eclipse, GQM-Ansatz, Software-Qualität.
Für wen ist diese Arbeit relevant?
Diese Arbeit ist relevant für alle, die sich mit der Messung und Bewertung von Software-Qualität und insbesondere der Code-Komplexität auseinandersetzen, einschließlich Softwareentwickler, Softwarearchitekten und Software-Ingenieure.
- Arbeit zitieren
- Tareq Heidarzada (Autor:in), 2010, Messung und Bewertung von Code-Komplexität, München, GRIN Verlag, https://www.grin.com/document/147850