Recommending move method refactorings using dependency sets

Carregando...
Imagem de Miniatura

Título da Revista

ISSN da Revista

Título de Volume

Editor

Universidade Federal de Minas Gerais

Descrição

Tipo

Dissertação de mestrado

Título alternativo

Membros da banca

Ricardo Terra Nunes Bueno Villela
Fernando Jose Castor de Lima Filho
Fernando Magno Quintao Pereira

Resumo

Métodos implementados em classes incorretas são 'code smells' comuns em sistemas orientados a objetos, especialmente no caso de sistemas mantidos e evoluídos durante anos. Para atenuar esse problema de projeto, esta dissertação de mestrado propõe uma abordagem que recomenda refatorações do tipo Mover Método com base no conjunto de dependências estáticas estabelecidas por um método. Mais especificamente, a abordagem proposta compara a similaridade entre as dependências estabelecidas por um método com as dependências estabelecidas por métodos de possíveis classes de destino. A proposta foi avaliada usando sistemas de uma versão compilada do Qualitas Corpus. Os resultados alcançados fornecem uma precisão média de 60% e um recall médio de 81%. Tais resultados são, respectivamente, 129% e 49% melhores do que aqueles alcançados por JDeodorant, um sistema de recomendação bastante conhecido.

Abstract

Methods implemented in incorrect classes are common bad smells in object-oriented systems, especially in the case of systems maintained and evolved for years. To tackle this design flaw, we propose a novel approach that recommends Move Method refactorings based on the set of static dependencies established by a method. More specifically, our approach compares the similarity of the dependencies established by a source method with the dependencies established by the methods in possible target classes. We evaluated our approach using systems from a compiled version of the Qualitas Corpus. We report that our approach provides an average precision of 60.63% and an average recall of 81.07%. Such results are, respectively, 129% and 49% better than the results achieved by JDeodorant, a well-known move method recommendation system.

Assunto

Sistemas de recomendação, Computação, Engenharia de software

Palavras-chave

Dependency sets, Recommendation systems, Move method refactorings

Citação

Departamento

Curso

Endereço externo

Avaliação

Revisão

Suplementado Por

Referenciado Por