AutoRefactoring: A platform to build refactoring agents

•We propose a platform to implement agents able to autonomously perform refactoring.•The platform is able to improve software code quality without changing its behavior.•Results are shown on five open source projects. Software maintenance may degrade the software quality. One of the primary ways to...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Veröffentlicht in:Expert systems with applications 2015-02, Vol.42 (3), p.1652-1664
Hauptverfasser: Santos Neto, Baldoino Fonseca dos, Ribeiro, Márcio, Silva, Viviane Torres da, Braga, Christiano, Lucena, Carlos José Pereira de, Costa, Evandro de Barros
Format: Artikel
Sprache:eng
Schlagworte:
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
Beschreibung
Zusammenfassung:•We propose a platform to implement agents able to autonomously perform refactoring.•The platform is able to improve software code quality without changing its behavior.•Results are shown on five open source projects. Software maintenance may degrade the software quality. One of the primary ways to reduce undesired effects of maintenance is refactoring, which is a technique to improve software code quality without changing its observable behavior. To safely apply a refactoring, several issues must be considered: (i) identify the code parts that should be improved; (ii) determine the changes that must be applied to the code in order to improve its; (iii) evaluate the corrections impacts on code quality; and (iv) check that the observable behavior of the software will be preserved after applying the corrections. Given the amount of issues to consider, refactoring by hand has been assumed to be an expensive and error-prone task. Therefore, in this paper, we propose an agent-based platform that enables to implement an agent able to autonomously deal with the above mentioned refactoring issues. To evaluate our approach, we performed an empirical study on code smells detection and correction, code quality improvement and preservation of the software observable behavior. To answer our research questions, we analyze 5 releases of Java open source projects, ranging from 166 to 711 classes.
ISSN:0957-4174
1873-6793
DOI:10.1016/j.eswa.2014.09.022