Not logged in.

Contribution Details

Type Master's Thesis
Scope Discipline-based scholarship
Title Change Commander, Recommending Corrective Method Invocation Changes
Organization Unit
Authors
  • Jonas Zuberbühler
Supervisors
  • Beat Fluri
  • Harald Gall
Institution University of Zurich
Faculty Faculty of Economics, Business Administration and Information Technology
Date 2008
Abstract Text Our investigations of bug fixes in Eclipse showed that a significant amount of bugs were fixed by moving invocations of certain methods into the then-part or else-part of if-statements with similar conditions. Based on this finding, we leverage such context changes applied in the past to support developers while adding invocations of the same method. In this thesis we describe a recommendation system approach. We leverage the fine-grained change information extracted by ChangeDistiller of the development history of a software project and extract patterns among method calls that were moved into an if-statement. Based on these patterns, we prepare suitable context change recommendations for method invocations. In doing so, we aim for assisting the software development process and for helping to prevent bugs. Furthermore, we present ChangeCommander, an Eclipse plug-in that implements our approach to recommend insertions of particular if-statements before calling a method. ChangeCommander is seamlessly integrated into the build-process of the Eclipse IDE. It provides visual feedback on recommendations to the developer, presents context change suggestions by highlighting affected method invocations in the source code, and provides automated code adaptation support. To prove the usefulness of our approach, we conduct a simulation of our recommender on several software systems. For each system we can suggest context changes that are applied to fix a bug. This demonstrates that we can support the development process.
Zusammenfassung Unsere Untersuchungen von Fehlerbehebungen haben ergeben, dass ein Grossteil der Fehler korrigiert wird, indem Methodenaufrufe in den THEN-Teil oder ELSE-Teil einer IF-Anweisung mit ähnlicher Bedingung verschoben werden. Basierend auf dieser Erkenntnis verwenden wir solche Kontextänderungen, die in der Vergangenheit durchgeführt wurden, um Entwicklern zu helfen, wenn sie die gleichen Methodenaufrufe verwenden. In dieser Diplomarbeit präsentieren wir einen Ansatz für die Entwicklung eines Empfehlungssystems. Dieser baut auf der weiteren Nutzung von feinkörnigen Programmcodeänderungen auf, die von ChangeDistiller aus der Entwicklungsgeschichte eines Softwareprojektes extrahiert wurden. Dabei suchen und extrahieren wir Regelmässigkeiten unter Methodenaufrufen, welche in eine IF-Anweisung verschoben wurden. Basierend auf den entdeckten Mustern stellen wir geeignete Kontextänderungen für Methodenaufrufe bereit. Wir verfolgen dabei das Ziel, den Software-Entwicklungsprozess aktiv zu unterstützen und beim Vermeiden von Fehlern zu helfen. Des Weiteren stellen wir ChangeCommander, ein Eclipse Plug-in, vor. Dieses implementiert unseren Ansatz und unterbreitet Vorschläge für das Einfügen von IF-Anweisungen vor dem Aufruf einer Methode. ChangeCommander ist nahtlos in den Erstellungsprozess der Eclipse Entwicklungsumgebung integriert. Dem Entwickler wird dabei visuelles Feedback zu Empfehlungen angeboten, und vorgeschlagene Kontextänderungen werden durch Hervorhebung des betroffenen Methodenaufrufs im Programmcode angezeigt. Darüber hinaus bieten wir die automatische Realisierung der Änderung im Quelltext an. Um die Nützlichkeit unseres Ansatzes zu beweisen, führen wir eine Simulation unseres Empfehlungssystems an mehreren Software-Systemen durch. Dabei können wir für jedes System Kontextänderungen vorschlagen, welche zur Behebung eines Fehlers führen. Dies beweist, dass wir den Entwicklungsprozess unterstützen können.
Export BibTeX