Título: | ON THE COMPLETENESS OF COMPOSITE CODE REFACTORINGS FOR BENEFICIAL SMELL REMOVA | ||||||||||||
Autor: |
ANA CARLA GOMES BIBIANO |
||||||||||||
Colaborador(es): |
ALESSANDRO FABRICIO GARCIA - Orientador WESLEY KLEWERTON GUEZ ASSUNCAO - Coorientador |
||||||||||||
Catalogação: | 22/JUN/2023 | Língua(s): | ENGLISH - UNITED STATES |
||||||||||
Tipo: | TEXT | Subtipo: | THESIS | ||||||||||
Notas: |
[pt] Todos os dados constantes dos documentos são de inteira responsabilidade de seus autores. Os dados utilizados nas descrições dos documentos estão em conformidade com os sistemas da administração da PUC-Rio. [en] All data contained in the documents are the sole responsibility of the authors. The data used in the descriptions of the documents are in conformity with the systems of the administration of PUC-Rio. |
||||||||||||
Referência(s): |
[pt] https://www.maxwell.vrac.puc-rio.br/projetosEspeciais/ETDs/consultas/conteudo.php?strSecao=resultado&nrSeq=62987&idi=1 [en] https://www.maxwell.vrac.puc-rio.br/projetosEspeciais/ETDs/consultas/conteudo.php?strSecao=resultado&nrSeq=62987&idi=2 |
||||||||||||
DOI: | https://doi.org/10.17771/PUCRio.acad.62987 | ||||||||||||
Resumo: | |||||||||||||
Code refactoring is a code transformation that aims to enhance the
internal code structure. A single refactoring is rarely sufficient to achieve the
full removal of a poor code structure, such as a code smell. Developers then
apply composite refactorings to fully remove a code smell. A composite
refactoring (or, simply, composite) consists of two or more interrelated
single refactorings. A composite is considered complete when it fully
eliminates the target smell. However, studies report that developers often
fail in completely removing target code smells through composites. Even
when composite refactorings are complete they may still not be entirely
beneficial to the code structure. They may induce side effects, such as the
introduction of new smells or the propagation of existing ones. There is a
limited understanding of the completeness of composite refactorings and
their possible effects on structural quality. This thesis investigates whether
and how composite refactorings fully remove smells without inducing side
effects. We found that 64 per cent of complete composites in several software
projects are formed of refactoring types not previously recommended in the
literature. Based on this study, we derived a catalog of recommendations
for supporting developers in applying composite refactorings. Out of twenty
one developers evaluating our catalog, 85 per cent reported that they would use
the catalog recommendations and that their own refactoring solutions
would have induced side effects. We also qualitatively evaluated three
existing approaches to automatically recommend composite refactorings.
In our study with ten developers, most (80 per cent) developers reported that
existing approaches frequently induce side effects. Overall, the findings and
the proposed catalog can help developers to perform complete composite
refactorings with better awareness of possible side effects.
|
|||||||||||||
|