Was ist Qualität von Software und wie kann man sie bestimmen? Beide Teile dieser Frage sind zentrales Thema dieser Arbeit.
Zuerst wird versucht, eine Definition für Software Qualität zu finden, bevor ein Vorgehen zur dessen Bestimmung, nämlich das Software Benchmarking, vorgestellt wird. Die nähere Betrachtung des Benchmarkings führt anschließend zur Entwicklung eines Plug-Ins für SonarQube, welches das Benchmarking der einzelnen Softwareprojekte ermöglicht. Dieses Plug-In namens SBench errechnet, aufgrund der Regelverletzungen, alle vier Quartillen und ordnet die Projekte anschließend darin ein. Das Ergebnis wird in Form eines Boxplots und eines Benchmark Profils für den Benutzer grafisch dargestellt.
Die Anwendung des Plug-Ins zeigte, dass die Qualität der Projekte, im Vergleich zu den Referenzprojekten, sehr schnell eingeschätzt werden konnte und sich die Möglichkeit eröffnete gezielt Qualitätsverbesserungen durchzuführen. Das einzige Manko stellt die doch längere Zeit in Anspruch nehmende Berechnung dar. Die Informations- und Kommunikationstechnologien haben in den letzten Jahrzehnten eine immer bedeutungsvollere Aufgabe erhalten. Mittlerweile ist eine Welt ohne Computer, Smartphones und anderen Rechner unvorstellbar. Sie sind Bestandteil des täglichen Berufslebens, alle Bankgeschäfte werden mit ihrer Hilfe abgewickelt und in naher Zukunft wird es vermutlich möglich sein, ein ganzes Haus durch wenige Tastendrucke zu steuern.
All diese eingesetzten Geräte könnten jedoch nicht die gewünschten Funktionalitäten ausführen, würde auf ihnen nicht eine geeignete Software laufen. Ein Stück Software ist inzwischen in mehr Dingen enthalten, als man es sich jemals vorstellen konnte. Von der Waschmaschine, über Uhren bis hin zu Autos funktioniert alles nur noch mit Hilfe von Software.
Inhaltsverzeichnis
1 Einleitung
2 Qualität von Software
2.1 Was ist „Qualität“?
2.2 Metriken
2.3 Regeln
2.4 Software-Qualität
3 Statische Code-Analyse
3.1 Syntax-Analyse
3.2 Semantik-Analyse
3.3 Grafiken
4 Software Benchmarking
4.1 Vorgehen
4.2 Benchmark-Verteilung
4.3 Visualisierung - Das Boxplot
5 SonarQube
5.1 Funktionsweise
6 SBench
6.1 Konzept
6.2 Umsetzung
6.3 Anwendung
6.4 Erfahrungen
7 Zusammenfassung
8 Ausblick
Zielsetzung & Themen
Das zentrale Ziel dieser Arbeit ist die Entwicklung eines Plug-Ins für die Open-Source-Software SonarQube, welches es Benutzern ermöglicht, die eigene Software durch Benchmarking zu bewerten. Die Forschungsfrage fokussiert sich darauf, wie Softwarequalität messbar gemacht, durch statische Code-Analyse evaluiert und mittels Benchmark-Verfahren in einen vergleichbaren Kontext mit Referenzprojekten gesetzt werden kann.
- Definition und Messbarkeit von Softwarequalität
- Methodik der statischen Code-Analyse
- Konzepte des Software-Benchmarkings
- Integration von Benchmark-Funktionalitäten in SonarQube
- Visualisierung von Qualitätsergebnissen mittels Boxplots
Auszug aus dem Buch
4.3 Visualisierung - Das Boxplot
Es gibt unzählige Möglichkeiten zur Visualisierung in der Statistik. Für die Darstellung von Quartillen eignet sich jedoch eines, nach der Meinung des Autors, am besten. Das Boxplot Diagramm zeigt auf einfache Art und Weise die einzelnen Quartillen und erlaubt es einzelne Werte übersichtlich einzuzeichnen. Eigentlich perfekt geeignet für die Anforderungen an das SBench Plug-In und an die damit verbundene Anzeige. Was die einzelnen Quartillen genau bedeuten und wie sie berechnet werden, wurde schon in Abschnitt 4.1 näher beschrieben und ist nicht mehr Teil dieses Abschnitts.
Ein Boxplot ist eine annotierte Zeichnung bestehend aus einem großen Quadrat und mehreren weiteren Linien (Pyzdek, 2003) (Henze, 2013). Es wird dafür verwendet die einzelnen Quartillen, Q25, Q50 und Q75 aufzuzeigen (Pyzdek, 2003) (Henze, 2013). Darüber hinaus beinhaltet es die Darstellung des Maximums und des Minimums (Pyzdek, 2003) (Henze, 2013). Beim Boxplot gibt es unterschiedliche Ausführungen, so wäre es bei manchen auch noch möglich Punkte hervorzuheben, welche das Diagramm um eine gewisse Länge, wie zum Beispiel das 3-fache von Q75, übersteigen (Pyzdek, 2003) (Henze, 2013). Da dieser Boxplot später im Plug-In nur maximal einen Ausreißer haben wird, nämlich das zu analysierende Projekt, wird auf eine solche Darstellung jedoch verzichtet. Abbildung 7 zeigt den Aufbau und die Annotation eines Boxplot. Man sieht in der Mitte das Quadrat, welches durch Q25 und Q75 jeweils begrenzt wird. Demnach liegen 25% der Werte jeweils unterhalb und oberhalb der Box und 50% sind in der Box zu finden. Irgendwo innerhalb dieses Quadrats findet sich außerdem eine Linie welche Q50, also den Median, bezeichnet. Außerhalb dieses Quadrats führt jeweils eine Linie bis zum Minimum und zum Maximum.
Zusammenfassung der Kapitel
1 Einleitung: Diese Einleitung führt in die Bedeutung von Softwarequalität ein und erläutert das Ziel der Entwicklung eines Benchmarking-Plug-Ins für SonarQube.
2 Qualität von Software: Dieses Kapitel erörtert verschiedene Ansätze zur Definition von Softwarequalität und stellt relevante Metriken, Regeln sowie Qualitätsmerkmale vor.
3 Statische Code-Analyse: Hier wird die Methode der statischen Code-Analyse als Grundlage für die Datenermittlung, unterteilt in Syntax- und Semantik-Analyse, detailliert beschrieben.
4 Software Benchmarking: Das Kapitel erläutert das Vorgehen beim Benchmarking, die Berechnung von Benchmark-Verteilungen und die Visualisierung mittels Boxplots.
5 SonarQube: Es wird ein Überblick über die Plattform SonarQube und deren grundlegende Funktionsweise gegeben.
6 SBench: Dieses Hauptkapitel dokumentiert das Konzept, die Umsetzung, die praktische Anwendung sowie die gewonnenen Erfahrungen bei der Entwicklung des SBench Plug-Ins.
7 Zusammenfassung: Dieses Kapitel fasst die wesentlichen Erkenntnisse der Arbeit zusammen.
8 Ausblick: Hier werden Möglichkeiten für zukünftige Weiterentwicklungen und Optimierungen des Plug-Ins aufgezeigt.
Schlüsselwörter
Softwarequalität, SonarQube, Benchmarking, Statische Code-Analyse, SBench, Metriken, Qualitätsmerkmale, Quartillen, Boxplot, Plugin, Software-Entwicklung, Qualitätssicherung, Regelverletzungen, Benchmark-Verteilung, Software-Benchmark
Häufig gestellte Fragen
Worum geht es in dieser Masterarbeit im Kern?
Die Arbeit befasst sich mit der Entwicklung eines Plug-Ins namens SBench für die Plattform SonarQube, um Softwareprojekte mittels Benchmarking hinsichtlich ihrer Qualität vergleichbar zu machen.
Welches sind die zentralen Themenfelder der Publikation?
Die Arbeit verknüpft die Bereiche Softwarequalitätsmanagement, statische Code-Analyse und Benchmarking-Verfahren im IT-Umfeld.
Was ist das primäre Ziel der Forschungsarbeit?
Das primäre Ziel ist es, eine Lücke in SonarQube zu schließen, indem ein Werkzeug geschaffen wird, das nicht nur Fehler erkennt, sondern die Softwarequalität im Vergleich zu Referenzprojekten bewertbar macht.
Welche wissenschaftliche Methode wird verwendet?
Es wird eine regelbasierte Benchmarking-Methode angewandt, die auf den Ergebnissen einer statischen Code-Analyse basiert und Quartillberechnungen zur Einordnung der Projektdaten nutzt.
Was wird im Hauptteil der Arbeit behandelt?
Der Hauptteil umfasst die theoretischen Grundlagen zu Softwarequalität, die Analyse von Code, die Benchmarking-Modelle sowie die detaillierte Konzeptualisierung und Umsetzung des Plug-Ins SBench.
Welche Schlüsselbegriffe charakterisieren die Arbeit?
Die Arbeit ist maßgeblich durch Begriffe wie Softwarequalität, Benchmarking, SBench, Quartillen, Boxplot und SonarQube geprägt.
Wie werden Referenzprojekte im SBench Plug-In verwaltet?
Referenzprojekte können über eine spezielle Konfigurationsseite hinzugefügt oder entfernt werden, wobei auch die Kennzeichnung als „Buddy-Projekte“ für einen direkten Vergleich möglich ist.
Warum wurde das Boxplot zur Visualisierung gewählt?
Das Boxplot eignet sich ideal, um auf einfache Weise Quartillen sowie Ausreißer darzustellen, was dem Benutzer eine schnelle und übersichtliche Einordnung der Projektqualität ermöglicht.
Was ist die „Technische Schuld“ im Kontext dieser Arbeit?
Technische Schuld beschreibt den Aufwand, der entsteht, wenn Entwickler „schnell und schmutzig“ programmieren, anstatt optimale Lösungen zu wählen; dies wird von SonarQube als Metrik erfasst.
- Arbeit zitieren
- Philipp Täubel (Autor:in), 2014, Beurteilung der Qualität von Software. Software Benchmarking und die Entwicklung eines Plugins für Sonarcube, München, GRIN Verlag, https://www.grin.com/document/992317