Using Jason to Develop Refactoring Agents
Baldoino Santos Neto, Viviane Torres da Silva, Márcio Ribeiro, Evandro De Barros Costa, Carlos J. P. de Lucena
Abstract
Baldoino Santos Neto, Viviane Torres da Silva, Márcio Ribeiro, Evandro De Barros Costa, Carlos J. P. de Lucena
Abstract
Refactoring is one of the main techniques used when maintaining and evolving the software. It works by changing the software in such way that improves its internal structure without changing its external behavioral. This paper focuses on issues around software refactoring, such as: (i) figure out where the software should be refactored, (ii) define which refactoring(s) should be applied, (iii) ensure that the external behavior of the software will be preserved after applying the refactoring, (iv) evaluate the gains and losses on the software quality resulting of the refactoring, (v) apply the refactoring, and, (vi) maintain the consistence between the refactored program code and other artifacts. Given the amount of issues to be considered, the refactoring activities when done in a manual way are an error-prone and extremely expensive. This paper provides an extension of the Jason platform to enable the development of refactoring agents able to perform software refactoring in an autonomic way. Such approach accelerates the process of executing a refactoring and reduces the probability of introducing defects.
OpenAlex reports 1 citations for this work. Citation counts describe recorded attention and do not establish research quality.
A contribution statement is not available in the OpenAlex record.
Method details are not available in the OpenAlex metadata.
Findings are not separately available in the OpenAlex metadata.
Limitations are not available in the OpenAlex metadata.
Application details are not available in the OpenAlex metadata.
Refactoring is one of the main techniques used when maintaining and evolving the software. It works by changing the software in such way that improves its internal structure without changing its external behavioral. This paper focuses on issues around software refactoring, such as: (i) figure out where the software should be refactored, (ii) define which refactoring(s) should be applied, (iii) ensure that the external behavior of the software will be preserved after applying the refactoring, (iv) evaluate the gains and losses on the software quality resulting of the refactoring, (v) apply the refactoring, and, (vi) maintain the consistence between the refactored program code and other artifacts. Given the amount of issues to be considered, the refactoring activities when done in a manual way are an error-prone and extremely expensive. This paper provides an extension of the Jason platform to enable the development of refactoring agents able to perform software refactoring in an autonomic way. Such approach accelerates the process of executing a refactoring and reduces the probability of introducing defects.
Key concepts: Code refactoring, Computer science, Software engineering, Software, Process (computing), Software maintenance, Software quality, Programming language