Lukas, S. (2021). Visualizing feature coupling evolution by utilizing source code co-change and issue tracking data [Diploma Thesis, Technische Universität Wien]. reposiTUm. https://doi.org/10.34726/hss.2021.95742
Während der Softwarewartung haben Entwickler/-innen verschiedene Informationsbedürfnisse bezüglich Softwarefeatures. Zum Beispiel müssen sie wissen, wo ein Feature im Quellcode implementiert wurde, welchen Einfluss Featureänderungen auf den Rest der Software haben, oder wie und wann sich ein Feature weiterentwickelt hat. Aufgrund der Größe und Komplexität von Softwareprojekten ist es für Entwickler/-innen eine mühsame und zeitintensive Aufgabe sich dieses Wissen zu erarbeiten. Diese Arbeit präsentiert einen Visualisierungsansatz, der die Daten von Versionskontrollsystemen und Issue-Tracking-Systemen nutzt, um Entwickler/-innen dabei zu unterstützen, Features im Quellcode zu finden, die Auswirkungen von Featureänderungen zu analysieren und die Featureentwicklung zu verstehen. In dieser Arbeit wurde ein Prototypeiner Visualisierung inkrementell entwickelt und in einer szenariobasierten Expertenevaluierung verwendet, mit der erfahrene Entwickler/-innen Aufgaben im Bereich derSoftwarewartung durchgeführt haben. Mithilfe der Visualisierung konnten die Teilnehmenden Quellcodeteile, wie Dateien oder Methoden, eines Features schnell finden, ohne, dass sie mit der Codebasis vertraut waren. Sie konnten auch jene Codeteile identifizieren, auf die sich eine Featureänderung auswirken könnte. Außerdem konnten die Teilnehmenden die Versionshistorie nutzen um festzustellen, seit wann bestimmte Features miteinander gekoppelt sind. Diese Ergebnisse zeigen, dass die in dieser Arbeit entwickelte Visualisierung Entwickler/-innen bei typischen Wartungsaufgaben, wie der Featurelokalisierung, unterstützt und deren Wissen über die implementierten Features erweitert.
de
During software maintenance, developers have different information needs regarding software features. For example, they need to know where a feature is implemented in the source code, which impact a feature change has on the rest of the software, or how and when the feature has evolved. Due to the size and complexity of software projects, feature comprehension is a cumbersome and time-consuming task during maintenance. This thesis proposes a visualization approach leveraging the data from Version Control Systems and Issue Tracking Systems to support developers locating features in the source code, analyzing the impact of feature changes and understanding feature evolution. In this work, a prototype of the proposed visualization has been elaborated and was used in scenario-based expert evaluation sessions where experienced developers performed tasks related to software maintenance. With the help of the visualization, participants could quickly locate feature-related source code entities, like files or methods, without being familiar with the codebase. They could also identify source code entities that a feature change might affect or investigate the history of features to determine, since when certain features have been coupled to each other. These results indicate that this thesis contributes a visualization idea to support developers during typical maintenance tasks like feature location or feature comprehension.