How developers discuss Code Smells during Code Review: a replication

Detalhes bibliográficos
Ano de defesa: 2024
Autor(a) principal: FECHINE, Marcelo Gabriel dos Santos Vitorino.
Orientador(a): Não Informado pela instituição
Banca de defesa: Não Informado pela instituição
Tipo de documento: Dissertação
Tipo de acesso: Acesso aberto
Idioma: por
Instituição de defesa: Universidade Federal de Campina Grande
Brasil
Centro de Engenharia Elétrica e Informática - CEEI
PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO
UFCG
Programa de Pós-Graduação: Não Informado pela instituição
Departamento: Não Informado pela instituição
País: Não Informado pela instituição
Palavras-chave em Português:
Link de acesso: http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/36611
Resumo: Code smells são sintomas de possíveis problemas no código e que indicam a necessidade de uma refatoração. Uma das formas de detecção de smells é através da Code Review, prática importante no desenvolvimento de software que visa promover boas práticas de programação. Todavia, entre os estudos que conhecemos, apenas um investigou code smells durante reviews, mas não diretamente as discussões. Isso limita o entendimento do tema e aumenta o risco de viés, pois afeta a validade e generalização dos resultados. Visando mitigar essa falta, Xiaofeng Han et al. (2021) analisaram manualmente 19.146 comentários e extraíram 1.190 revisões relacionadas a smell. Foi encontrado que i) code smells não são comumentes encontrados nas revisões de código, ii) smells são causados por violações de convencções de código, iii) revisores usualmente fornecem feedbacks contrutivos e iv) desenvolvedores geramente seguem as recomendações e praticam as mudanças sugeridas no código. Apesar do estudo fornecer resultados relevantes, existe uma limitação na evidência empírica e na aplicabilidade atual, pois o estudo foi feito utilizando 1) projetos de uma mesma organização e 2) projetos que usam, essencialmente, a mesma tecnologia (python). Visando aumentar a confiabilidade científica e a extensão da aplicabilidade do estudo fizemos uma replicação sob um novo contexto. Para isso, 26 desenvolvedores foram envolvidos em um processo de análise manual em 18.850 comentários que extraiu 2.164 smell reviews dos projetos gRPC, Neovim e Keycloak, que utilizam as linguagens C++, Java e Vim. Através desse conjunto, classificações foram realizadas de forma a replicar o estudo do trabalho original. Para esse novo contexto, o estudo confirmou os resultados i), ii) e iv), com destaque para o resultado de 831 (70%) de causas de smell não fornecidas, o que fortalece o resultado do estudo anterior pela semelhança da frequência encontrada e indica a necessidade de outras abordagens para investigar o tipo da causa. Além disso, as discussões sobre a interpretação da ação dos revisores foi extendida e em 1.781 (82%) das ocorrências, o smell é capturado mas nenhuma ação de correção é realizada. Assim, esse estudo permite para os desenvolvedores: Aprender como as decisões de código são percebidas e como lidar com smells. E para os revisores: Aprender como melhorar a comunicação e construção de revisões através dos tipos de smell mais frequentes e como as suas sugestões são recebidas pelos desenvolvedores.