Fechar

Defesa de doutorado do aluno William Nalepa Oizumi

Defesa de doutorado do aluno William Nalepa Oizumi

Título da tese:

Identification and Refactoring of Design Problems in Software Systems Resumo: A incidência de problemas de projeto (PP) em projetos de software está associada ao declínio da qualidade de design. Como resultado, sistemas impactados por PP podem se tornar difíceis de manter e evoluir. Para evitar essas consequências negativas, os desenvolvedores geralmente começam identificando os PP por meio de vários sintomas, tais como medidas internas de qualidade e code smells.

Depois disso, os desenvolvedores removem os PP por meio de refatorações. No entanto, decidir onde e como refatorar é uma tarefa desafiadora. Assim, várias técnicas de recomendação de refatoração para a remoção de PP têm sido propostas. Apesar disso, ainda há pouco consenso sobre quais requisitos devem ser atendidos por esse tipo de técnica. Portanto, nesta pesquisa, estamos propondo quatro requisitos empiricamente identificados que qualquer técnica de remoção de PP deve seguir. Primeiro, antes de refatorar, os desenvolvedores precisam entender as relações entre sintomas, PP e suas consequências negativas. Além disso, cada PP geralmente está relacionado a vários tipos de sintomas, que devem ser considerados para gerar efetivamente recomendações de refatoração.

Em segundo lugar, os desenvolvedores geralmente evitam refatorar elementos de código que estão fora de seu contexto atual de interesse.Portanto, uma técnica de recomendação deve ajudar o desenvolvedor a se concentrar em um contexto específico. Terceiro, os desenvolvedores nem sempre conduzem as refatorações mais eficazes na prática, resultando na remoção incompleta de PP. Sendo assim, eles podem precisar de recomendações de refatoração para remover completamente os PP. Finalmente, a maioria dos projetos tem um projeto pretendido para orientar a organização interna do sistemas e a distribuição de responsabilidades entre os elementos do código. Tal projeto pretendido deve ser considerado ao escolher as refatorações mais adequadas. De fato, existem várias técnicas relacionadas à maioria dos requisitos acima mencionados. No entanto, não existe uma técnica que atenda satisfatoriamente a todos eles.

Assim, nesta tese propomos a técnica OrganicRef. OrganicRef destinasse a ajudar os desenvolvedores a identificar e entender PPs que ocorrem em seu contexto de interesse. Ele é capaz de trabalhar com contextos definidos pelo desenvolvedor ou detectados automaticamente (por exemplo, arquivos modificados). Os PP são detectados por meio de informações extraídas do projeto do sistema e do código-fonte. Do projeto, extraímos a distribuição de responsabilidades entre os elementos de código – ou seja, preocupações de projeto – e o projeto pretendido. Em seguida, contamos com o código-fonte para coletar medidas de qualidade e code smells. O OrganicRef também visa fornecer recomendações de refatoração eficazes. Para atingir esse objetivo, projetamos uma nova estratégia de recomendação de refatoração com base nas preocupações do projeto. Em seguida, combinamos nossa nova estratégia com duas estratégias de técnicas do estado da arte. Com base nessa combinação, usamos a otimização baseada em busca para gerar e desenvolver várias recomendações possíveis. Por fim, definimos validações para as refatorações geradas para evitar a violação do projeto pretendido do software. Para avaliar o OrganicRef, projetamos e conduzimos um estudo empírico envolvendo profissionais de software experientes.

Orientador:
Prof. Dr. Alessandro Fabricio Garcia

Banca:
Prof(a) Dr(a) Thelma Elita Colanzi
Prof Dr. Bruno Barbieri de Pontes Cafeo
Prof Dr. Marcos Kalinowski
Prof. Dr(a) Juliana Alves Pereira
Prof. Dr Baldoino Fonseca dos Santos Neto
Prof. Dr Alberto Barbosa Raposo

Acompanhe-nos pelo link:
https://puc-rio.zoom.us/j/93448556516?pwd=WTFlNGxSWG51NDVLUFM5VHJLSnBQUT09