How developers discuss Code Smells during Code Review: a replication

Detalhes bibliográficos
Autor(a) principal: FECHINE, Marcelo Gabriel dos Santos Vitorino.
Data de Publicação: 2024
Tipo de documento: Dissertação
Idioma: por
Título da fonte: Biblioteca Digital de Teses e Dissertações da UFCG
Texto Completo: 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.
id UFCG_dff458c8e2ba507162a86a526d302d69
oai_identifier_str oai:localhost:riufcg/36611
network_acronym_str UFCG
network_name_str Biblioteca Digital de Teses e Dissertações da UFCG
repository_id_str 4851
spelling How developers discuss Code Smells during Code Review: a replicationComo os desenvolvedores discutem os cheiros de código durante a revisão de código: um replicaçãoCode SmellsCode ReviewSoftware EngineeringCódigo cheiraRevisão de códigoEngenharia de SoftwareCiência da ComputaçãoCode 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.Code smells are symptoms of possible problems in the code and indicate the need for refactoring. One of the ways to detect smells is through Code Review, an important practice in software development that aims to promote good programming practices. However, among the studies we know of, only one investigated code smells during reviews, but not directly the discussions. This limits the understanding of the topic and increases the risk of bias, as it affects the validity and generalizability of the results. Aiming to mitigate this lack, Xiaofeng Han et al. (2021) manually analyzed 19,146 comments and extracted 1,190 smell-related reviews. It was found that i) code smells are not commonly found in code reviews, ii) smells are caused by violations of code conventions, iii) reviewers usually provide constructive feedback and iv) developers generally follow recommendations and implement suggested changes to the code . Although the study provides relevant results, there is a limitation in the empirical evidence and current applicability, as the study was carried out using 1) projects from the same organization and 2) projects that essentially use the same technology (python). Aiming to increase the scientific reliability and extend the applicability of the study, we carried out a replication under a new context. To this end, 26 developers were involved in a manual analysis process of 18,850 comments that extracted 2,164 smell reviews from the gRPC, Neovim and Keycloak projects, which use the C++, Java and Vim languages. Through this set, classifications were carried out in order to replicate the study of the original work. For this new context, the study confirmed results i), ii) and iv), with emphasis on the result of 831 (70%) smell causes not provided, which strengthens the result of the previous study due to the similarity of frequency found and indicates the need for other approaches to investigate the type of cause. Furthermore, discussions about the interpretation of the reviewers’ actions were extended and in 1,781 (82%) of the occurrences, the smell was captured but no corrective action was taken. Thus, this study allows developers to: Learn how code decisions are perceived and how to deal with smells. And for reviewers: Learn how to improve communication and construction of reviews through the most frequent types of smells and how your suggestions are received by developers.CapesUniversidade Federal de Campina GrandeBrasilCentro de Engenharia Elétrica e Informática - CEEIPÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃOUFCGMONTEIRO., João Arthur Brunet.BRUNET, J. A. M.http://lattes.cnpq.br/7892247821251194MASSONI, Tiago Lima.MASSONI, T. L.http://lattes.cnpq.br/3563923906851611LIRA , Melina Mongiovi Brito.PESSOA , Diego Ernesto Rosa.FECHINE, Marcelo Gabriel dos Santos Vitorino.2024-03-052024-07-15T12:39:23Z2024-07-152024-07-15T12:39:23Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesishttp://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/36611FECHINE, Marcelo Gabriel dos Santos Vitorino. How developers discuss Code Smells during Code Review: a replication. 2024. 54 f. Dissertação (Mestrado em Ciência da Computação) – Programa de Pós-Graduação em Ciência da Computação, Centro de Engenharia Elétrica e Informática, Universidade Federal de Campina Grande, Paraíba, Brasil, 2024.porinfo:eu-repo/semantics/openAccessreponame:Biblioteca Digital de Teses e Dissertações da UFCGinstname:Universidade Federal de Campina Grande (UFCG)instacron:UFCG2024-07-15T12:39:23Zoai:localhost:riufcg/36611Biblioteca Digital de Teses e Dissertaçõeshttp://bdtd.ufcg.edu.br/PUBhttp://dspace.sti.ufcg.edu.br:8080/oai/requestbdtd@setor.ufcg.edu.br || bdtd@setor.ufcg.edu.bropendoar:48512024-07-15T12:39:23Biblioteca Digital de Teses e Dissertações da UFCG - Universidade Federal de Campina Grande (UFCG)false
dc.title.none.fl_str_mv How developers discuss Code Smells during Code Review: a replication
Como os desenvolvedores discutem os cheiros de código durante a revisão de código: um replicação
title How developers discuss Code Smells during Code Review: a replication
spellingShingle How developers discuss Code Smells during Code Review: a replication
FECHINE, Marcelo Gabriel dos Santos Vitorino.
Code Smells
Code Review
Software Engineering
Código cheira
Revisão de código
Engenharia de Software
Ciência da Computação
title_short How developers discuss Code Smells during Code Review: a replication
title_full How developers discuss Code Smells during Code Review: a replication
title_fullStr How developers discuss Code Smells during Code Review: a replication
title_full_unstemmed How developers discuss Code Smells during Code Review: a replication
title_sort How developers discuss Code Smells during Code Review: a replication
author FECHINE, Marcelo Gabriel dos Santos Vitorino.
author_facet FECHINE, Marcelo Gabriel dos Santos Vitorino.
author_role author
dc.contributor.none.fl_str_mv MONTEIRO., João Arthur Brunet.
BRUNET, J. A. M.
http://lattes.cnpq.br/7892247821251194
MASSONI, Tiago Lima.
MASSONI, T. L.
http://lattes.cnpq.br/3563923906851611
LIRA , Melina Mongiovi Brito.
PESSOA , Diego Ernesto Rosa.
dc.contributor.author.fl_str_mv FECHINE, Marcelo Gabriel dos Santos Vitorino.
dc.subject.por.fl_str_mv Code Smells
Code Review
Software Engineering
Código cheira
Revisão de código
Engenharia de Software
Ciência da Computação
topic Code Smells
Code Review
Software Engineering
Código cheira
Revisão de código
Engenharia de Software
Ciência da Computação
description 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.
publishDate 2024
dc.date.none.fl_str_mv 2024-03-05
2024-07-15T12:39:23Z
2024-07-15
2024-07-15T12:39:23Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/36611
FECHINE, Marcelo Gabriel dos Santos Vitorino. How developers discuss Code Smells during Code Review: a replication. 2024. 54 f. Dissertação (Mestrado em Ciência da Computação) – Programa de Pós-Graduação em Ciência da Computação, Centro de Engenharia Elétrica e Informática, Universidade Federal de Campina Grande, Paraíba, Brasil, 2024.
url http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/36611
identifier_str_mv FECHINE, Marcelo Gabriel dos Santos Vitorino. How developers discuss Code Smells during Code Review: a replication. 2024. 54 f. Dissertação (Mestrado em Ciência da Computação) – Programa de Pós-Graduação em Ciência da Computação, Centro de Engenharia Elétrica e Informática, Universidade Federal de Campina Grande, Paraíba, Brasil, 2024.
dc.language.iso.fl_str_mv por
language por
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.publisher.none.fl_str_mv 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
publisher.none.fl_str_mv 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
dc.source.none.fl_str_mv reponame:Biblioteca Digital de Teses e Dissertações da UFCG
instname:Universidade Federal de Campina Grande (UFCG)
instacron:UFCG
instname_str Universidade Federal de Campina Grande (UFCG)
instacron_str UFCG
institution UFCG
reponame_str Biblioteca Digital de Teses e Dissertações da UFCG
collection Biblioteca Digital de Teses e Dissertações da UFCG
repository.name.fl_str_mv Biblioteca Digital de Teses e Dissertações da UFCG - Universidade Federal de Campina Grande (UFCG)
repository.mail.fl_str_mv bdtd@setor.ufcg.edu.br || bdtd@setor.ufcg.edu.br
_version_ 1809744628661878784