Sigmund, T. (2007). Analyzing the interrelationship of evolution activities such as refactoring to estimate the influence on software defect prediction [Master Thesis, Technische Universität Wien]. reposiTUm. https://resolver.obvsg.at/urn:nbn:at:at-ubtuw:1-14901
Die vorliegende Diplomarbeit analysiert den Einfluss von evolutionären Aktivitäten, wie Refactoring, um das Auftreten von Softwarefehlern in naher Zukunft vorherzusagen. Die Verbesserung der Softwarequalität ist der Schlüssel, um die Fehlerdisposition von Software zu reduzieren. In diesem Zusammenhang sind nicht-funktionale Anforderungen, wie Verständlichkeit und Wartbarkeit, von größter Wichtigkeit. Aber wie können diese Erfordernisse realisiert werden? Eine Möglichkeit besteht darin Refactorings anzuwenden, welche das Design von vorhandenem Sourcecode betreffen, ohne das Verhalten nach Außen zu beeinflussen.<br /> Im Rahmen einer Fallstudie mittels fünf Open-Source Projekten verwenden wir Eigenschaften der Softwareevolution, um mittelfristige Fehler vorherzusagen. Wir verwenden Versionierungs- und Bugtracking-Systeme, um 110 Datamining Features zu extrahieren. Diese Features lassen sich in solche, mit und ohne Bezug zu Refactoring einteilen, um Softwarefehler in Zeitabschnitten von sechs Monaten vorherzusagen. Unser Ansatz umfasst Softwarecharakteristika, wie Größen- und Komplexitätsmaße, relationale Aspekte, Zeitbedingungen, oder teambezogene Aspekte. Diese Informationen dienen als Input für Klassifikationsalgorithmen, die Vorhersagemodelle für Softwarefehler erzeugen.<br /> Wir haben herausgefunden, dass Features mit und ohne Refactoring-Bezug zu Vorhersagemodellen von hoher Qualität führen. Weiters haben wir entdeckt, dass Refactoring auf eine bestimmte Art mit anderen Softwareaktivitäten assoziiert sein sollte, um das Auftreten von Softwarefehlern zu reduzieren.<br />Zusätzlich zeigen wir, dass gewisse Teilmengen von Refactoring Features von größter Wichtigkeit für die Vorhersagemodelle jedes einzelnen Projekts sind. Abschließend zeigten autorenbezogene Aspekte variable Ergebnisse, dennoch konnten wir mehrere interessante Erkenntnisse gewinnen.<br />
de
This thesis analyzes the influence of evolution activities such as refactoring to predict the occurrence of software defects in the near future. Improvement of software quality is the key to reduce error-proneness of software. In this relation non-functional requirements, like understandability and maintainability are of major importance. But how can these requirements be realized? One possibility is to apply refactorings, which affect the design of existing source code, without influencing the external behavior.<br />In a case study of five open source projects we use attributes of software evolution to predict medium-term defects. We use versioning and issue tracking systems to extract 110 data mining features. These features are separated in refactoring and non-refactoring related features to predict software defects in time periods of six months. Our approach covers software characteristics such as size and complexity measures, relational aspects, time constraints, or team related aspects.<br />This information is used as input into classification algorithms that create prediction models for software defects.<br />We found out that refactoring related features, as well as non-refactoring related features lead to high quality prediction models.<br />Furthermore, we revealed that refactoring should be associated with other software activities in a certain way to reduce software defect appearance. Additionally, we show that certain subsets of refactoring features are of major importance for the prediction models of each project. Concluding, author related aspects showed variable results, nevertheless we could make several interesting findings.