Please use this identifier to cite or link to this item: http://dx.doi.org/10.18419/opus-10481
Authors: Hubert, Johannes
Title: Implementation of an automatic extract method refactoring
Issue Date: 2019
metadata.ubs.publikation.typ: Abschlussarbeit (Master)
metadata.ubs.publikation.seiten: 59
URI: http://elib.uni-stuttgart.de/handle/11682/10498
http://nbn-resolving.de/urn:nbn:de:bsz:93-opus-ds-104986
http://dx.doi.org/10.18419/opus-10481
Abstract: Software quality is an important aspect to guarantee maintainability and comprehensibility of developed source code. Modern software projects use static code analysis tools to continuously monitor the software quality. Based on findings from these tools, developers refactor their code with the aim to remove detected code smells. Refactorings can use up a lot of resources when done manually and a lot of authors suggest semi-automated solutions to improve the refactoring experience for developers. One of the most applied refactorings is the extract method refactoring which is often used to improve long and complex methods. Recent studies showed, that existing semi-automated tools for this refactoring are not preferred by developers. We propose an approach to fully automate the extract method refactorings based on findings from static code analysis tools. Our approach finds refactoring opportunities in a selected method and ranks these candidates according to a scoring function. The highest ranked candidate will be automatically refactored using the extract method refactoring. We implement our approach using the existing Refactoring Bot framework, a software development bot which seamlessly integrates into the build pipeline of existing projects.
Software Qualität ist ein wichtiger Faktor um Wartbarkeit und Verständlichkeit von entwickeltem Programmcode zu garantieren. Moderne Software Projekte benutzen statische Programmcode Analyse Tools, um Software Qualität kontinuierlich zu überwachen. Basierend auf erkannten problematischen Stellen im Programmcode durch diese Tools, können Entwickler ihren Programmcode, mit dem Ziel diese problematischen Stellen zu entfernen, verbessern. Solches "Refactoring" braucht viele Ressourcen wenn es manuell durchgeführt wird und viel Autoren schlagen halb automatisierte Lösungen vor, um den Refactoring Prozess zu verbessern. Eine der meist genutzten Refactoring ist das "Methode extrahieren" Refactoring, welches oft genutzt wird um lange und komplexe Methoden zu verbessern. Aktuelle Studien zeigten, dass existierende halb automatisierte Tools für Refactoring von Entwicklern nicht bevorzugt werden. Wir schlagen eine Methode vor um das "Methode extrahieren" Refactoring voll automatisiert, basierend auf erkannten problematischen Stellen im Programmcode durch statische Analyse Tools, durchzuführen. Unsere Method findet Refactoring Optionen in einer ausgewählten Methode und bewertet diese Kandidaten mithilfe einer Bewertungsfunktion. Der Kandidat mit der höchsten Punktzahl wird dann benutzt um automatisch ein "Methode extrahieren" Refactoring durchzuführen. Wir implementieren die vorgeschlagene Herangehensweise in dem existierenden Refactoring Bot Framework, ein Softwareentwicklungs Bot, welcher nahtlos in die Infrastruktur existierender Projekte integriert werden kann.
Appears in Collections:05 Fakultät Informatik, Elektrotechnik und Informationstechnik

Files in This Item:
File Description SizeFormat 
Implementing of an Automatic Extract method Refactoring - Ma.pdf317,23 kBAdobe PDFView/Open


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