EMPIRICALLY SUPPORTED SIMILARITY COEFFICIENTS FOR THE IDENTIFICATION OF REFACTORING OPPORTUNITIES
Arquitetura de Software. Similaridade Estrutural. Refatoração de Código. Move Class. Move Method. Extract Method.
Refatoração de código é definido como o processo de alteração de um sistema de software, preservando seu comportamento externo, mas melhorando sua estrutura interna. Por meio da refatoração, torna-se possível tratar os sintomas da arquitetura de código, conhecidos como Code Smells, que podem afetar características como portabilidade, reusabilidade, manutenibilidade e escalabilidade. Várias técnicas para identificar oportunidades de refatoração usam coeficientes de similaridade para encontrar entidades mal posicionadas na arquitetura do sistema, assim como determinar onde deveria estar localizada. Como exemplo, espera-se que um método esteja localizado em uma classe cujos outros métodos sejam estruturalmente semelhantes a ele. No entanto, os coeficientes existentes na literatura não foram projetados para a análise estrutural de sistemas de software, o que pode não garantir uma precisão satisfatória.
Portanto, esta dissertação de mestrado propõe três novos coeficientes–PTMC, PTMM e PTEM–para melhorar a precisão da identificação de oportunidades de refatoração para as operações de Move Class, Move Method e Extract Method, respectivamente. As principais contribuições são: (i) possibilitar a localização com mais precisão entidades posicionadas incorretamente em uma arquitetura de sistema e (ii) alavancar a precisão de ferramentas para identificação de oportunidades de refatoração com base na similaridade estrutural.
Primeiramente, foi investigada a precisão de 18 coeficientes de similaridade em 10 sis- temas da base Qualitas.class Corpus (training set) e, com base nos resultados, foi selecionado o coeficiente mais adequado para ser adaptado. Em seguida, foi adaptado o coeficiente sele- cionado por meio de um experimento empírico composto de uma combinação de tratamentos com replicação sobre algoritmos genéticos para gerar os coeficientes propostos. Por fim, foi implementada AIRP, uma ferramenta que implementa os coeficientes propostos para identificar oportunidades de refatoração.
Para avaliar os coeficientes propostos, foram comparados tais coeficientes com outros 18 coeficientes em outros 101 sistemas da base Qualitas.class Corpus (training set). Os resultados indicam, em relação ao melhor coeficiente analisado, uma melhora estatística de 5,23% a 6,81% para a identificação de oportunidades de refatoração Move Class, 12,33% a 14,79% para Move Method e 0,25 % a 0,40% para Extract Method.