Maxwell Para Simples Indexação

Título
[en] IDENTIFICATION AND REFACTORING OF DESIGN PROBLEMS IN SOFTWARE SYSTEMS

Título
[pt] IDENTIFICAÇÃO E REFATORAÇÃO DE PROBLEMAS DE PROJETO EM SISTEMAS DE SOFTWARE

Autor
[pt] WILLIAN NALEPA OIZUMI

Vocabulário
[pt] SISTEMAS DE RECOMENDACAO

Vocabulário
[pt] ENGENHARIA DE SOFTWARE BASEADA EM BUSCA

Vocabulário
[pt] PROBLEMAS DE PROJETO

Vocabulário
[pt] PROJETO DE SOFTWARE

Vocabulário
[pt] REFATORACAO

Vocabulário
[en] RECOMMENDER SYSTEMS

Vocabulário
[en] SEARCH-BASED SOFTWARE ENGINEERING

Vocabulário
[en] DESIGN PROBLEMS

Vocabulário
[en] SOFTWARE DESIGN

Vocabulário
[en] REFACTORING

Resumo
[pt] Sistemas impactados por Problemas de Projeto (PPs) podem se tornar difíceis de manter e evoluir. A identificação de PPs pode ocorrer por meio de múltiplos sintomas, tais como code smells. Após tal identificação, pode-se remover os PPs por meio de refatorações. No entanto, decidir onde e como refatorar é uma tarefa desafiadora. Assim, técnicas de recomendação de refatoração têm sido propostas. Apesar disso, ainda há pouco consenso sobre quais requisitos devem ser atendidos por elas. Nesta tese, estamos propondo quatro requisitos empiricamente identificados que tais técnicas devem seguir. Primeiro, cada PP geralmente está relacionado a vários tipos de sintomas no código-fonte e eles devem ser considerados juntos para gerar recomendações. Além disso, uma técnica de recomendação deve permitir a seleção de contextos específicos para refatoração. Quarto, também deve-se considerar as funcionalidades modificadas para criar recomendações úteis. Finalmente, os desenvolvedores nem sempre conduzem as refatorações mais eficazes na prática, muitas vezes inconscientemente, resultando na remoção incompleta de PPs. Assim, eles precisam de assistência para remover os PPs. Existem apenas técnicas que atendem parcialmente aos requisitos mencionados. Sendo assim, nós propomos a técnica OrganicRef. OrganicRef destina-se a ajudar os desenvolvedores na remoção de PPs em seus contextos de interesse. OrganicRef encontra as funcionalidades dos elementos de código usando um algoritmo de modelagem de tópicos. Em seguida, ele coleta múltiplos tipos de sintomas que afetam os elementos do código. Para recomendar refatorações, OrganicRef combina heurísticas baseadas em regras e baseadas em funcionalidades. OrganicRef também aplica otimização baseada em busca para derivar várias recomendações possíveis. Para avaliar o OrganicRef, realizamos um estudo experimental com seis projetos de software. Os resultados mostraram que as recomendações do OrganicRef melhoram significativamente a qualidade dos elementos refatorados.

Resumo
[en] Software projects impacted by Design Problems (DPs) may become difficult to maintain and evolve. The identification of DPs may occur through symptoms such as code smells. After such identification, developers can remove the DPs through refactorings. However, deciding where and how to refactor is a challenging task. Thus, several refactoring recommendation techniques have been proposed. Nevertheless, there is still little consensus on which requirements must be satisfied by them. In this thesis, we are proposing four empirically identified requirements that any DP removal technique should follow. First, each single DP is usually related with multiple types of symptoms in the source code and they should be considered altogether for generating recommendations. Second, a recommendation technique should allow the selection of possible candidate contexts for refactoring. Fourth, the technique should consider the features of undergoing changes to create useful recommendations. Finally, developers do not always conduct the most effective refactorings in practice, quite often unconsciously, resulting in the incomplete removal of DPs. Thus, they need assistance to remove DPs. There are techniques partially fulfilling the aforementioned requirements, though none satisfactorily meets them all. Thus, we propose the OrganicRef technique. OrganicRef is intended to help developers in removing DPs in their contexts of interest. OrganicRef finds the contexts by capturing the features affecting relevant code elements using a topic modeling algorithm. Then, it collects multiple symptom types affecting the code elements. To recommend effective refactorings, OrganicRef combines rulebased and feature-driven heuristics. It also uses search-based optimization to derive multiple possible recommendations. To evaluate OrganicRef, we conducted an empirical study with six open source projects. Results showed that OrganicRef recommendations significantly improves the design of refactored elements.

Orientador(es)
ALESSANDRO FABRICIO GARCIA

Banca
ALESSANDRO FABRICIO GARCIA

Banca
MARCOS KALINOWSKI

Banca
BRUNO BARBIERI DE PONTES CAFEO

Banca
JULIANA ALVES PEREIRA

Banca
THELMA ELITA COLANZI

Catalogação
2022-10-27

Apresentação
2022-04-28

Tipo
[pt] TEXTO

Formato
application/pdf

Idioma(s)
INGLÊS

Referência [pt]
https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=60990@1

Referência [en]
https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=60990@2

Referência DOI
https://doi.org/10.17771/PUCRio.acad.60990


Arquivos do conteúdo
NA ÍNTEGRA PDF