Título: | RUMO A CUSTOMIZAÇÃO NA DETECÇÃO DE SMELL E NA REFATORAÇÃO | ||||||||||||
Autor: |
DANIEL TENORIO MARTINS DE OLIVEIRA |
||||||||||||
Colaborador(es): |
ALESSANDRO FABRICIO GARCIA - Orientador |
||||||||||||
Catalogação: | 10/DEZ/2021 | Língua(s): | INGLÊS - ESTADOS UNIDOS |
||||||||||
Tipo: | TEXTO | Subtipo: | TESE | ||||||||||
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=56525&idi=1 [en] https://www.maxwell.vrac.puc-rio.br/projetosEspeciais/ETDs/consultas/conteudo.php?strSecao=resultado&nrSeq=56525&idi=2 |
||||||||||||
DOI: | https://doi.org/10.17771/PUCRio.acad.56525 | ||||||||||||
Resumo: | |||||||||||||
Code smells são estruturas pobres que prejudicam a manutenção do sistema.
Sendo assim, code smells devem ser detectados e removidos, através
de refatoração, no começo do ciclo de vida do software. Refatoração consiste
em modificações no código que visam melhorar a manutenção do software,
removendo ou mitigando estruturas pobres. Contudo, as estratégias
de detecção e refatoração de smells são subjetivas. Isto é, desenvolvedores
trabalhando no mesmo sistema podem divergir acerca da existência de um
smell. Essa divergência é influenciada pelo conhecimento do desenvolvedor,
incluindo o design do sistema e o código analisado. Como consequência,
essa divergência afeta também a aplicação das refatorações. Assim, é preciso
customizar a detecção de smell e refatoração a partir do conhecimento
dos desenvolvedores. Afinal, o desenvolvedor é quem confirma a nocividade
de um smell e define como refatorá-lo. Para isso, decompomos nossa pesquisa
em 3 passos: (i) como customizar estratégias de detecção de smells?,
(ii) se e com que frequência os desenvolvedores customizam suas refatorações?
e (iii) como dar suporte a customização de refatoração?. No primeiro
passo avaliamos as técnicas de aprendizagem de máquina quanto a capacidade
de customizar sua detecção para cada desenvolvedor. Segundo, nós investigamos
como desenvolvedores customizam refatorações, analisando suas
modificações de código enquanto aplicam certos tipos de refatoração. Além
disso, nós também discutimos como essas customizações estão relacionadas
com a inserção, remoção ou mitigação de smells e se são apoiados pelo
Eclipse. Terceiro, nós propusemos uma abordagem que permite a aplicação
de refatorações customizadas. Nossos resultados indicaram que as técnicas
de aprendizagem de máquina são capazes de capturar o conhecimento do
desenvolvedor e obter alta acurácia detectando smells. Além disso, desenvolvedores
frequentemente customizam refatorações que não são totalmente
suportadas pelo Eclipse. Para piorar, customizações complexas, geralmente
manuais, tendem a reduzir o efeito positivo da refatoração. Portanto, nossos
resultados servem como base para melhorar o suporte de ferramentas: a (i)
detecção customizada de smells, levando em consideração o conhecimento
do desenvolvedor e (ii) a aplicação de refatoração customizada.
|
|||||||||||||
|