Please use this identifier to cite or link to this item: http://dx.doi.org/10.18419/opus-9247
Authors: Ramadani, Jasmin
Title: Mining software repositories for coupled changes
Issue Date: 2017
metadata.ubs.publikation.typ: Dissertation
metadata.ubs.publikation.seiten: 256
URI: http://elib.uni-stuttgart.de/handle/11682/9264
http://nbn-resolving.de/urn:nbn:de:bsz:93-opus-ds-92648
http://dx.doi.org/10.18419/opus-9247
Abstract: Software-Repositories enthalten Informationen über den Entwicklungsverlauf eines Softwaresystems, die von den Entwicklern bei Wartungsarbeiten genutzt werden können. Dazu gehören Daten im Versionsverwaltungssystem, im Issue-Tracking-System und in den Dokumentationsarchiven. Eine der meistverwendeten Techniken zur Analyse von Software-Repositories ist Data Mining, wobei die Frequent-Itemsets-Analyse häufig verwendet wird, um Gruppen von Dateien zu definieren, die in der Vergangenheit häufig zusammen geändert wurden. Diese Dateigruppen definieren wir als gekoppelte Dateien oder Coupled Files. Die meisten Studien über gekoppelte Dateiänderungen in Software-Repositories beziehen Git Versioning-Systeme nicht mit ein. Auch wird darin das Feedback der Entwickler bezüglich der Nützlichkeit der gekoppelten Dateiänderungen und deren Einfluss auf die Wartungsaufgaben nicht berücksichtigt. Das Hauptziel der vorliegenden Untersuchung besteht darin, Entwickler bei ihren Wartungsaufgaben zu unterstützen, und zwar in Form von Vorschlägen für mögliche Dateiänderungen, die auf früheren Änderungen im Git-Versionsverlauf der Software basieren. Wir untersuchten die Extraktion gekoppelter Dateiänderungen durch Data Mining mit Git und analysierten die Rückmeldung von Entwicklern bezüglich der Interessantheit und Nützlichkeit der Vorschläge für gekoppelte Dateiänderungen sowie deren Einfluss auf die Wartungsarbeiten. Anhand einer Fallstudie in der Industrie extrahierten wir gekoppelte Dateiänderungen aus drei Git-Repositories. Basierend auf der in dieser Fallstudie untersuchten Interessantheit und den Erkenntnissen aus einer Reihe empirischer Studien zu Wartungsarbeiten stellten wir eine Theorie auf über die Verwendung von Vorschlägen für gekoppelte Dateiänderungen bei Wartungsarbeiten. Diese Theorie wurde in folgenden Studien getestet: (1) Wir führten ein kontrolliertes Experiment durch, in dem wir Heuristiken zum Gruppieren verwandter Änderungssätze in Git untersuchten, aus denen wir relevante gekoppelte Dateiänderungen extrahierten. (2) In einem Quasi-Experiment untersuchten wir die Nützlichkeit gekoppelter Dateiänderungsvorschläge und deren Auswirkung auf die Korrektheit der Lösung sowie den Zeitaufwand für die Bearbeitung der Wartungsaufgaben. (3) In einer Explorationsstudie untersuchten wir, wie gekoppelte Dateiänderungsvorschläge die Strategie der Entwickler beeinflussen, mit der sie Wartungsarbeiten Hilfe suchen. In einer Explorationsstudie erweiterten wir das Konzept gekoppelter Dateiänderungen auf Paketebene und ermittelten verschiedene Stufen von Entwickler-Kompetenz anhand der von den Entwicklern bearbeiteten Systempakete. Wir entwickelten ein Werkzeug auf Eclipse-Basis, das gekoppelte Dateiänderungsvorschläge extrahiert, visualisiert und Entwicklern bei Wartungsaufgaben zur Verfügung stellt. Wir haben Heuristiken definiert um verwandte Änderungen in Git zu gruppieren. Mit der Frequent-Itemsets-Analyse gelang uns die Extraktion relativer häufiger gekoppelter Dateiänderungen aus Git. Die an der Fallstudie zur Interessantheit gekoppelter Dateien beteiligten Entwickler zeigten sich interessiert an dieser Art von Hilfe während der Wartungsarbeiten. Das Experiment zur Nützlichkeit von gekoppelten Dateiänderungsvorschlägen ergab, dass die Entwickler, die die Vorschläge nutzten, ihre Aufgaben erfolgreicher bewältigten als diejenigen, die es nicht taten. Die Ergebnisse der Explorationsstudie zur Inanspruchnahme von Hilfe bei Wartungsaufgaben zeigen, dass gekoppelte Dateiänderungsvorschläge auch den Bedarf an für die Wartungsaufgaben relevanten externen Informationsquellen reduzieren und so den Wartungsprozess kompakter machen. Zudem wurde das Konzept der gekoppelten Dateiänderungen erfolgreich eingesetzt, um Kompetenzprofile mit unterschiedlichen Spezialisierungen zu erstellen, die auf den Änderungen in den gekoppelten Systempaketen basieren. Die Rückmeldungen der Entwickler zu dem Verfahren der gekoppelten Dateiänderungsvorschläge wurden als positiv identifiziert. Unsere Theorie über den Einsatz gekoppelter Dateiänderungsvorschläge bei Wartungsaufgaben wurde erfolgreich getestet. Mit den vorgeschlagenen Heuristiken ermittelten wir, dass die Gruppierung der Änderungssätze in Git ihre Relevanz beeinflusst. Die Rückmeldungen der Entwickler zeigten, dass das Format und der Kontext gekoppelter Dateiänderungsvorschläge sich auf deren Nützlichkeit auswirken. Die Ergebnisse zeigen auch, dass gekoppelte Dateiänderungsvorschläge die Bearbeitung der Wartungsaufgaben und die Strategien zum Suchen nach Hilfe positiv beeinflussen. Die weitere Analyse von Kopplungen zwischen Teilen des Quellcodes anhand großer Datensätze ermöglicht es, die Auswirkungen gekoppelter Dateiänderungen auf die Wartung und die Qualität von Software besser zu verstehen.
Appears in Collections:05 Fakultät Informatik, Elektrotechnik und Informationstechnik

Files in This Item:
File Description SizeFormat 
jr_thesis_final.pdf2,5 MBAdobe PDFView/Open


Items in OPUS are protected by copyright, with all rights reserved, unless otherwise indicated.