Forschungsthemen
[DA] Untersuchung des Zusammenhangs zwischen der Softwareproduktqualität und dem Softwareentwicklungsprozess
Die Qualität von Softwaresystemen ist ein essentieller Aspekt für die langfristige Entwickel- und Wartbarkeit sowie Betreib- und Nutzbarkeit im Unternehmenskontext. Aus ihr folgt also, ob die in das Softwaresystem getätigten Investitionen dauerhaft gesichert werden können und von diesen profitiert werden kann. Da die Rahmenbedingungen und Anforderungen für jede Software individuell sind, ist es auch die Auslegung des Begriffs "Softwarequalität". Trotz existierender Qualitätsmodelle wie der ISO 25010, die Softwarequalität greifbar machen, herrscht in Softwareprojekten sehr selten Klarheit darüber, welche Qualitätsmerkmale relevant sind. Fehlt also das Ziel der zu optimierenden Merkmale, bleibt die eigentlich relevante Qualität zurück. Das Ziel sollte also sein, die zu optimierenden Qualitätsmerkmale zu kennen, zu wissen, wie diese beeinflusst werden können und damit auch, wie diese gemessen werden können.
Softwarequalität, bzw. deren Abwesenheit, äußert sich zu zwei unterschiedlichen Zeitpunkten: Für den Entwickler zeigt sie sich in Form der Eigenschaften des Source-Codes, wie zum Beispiel der Komplexität und Größe, der Existenz klarer Schnittstellen, geringer externer Kopplung bei hoher interner Kohäsion oder auch der Testabdeckung. All diese Eigenschaften beeinflussen, wie sicher und effizient der Entwickler Änderungen vornehmen kann. Ist dies nur schwer möglich, schlägt sich dies im Folgenden in der Qualifizierung, dem Roll-Out und dem Betrieb nieder, was wiederum durch Bug-Tickets oder zusätzliche Requests zurückgespielt wird. Beide Zeitpunkte lassen sich messen und werden typischerweise als Leading und Lagging Metrics ausgewiesen.
Da das Auftreten schlechter Lagging Metrics, beispielsweise einer hohen Change Defect Rate, offensichtlich erhöhte Aufwände, Kosten und zum Teil auch Risiken erzeugt, ist immer das Ziel, diese zu verbessern und Fehler vorab zu vermeiden. Die Frage ist daher, ob Leading und Lagging Metrics in Korrelation zueinander gebracht werden können, um bereits aus der Entwicklung heraus erkennen zu können, wo potentielle Verschlechterungen für Lagging Metrics liegen. Dies würde außerdem die Projektplanung insofern vereinfachen, als das präventive Maßnahmen begründbar vorgeplant werden können, um über die Zeit in Bestandsprojekten auch Risiken abzubauen, bevor diese sich in Problemen manifestieren.
Die Arbeit soll untersuchen, inwiefern eine Korrelation oder gar ein kausaler Zusammenhang zwischen Leading und Lagging Metrics herstellbar ist. Dafür soll im Kontext des Qualitätsmerkmals "Wartbarkeit" der ISO25010:
- identifiziert werden, welche Leading und Lagging Metrics als Indikator für Wartbarkeit dienen können
- untersucht werden, welche Leading und Lagging Metrics in potentieller Korrelation zueinander stehen
- anhand von Beispielsystemen (Open Source, Maven/Java, gepflegte Git-Historie und Issue Tracker) die Erhebung der jeweiligen Metriken umgesetzt werden
- auf der geschaffenen Datenbasis die Korrelation und/oder Kausalität zw. deren Abwesenheit nachgewiesen werden
- überprüft werden, inwiefern die Kombination mehrerer Leading Metrics eine bessere Aussagekraft bietet
- die Übertragbarkeit der Ergebnisse zwischen den Systemen betrachtet werden
Betreuer: Sebastian Götz