Return to search

Uma abordagem para apoio à decisão de refatoração em sistemas de software / Class-splitting refactoring based on temporal analysis of cohesion

A falta de modularização é um dos principais problemas encontrados em sistemas de
software. Diversos estudos abordam esse problema apresentando soluções que visam aumentar
a qualidade da modularização. Contudo, ainda não existe uma solução definitiva
que possa ser aplicada em qualquer situação na qual esse problema ocorre. Uma situação
específica diz respeito à falta de coesão entre os métodos de uma classe em sistemas
orientados a objetos. Para essa situação, uma solução apropriada seria aplicar a refatoração
de classes. O processo de refatoração de classes tem como objetivo melhorar a
modularização de um sistema sem altear suas funcionalidades. Contudo, esse processo
pode ser extremamente complexo e difícil de ser executado, pois existem efeitos colaterais
que podem ser provocados por alterações indevidas. Nesse contexto, ainda existe uma
lacuna por melhores sistemas de apoio à refatoração visando o aumento de coesão entre
métodos das classes e uma melhor modularização do sistema. Assim, este trabalho tem
como objetivo propor uma abordagem para fornecer informações de apoio à refatoração.
Tais informações foram obtidas a partir de uma análise dos impactos gerados pelas refatorações
aplicadas em 8 sistemas desenvolvidos na linguagem Java. O impacto dessas
refatorações foram identificados e medidos através da análise da evolução das métricas
de coesão. Foi realizada uma análise qualitativa sobre as refatorações identificadas com
o objetivo de determinar qual tipo de estratégia foi adotada em cada situação. A partir
dessa análise foi possível propor guias de refatoração que foram apresentadas aos desenvolvedores
dos 8 sistemas através de um survey. O estudo obteve resultados positivos
onde a partir de discussões realizadas com os desenvolvedores foram observadas situações
nas quais as guias propostas claramente ajudariam no processo de refatoração. Também
foram constatadas situações nas quais as recomendações podem ser adotadas como novas
práticas com o objetivo de evitar perdas de modularização. / The lack of modularization is one of the main problems encountered in software systems.
Several studies address this problem by presenting solutions that aim to increase
the modularization quality. However, there is still no definitive solution that can be applied
in any situation in which this problem occurs. A specific situation concerns the lack
of cohesion among methods of a class in object-oriented systems. In this situation, an
appropriate solution would be to apply a class refactoring. The class refactoring process
aims at improving the modularization of a system without changing its functionalities.
However, this process can be complex and difficult to execute because of the side effects
that can be caused by improper changes. In this context, better systems for supporting
refactoring are still lacking, so the cohesion between class methods and a better modularization
of the system could be achieved. This work proposes an approach to provide
information to support of refactoring. This information was obtained from an analysis
of the impacts generated by the refactorings applied in 8 systems developed in Java language.
The impact of these refactorings was identified and measured by analyzing the
evolution of cohesion metrics. A qualitative analysis was performed on the refactorings
identified with the objective of determining what type of strategy was adopted in each
situation. From this analysis it was possible to propose refactoring guides that were presented
to the developers of the 8 systems through a survey. The study found positive
results in which discussions with the developers led to situations in which the proposed
guidelines would clearly help the refactoring process. It was also observed situations in
which the recommendations can be adopted as new practices in order to avoid losses of
modularization. / Dissertação (Mestrado)

Identiferoai:union.ndltd.org:IBICT/urn:repox.ist.utl.pt:RI_UFU:oai:repositorio.ufu.br:123456789/21178
Date28 August 2017
CreatorsMachado, João Paulo Lemes
ContributorsMaia, Marcelo de Ameida, Macedo, Autran, Figueiredo, Eduardo
PublisherUniversidade Federal de Uberlândia, Programa de Pós-graduação em Ciência da Computação, Brasil
Source SetsIBICT Brazilian ETDs
LanguagePortuguese
Detected LanguagePortuguese
Typeinfo:eu-repo/semantics/publishedVersion, info:eu-repo/semantics/masterThesis
Sourcereponame:Repositório Institucional da UFU, instname:Universidade Federal de Uberlândia, instacron:UFU
Rightsinfo:eu-repo/semantics/openAccess

Page generated in 0.0025 seconds