Characterizing refactoring-inducing pull requests.
Autor(a) principal: | |
---|---|
Data de Publicação: | 2022 |
Tipo de documento: | Tese |
Idioma: | eng |
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/26053 |
Resumo: | O desenvolvimento baseado em pull adequa-se à prática da Revisão de Código Moderna (RCM), na qual os revisores podem sugerir melhorias de código, como refatoramentos, por meio de comentários e commits em Pull Requests (PRs). Estudos anteriores de RCM tratam todos os PRs como semelhantes, independentemente de induzirem refatoramento ou não. Definimos um PR como indutor de refatoramento quando as edições de refatoramento são realizadas após o(s) commit(s) inicial(is) como resultado de comentários de revisores ou ações espontâneas realizadas pelo autor do PR. Este trabalho explora aspectos relacionados à revisão de código com o objetivo de caracterizar PRs indutores de refatoramento. Para isso, extraímos edições de refatoramento e dados de revisão de código do GitHub. Em seguida, realizamos estudos empíricos para identificar similaridades/dissimilaridades entre PRs indutores de refatoramento e não indutores de refatoramento e caracterizar revisão de código e edições de refatoramento em PRs indutores de refatoramento. Encontramos diferenças significativas entre PRs indutores de refatoramento e não indutores de refatoramento e evidências empíricas sobre a relevância da revisão de código para edições de refatoramento no nível de PR. Observamos fatores motivadores por trás dos PRs indutores de refatoramento, identificamos aspectos estruturais dos comentários de revisão em PRs indutores e não indutores de refatoramento e propomos diretrizes para uma revisão de código mais produtiva. Também encontramos evidências empíricas sobre aspectos técnicos que caracterizam refatoramentos em PRs indutores de refatoramento. Nossas descobertas sugerem orientações para pesquisadores, profissionais e desenvolvedores de ferramentas para melhorar as práticas em torno da revisão de código baseada em pull. |
id |
UFCG_414ac0bbd4a4fbbe7a2a071a4d64d8cd |
---|---|
oai_identifier_str |
oai:localhost:riufcg/26053 |
network_acronym_str |
UFCG |
network_name_str |
Biblioteca Digital de Teses e Dissertações da UFCG |
repository_id_str |
4851 |
spelling |
Characterizing refactoring-inducing pull requests.Caracterizando pull requests indutores de refatoração.Solicitação pull indutora de refatoramentoRevisão de códigoEstudo empíricoMetodologia e técnicas da computaçãoEngenharia de softwareRefactoring-inducing pull requestCode reviewEmpirical studyComputing methodology and techniquesSoftware engineeringSolicitud de extracción inducida por refactorizaciónRevisión de códigoEstudio empíricoMetodología y técnicas informáticasIngeniería de softwareRefactoring induisant une pull requestRevue de codeÉtude empiriqueMéthodologie et techniques de calculGénie logicielCiência da ComputaçãoO desenvolvimento baseado em pull adequa-se à prática da Revisão de Código Moderna (RCM), na qual os revisores podem sugerir melhorias de código, como refatoramentos, por meio de comentários e commits em Pull Requests (PRs). Estudos anteriores de RCM tratam todos os PRs como semelhantes, independentemente de induzirem refatoramento ou não. Definimos um PR como indutor de refatoramento quando as edições de refatoramento são realizadas após o(s) commit(s) inicial(is) como resultado de comentários de revisores ou ações espontâneas realizadas pelo autor do PR. Este trabalho explora aspectos relacionados à revisão de código com o objetivo de caracterizar PRs indutores de refatoramento. Para isso, extraímos edições de refatoramento e dados de revisão de código do GitHub. Em seguida, realizamos estudos empíricos para identificar similaridades/dissimilaridades entre PRs indutores de refatoramento e não indutores de refatoramento e caracterizar revisão de código e edições de refatoramento em PRs indutores de refatoramento. Encontramos diferenças significativas entre PRs indutores de refatoramento e não indutores de refatoramento e evidências empíricas sobre a relevância da revisão de código para edições de refatoramento no nível de PR. Observamos fatores motivadores por trás dos PRs indutores de refatoramento, identificamos aspectos estruturais dos comentários de revisão em PRs indutores e não indutores de refatoramento e propomos diretrizes para uma revisão de código mais produtiva. Também encontramos evidências empíricas sobre aspectos técnicos que caracterizam refatoramentos em PRs indutores de refatoramento. Nossas descobertas sugerem orientações para pesquisadores, profissionais e desenvolvedores de ferramentas para melhorar as práticas em torno da revisão de código baseada em pull.Pull-based development has shaped the practice of Modern Code Review (MCR), in which reviewers can suggest code improvements, such as refactorings, through comments and commits in Pull Requests (PRs). Past MCR studies treat all PRs as similar, regardless of whether they induce refactoring or not. We define a PR as refactoring inducing when refactoring edits are performed after the initial commit(s) as either a result of reviewers’ comments or spontaneous actions carried out by the PR author. This work explores code reviewing-related aspects intending to characterize refactoring inducing PRs. For that, we mined refactoring edits and code review data from GitHub. Then, we carried out empirical studies to identify similarities/dissimilarities between refactoring-inducing and non-refactoring-inducing PRs and characterize code review and refactoring edits in refactoring-inducing PRs. We found significant differences between refactoring-inducing and non-refactoring-inducing PRs and empirical evidence on the relevance of code review to refactoring edits at the PR level. We observed motivating factors behind refactoring-inducing PRs, identified structural aspects of review comments in refactoring-inducing and non-refactoring-inducing PRs, and proposed guidelines for a more productive code review. We also found empirical evidence on technical aspects characterizing refactorings in refactoring-inducing PRs. Our findings suggest directions for researchers, practitioners, and tool builders to improve practices around pull-based code review.Universidade Federal de Campina GrandeBrasilCentro de Engenharia Elétrica e Informática - CEEIPÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃOUFCGMASSONI, Tiago Lima.MASSONI, T. L.http://lattes.cnpq.br/3563923906851611ALVES, Everton Leandro Galdino.ALVES, E. L. G.http://lattes.cnpq.br/2793969744497453GHEYI, Rohit.LIRA, Melina Mongiovi Brito.KULESZA, Uira.GARCIA, Alessandro Fabrício.COELHO, Flávia Estélia Silva.2022-02-182022-06-30T11:21:29Z2022-06-302022-06-30T11:21:29Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/doctoralThesishttp://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/26053COELHO, F. E. S. Characterizing refactoring-inducing pull requests. 2022. 210 f. Tese (Doutorado 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, Campina Grande, Paraíba, Brasil, 2022.enginfo:eu-repo/semantics/openAccessreponame:Biblioteca Digital de Teses e Dissertações da UFCGinstname:Universidade Federal de Campina Grande (UFCG)instacron:UFCG2022-06-30T11:42:47Zoai:localhost:riufcg/26053Biblioteca 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:48512022-06-30T11:42:47Biblioteca Digital de Teses e Dissertações da UFCG - Universidade Federal de Campina Grande (UFCG)false |
dc.title.none.fl_str_mv |
Characterizing refactoring-inducing pull requests. Caracterizando pull requests indutores de refatoração. |
title |
Characterizing refactoring-inducing pull requests. |
spellingShingle |
Characterizing refactoring-inducing pull requests. COELHO, Flávia Estélia Silva. Solicitação pull indutora de refatoramento Revisão de código Estudo empírico Metodologia e técnicas da computação Engenharia de software Refactoring-inducing pull request Code review Empirical study Computing methodology and techniques Software engineering Solicitud de extracción inducida por refactorización Revisión de código Estudio empírico Metodología y técnicas informáticas Ingeniería de software Refactoring induisant une pull request Revue de code Étude empirique Méthodologie et techniques de calcul Génie logiciel Ciência da Computação |
title_short |
Characterizing refactoring-inducing pull requests. |
title_full |
Characterizing refactoring-inducing pull requests. |
title_fullStr |
Characterizing refactoring-inducing pull requests. |
title_full_unstemmed |
Characterizing refactoring-inducing pull requests. |
title_sort |
Characterizing refactoring-inducing pull requests. |
author |
COELHO, Flávia Estélia Silva. |
author_facet |
COELHO, Flávia Estélia Silva. |
author_role |
author |
dc.contributor.none.fl_str_mv |
MASSONI, Tiago Lima. MASSONI, T. L. http://lattes.cnpq.br/3563923906851611 ALVES, Everton Leandro Galdino. ALVES, E. L. G. http://lattes.cnpq.br/2793969744497453 GHEYI, Rohit. LIRA, Melina Mongiovi Brito. KULESZA, Uira. GARCIA, Alessandro Fabrício. |
dc.contributor.author.fl_str_mv |
COELHO, Flávia Estélia Silva. |
dc.subject.por.fl_str_mv |
Solicitação pull indutora de refatoramento Revisão de código Estudo empírico Metodologia e técnicas da computação Engenharia de software Refactoring-inducing pull request Code review Empirical study Computing methodology and techniques Software engineering Solicitud de extracción inducida por refactorización Revisión de código Estudio empírico Metodología y técnicas informáticas Ingeniería de software Refactoring induisant une pull request Revue de code Étude empirique Méthodologie et techniques de calcul Génie logiciel Ciência da Computação |
topic |
Solicitação pull indutora de refatoramento Revisão de código Estudo empírico Metodologia e técnicas da computação Engenharia de software Refactoring-inducing pull request Code review Empirical study Computing methodology and techniques Software engineering Solicitud de extracción inducida por refactorización Revisión de código Estudio empírico Metodología y técnicas informáticas Ingeniería de software Refactoring induisant une pull request Revue de code Étude empirique Méthodologie et techniques de calcul Génie logiciel Ciência da Computação |
description |
O desenvolvimento baseado em pull adequa-se à prática da Revisão de Código Moderna (RCM), na qual os revisores podem sugerir melhorias de código, como refatoramentos, por meio de comentários e commits em Pull Requests (PRs). Estudos anteriores de RCM tratam todos os PRs como semelhantes, independentemente de induzirem refatoramento ou não. Definimos um PR como indutor de refatoramento quando as edições de refatoramento são realizadas após o(s) commit(s) inicial(is) como resultado de comentários de revisores ou ações espontâneas realizadas pelo autor do PR. Este trabalho explora aspectos relacionados à revisão de código com o objetivo de caracterizar PRs indutores de refatoramento. Para isso, extraímos edições de refatoramento e dados de revisão de código do GitHub. Em seguida, realizamos estudos empíricos para identificar similaridades/dissimilaridades entre PRs indutores de refatoramento e não indutores de refatoramento e caracterizar revisão de código e edições de refatoramento em PRs indutores de refatoramento. Encontramos diferenças significativas entre PRs indutores de refatoramento e não indutores de refatoramento e evidências empíricas sobre a relevância da revisão de código para edições de refatoramento no nível de PR. Observamos fatores motivadores por trás dos PRs indutores de refatoramento, identificamos aspectos estruturais dos comentários de revisão em PRs indutores e não indutores de refatoramento e propomos diretrizes para uma revisão de código mais produtiva. Também encontramos evidências empíricas sobre aspectos técnicos que caracterizam refatoramentos em PRs indutores de refatoramento. Nossas descobertas sugerem orientações para pesquisadores, profissionais e desenvolvedores de ferramentas para melhorar as práticas em torno da revisão de código baseada em pull. |
publishDate |
2022 |
dc.date.none.fl_str_mv |
2022-02-18 2022-06-30T11:21:29Z 2022-06-30 2022-06-30T11:21:29Z |
dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
dc.type.driver.fl_str_mv |
info:eu-repo/semantics/doctoralThesis |
format |
doctoralThesis |
status_str |
publishedVersion |
dc.identifier.uri.fl_str_mv |
http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/26053 COELHO, F. E. S. Characterizing refactoring-inducing pull requests. 2022. 210 f. Tese (Doutorado 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, Campina Grande, Paraíba, Brasil, 2022. |
url |
http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/26053 |
identifier_str_mv |
COELHO, F. E. S. Characterizing refactoring-inducing pull requests. 2022. 210 f. Tese (Doutorado 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, Campina Grande, Paraíba, Brasil, 2022. |
dc.language.iso.fl_str_mv |
eng |
language |
eng |
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_ |
1809744547072180224 |