Characterizing refactoring-inducing pull requests.

Detalhes bibliográficos
Ano de defesa: 2022
Autor(a) principal: COELHO, Flávia Estélia Silva. lattes
Orientador(a): MASSONI, Tiago Lima. lattes, ALVES, Everton Leandro Galdino. lattes
Banca de defesa: GHEYI, Rohit., LIRA, Melina Mongiovi Brito., KULESZA, Uira., GARCIA, Alessandro Fabrício.
Tipo de documento: Tese
Tipo de acesso: Acesso aberto
Idioma: eng
Instituição de defesa: Universidade Federal de Campina Grande
Programa de Pós-Graduação: PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO
Departamento: Centro de Engenharia Elétrica e Informática - CEEI
País: Brasil
Palavras-chave em Português:
Área do conhecimento CNPq:
Link de acesso: https://dspace.sti.ufcg.edu.br/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_8bc429e1c764fb2f60ef33b315cee48b
oai_identifier_str oai:dspace.sti.ufcg.edu.br:riufcg/26053
network_acronym_str UFCG
network_name_str Biblioteca Digital de Teses e Dissertações da UFCG
repository_id_str
spelling MASSONI, 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, F. E. S.http://lattes.cnpq.br/0520540492918135COELHO, Flávia Estélia Silva.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.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.Submitted by Maria Medeiros (maria.dilva1@ufcg.edu.br) on 2022-06-30T11:21:29Z No. of bitstreams: 1 FLÁVIA ESTÉLIA SILVA COELHO - TESE (PPGCC) 2022.pdf: 10569669 bytes, checksum: ac971b7a09dedb4f6160dc55cb601eff (MD5)Made available in DSpace on 2022-06-30T11:21:29Z (GMT). No. of bitstreams: 1 FLÁVIA ESTÉLIA SILVA COELHO - TESE (PPGCC) 2022.pdf: 10569669 bytes, checksum: ac971b7a09dedb4f6160dc55cb601eff (MD5) Previous issue date: 2022-02-18Universidade Federal de Campina GrandePÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃOUFCGBrasilCentro de Engenharia Elétrica e Informática - CEEICiência da ComputaçãoSolicitaçã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 logicielCharacterizing refactoring-inducing pull requests.Caracterizando pull requests indutores de refatoração.2022-02-182022-06-30T11:21:29Z2022-06-302022-06-30T11:21:29Zhttps://dspace.sti.ufcg.edu.br/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.info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/doctoralThesisenginfo:eu-repo/semantics/openAccessreponame:Biblioteca Digital de Teses e Dissertações da UFCGinstname:Universidade Federal de Campina Grande (UFCG)instacron:UFCGTEXTFLÁVIA ESTÉLIA SILVA COELHO - TESE (PPGCC) 2022.pdf.txtFLÁVIA ESTÉLIA SILVA COELHO - TESE (PPGCC) 2022.pdf.txttext/plain356501https://dspace.sti.ufcg.edu.br/bitstream/riufcg/26053/3/FL%C3%81VIA+EST%C3%89LIA+SILVA+COELHO+-+TESE+%28PPGCC%29+2022.pdf.txted9bdc3663a73b429c832d7a9fae534cMD53LICENSElicense.txtlicense.txttext/plain; charset=utf-81748https://dspace.sti.ufcg.edu.br/bitstream/riufcg/26053/2/license.txt8a4605be74aa9ea9d79846c1fba20a33MD52ORIGINALFLÁVIA ESTÉLIA SILVA COELHO - TESE (PPGCC) 2022.pdfFLÁVIA ESTÉLIA SILVA COELHO - TESE (PPGCC) 2022.pdfapplication/pdf10569669https://dspace.sti.ufcg.edu.br/bitstream/riufcg/26053/1/FL%C3%81VIA+EST%C3%89LIA+SILVA+COELHO+-+TESE+%28PPGCC%29+2022.pdfac971b7a09dedb4f6160dc55cb601effMD51riufcg/260532025-07-24 08:04:50.741oai:dspace.sti.ufcg.edu.br:riufcg/26053Tk9URTogUExBQ0UgWU9VUiBPV04gTElDRU5TRSBIRVJFClRoaXMgc2FtcGxlIGxpY2Vuc2UgaXMgcHJvdmlkZWQgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgb25seS4KCk5PTi1FWENMVVNJVkUgRElTVFJJQlVUSU9OIExJQ0VOU0UKCkJ5IHNpZ25pbmcgYW5kIHN1Ym1pdHRpbmcgdGhpcyBsaWNlbnNlLCB5b3UgKHRoZSBhdXRob3Iocykgb3IgY29weXJpZ2h0Cm93bmVyKSBncmFudHMgdG8gRFNwYWNlIFVuaXZlcnNpdHkgKERTVSkgdGhlIG5vbi1leGNsdXNpdmUgcmlnaHQgdG8gcmVwcm9kdWNlLAp0cmFuc2xhdGUgKGFzIGRlZmluZWQgYmVsb3cpLCBhbmQvb3IgZGlzdHJpYnV0ZSB5b3VyIHN1Ym1pc3Npb24gKGluY2x1ZGluZwp0aGUgYWJzdHJhY3QpIHdvcmxkd2lkZSBpbiBwcmludCBhbmQgZWxlY3Ryb25pYyBmb3JtYXQgYW5kIGluIGFueSBtZWRpdW0sCmluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gYXVkaW8gb3IgdmlkZW8uCgpZb3UgYWdyZWUgdGhhdCBEU1UgbWF5LCB3aXRob3V0IGNoYW5naW5nIHRoZSBjb250ZW50LCB0cmFuc2xhdGUgdGhlCnN1Ym1pc3Npb24gdG8gYW55IG1lZGl1bSBvciBmb3JtYXQgZm9yIHRoZSBwdXJwb3NlIG9mIHByZXNlcnZhdGlvbi4KCllvdSBhbHNvIGFncmVlIHRoYXQgRFNVIG1heSBrZWVwIG1vcmUgdGhhbiBvbmUgY29weSBvZiB0aGlzIHN1Ym1pc3Npb24gZm9yCnB1cnBvc2VzIG9mIHNlY3VyaXR5LCBiYWNrLXVwIGFuZCBwcmVzZXJ2YXRpb24uCgpZb3UgcmVwcmVzZW50IHRoYXQgdGhlIHN1Ym1pc3Npb24gaXMgeW91ciBvcmlnaW5hbCB3b3JrLCBhbmQgdGhhdCB5b3UgaGF2ZQp0aGUgcmlnaHQgdG8gZ3JhbnQgdGhlIHJpZ2h0cyBjb250YWluZWQgaW4gdGhpcyBsaWNlbnNlLiBZb3UgYWxzbyByZXByZXNlbnQKdGhhdCB5b3VyIHN1Ym1pc3Npb24gZG9lcyBub3QsIHRvIHRoZSBiZXN0IG9mIHlvdXIga25vd2xlZGdlLCBpbmZyaW5nZSB1cG9uCmFueW9uZSdzIGNvcHlyaWdodC4KCklmIHRoZSBzdWJtaXNzaW9uIGNvbnRhaW5zIG1hdGVyaWFsIGZvciB3aGljaCB5b3UgZG8gbm90IGhvbGQgY29weXJpZ2h0LAp5b3UgcmVwcmVzZW50IHRoYXQgeW91IGhhdmUgb2J0YWluZWQgdGhlIHVucmVzdHJpY3RlZCBwZXJtaXNzaW9uIG9mIHRoZQpjb3B5cmlnaHQgb3duZXIgdG8gZ3JhbnQgRFNVIHRoZSByaWdodHMgcmVxdWlyZWQgYnkgdGhpcyBsaWNlbnNlLCBhbmQgdGhhdApzdWNoIHRoaXJkLXBhcnR5IG93bmVkIG1hdGVyaWFsIGlzIGNsZWFybHkgaWRlbnRpZmllZCBhbmQgYWNrbm93bGVkZ2VkCndpdGhpbiB0aGUgdGV4dCBvciBjb250ZW50IG9mIHRoZSBzdWJtaXNzaW9uLgoKSUYgVEhFIFNVQk1JU1NJT04gSVMgQkFTRUQgVVBPTiBXT1JLIFRIQVQgSEFTIEJFRU4gU1BPTlNPUkVEIE9SIFNVUFBPUlRFRApCWSBBTiBBR0VOQ1kgT1IgT1JHQU5JWkFUSU9OIE9USEVSIFRIQU4gRFNVLCBZT1UgUkVQUkVTRU5UIFRIQVQgWU9VIEhBVkUKRlVMRklMTEVEIEFOWSBSSUdIVCBPRiBSRVZJRVcgT1IgT1RIRVIgT0JMSUdBVElPTlMgUkVRVUlSRUQgQlkgU1VDSApDT05UUkFDVCBPUiBBR1JFRU1FTlQuCgpEU1Ugd2lsbCBjbGVhcmx5IGlkZW50aWZ5IHlvdXIgbmFtZShzKSBhcyB0aGUgYXV0aG9yKHMpIG9yIG93bmVyKHMpIG9mIHRoZQpzdWJtaXNzaW9uLCBhbmQgd2lsbCBub3QgbWFrZSBhbnkgYWx0ZXJhdGlvbiwgb3RoZXIgdGhhbiBhcyBhbGxvd2VkIGJ5IHRoaXMKbGljZW5zZSwgdG8geW91ciBzdWJtaXNzaW9uLgo=Biblioteca 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:48512025-07-24T11:04:50Biblioteca Digital de Teses e Dissertações da UFCG - Universidade Federal de Campina Grande (UFCG)false
dc.title.pt_BR.fl_str_mv Characterizing refactoring-inducing pull requests.
dc.title.alternative.pt_BR.fl_str_mv 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.
Ciência da Computação
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
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.advisor2ID.pt_BR.fl_str_mv ALVES, E. L. G.
dc.contributor.advisor1.fl_str_mv MASSONI, Tiago Lima.
dc.contributor.advisor1ID.fl_str_mv MASSONI, T. L.
dc.contributor.advisor1Lattes.fl_str_mv http://lattes.cnpq.br/3563923906851611
dc.contributor.advisor2.fl_str_mv ALVES, Everton Leandro Galdino.
dc.contributor.advisor2Lattes.fl_str_mv http://lattes.cnpq.br/2793969744497453
dc.contributor.referee1.fl_str_mv GHEYI, Rohit.
dc.contributor.referee2.fl_str_mv LIRA, Melina Mongiovi Brito.
dc.contributor.referee3.fl_str_mv KULESZA, Uira.
dc.contributor.referee4.fl_str_mv GARCIA, Alessandro Fabrício.
dc.contributor.authorID.fl_str_mv COELHO, F. E. S.
dc.contributor.authorLattes.fl_str_mv http://lattes.cnpq.br/0520540492918135
dc.contributor.author.fl_str_mv COELHO, Flávia Estélia Silva.
contributor_str_mv MASSONI, Tiago Lima.
ALVES, Everton Leandro Galdino.
GHEYI, Rohit.
LIRA, Melina Mongiovi Brito.
KULESZA, Uira.
GARCIA, Alessandro Fabrício.
dc.subject.cnpq.fl_str_mv Ciência da Computação
topic Ciência da Computação
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
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
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.issued.fl_str_mv 2022-02-18
dc.date.accessioned.fl_str_mv 2022-06-30T11:21:29Z
dc.date.available.fl_str_mv 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 https://dspace.sti.ufcg.edu.br/handle/riufcg/26053
dc.identifier.citation.fl_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.
url https://dspace.sti.ufcg.edu.br/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
dc.publisher.program.fl_str_mv PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO
dc.publisher.initials.fl_str_mv UFCG
dc.publisher.country.fl_str_mv Brasil
dc.publisher.department.fl_str_mv Centro de Engenharia Elétrica e Informática - CEEI
publisher.none.fl_str_mv Universidade Federal de Campina Grande
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
bitstream.url.fl_str_mv https://dspace.sti.ufcg.edu.br/bitstream/riufcg/26053/3/FL%C3%81VIA+EST%C3%89LIA+SILVA+COELHO+-+TESE+%28PPGCC%29+2022.pdf.txt
https://dspace.sti.ufcg.edu.br/bitstream/riufcg/26053/2/license.txt
https://dspace.sti.ufcg.edu.br/bitstream/riufcg/26053/1/FL%C3%81VIA+EST%C3%89LIA+SILVA+COELHO+-+TESE+%28PPGCC%29+2022.pdf
bitstream.checksum.fl_str_mv ed9bdc3663a73b429c832d7a9fae534c
8a4605be74aa9ea9d79846c1fba20a33
ac971b7a09dedb4f6160dc55cb601eff
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
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_ 1863363517971693568