Evaluating the impact of refactorings on the code comprehension of novices with eye tracking.

Detalhes bibliográficos
Ano de defesa: 2022
Autor(a) principal: COSTA, José Aldo Silva da. lattes
Orientador(a): GHEYI, Rohit. lattes
Banca de defesa: MASSONI, Tiago Lima. lattes, ALMEIDA, Hyggo Oliveira de. lattes, ALVES, Vander Ramos. lattes, LIMA FILHO, Fernando José Castor de. lattes
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/29470
Resumo: A compreensao do código é fundamental para a manutenção e evolução do software, por em, pode ser prejudicada por problemas estruturais no código. Para resolver os problemas es- truturais no código e torna-lo mais fácil de ler e entender, os desenvolvedores costumam usar refatoramentos. Um refatoramento e uma técnica disciplinada de reestruturação do código que visa melhorar sua estrutura interna preservando seu comportamento. No entanto, o estado-da-arte sobre o entendimento do impacto de refatoramentos na compreensao do ̃ código necessita de resultados conclusivos e detalhes quantitativos/qualitativos sobre como ́ e o porque de possıveis correlações. Enquanto alguns estudos encontraram um impacto di- ̃ vergente de refatoramentos na compreensão do código, outro descobriu que certos refatora- ́ mentos levaram a introdução de mais problemas estruturais. Com o objetivo de investigar o impacto das refatoramentos na compreensão do código, realizamos três estudos controlados com rastreio ocular: o primeiro sobre o impacto de atomos de confusão clarificados com 32 novatos em Python, o segundo sobre o impacto do refatoramento Extrair Metodo com 32 no- vatos em Java, e o terceiro sobre o impacto das anotac ̧oes ̃ #ifdef com 64 majoritariamente novatos na linguagem C. Alem de usar varios criterios como tempo, numero de tentativas ́ e opiniões, medimos o esforço visual dos sujeitos com rastreamento ocular por meio da ̃ duração da fixação, contagem de fixações e contagem de regressões. Em nossos resultados, ̃ a versão de código clarificada de um dos átomos reduziu o tempo em 38,6% e o número ́ de tentativas de resposta em 28%. Alem disso, observamos 47,3% menos regressões hori- zontais na região do átomo facilitando sua leitura. O uso do refatoramento Extrair Método apresentou uma redução significativa no tempo de duas tarefas, que variou de 70% a 78,8%. Observamos um aumento na acuracia de três tarefas, que variou de 20% a 34,4%. Os su- jeitos resolveram essas tarefas com o Extrair Método voltando visualmente no código com ́ 74,4% a 84,6 % menos frequência comparado ao Inline Método. No contexto das anotações #ifdef, um dos refatoramentos adiciona uma variável extra e duas linhas extras de código, o que e apenas um pequeno impacto na métrica Linhas de Código (LOC), mas apresentou reduções na região modificada em 46,9% no tempo, 44,7% na duração da fixação, 48,4% na contagem de fixação e 60,5% na contagem de regressões. Esses resultados contribuem para conscientizar educadores sobre certos refatoramentos e seu potencial para facilitar ou difi- cultar a compreensão de código de novatos em Python, Java e C. Praticantes e designers de linguagem de programação devem ser mais cuidadosos ao usar ou propor refatoramentos que possam prejudicar a capacidade dos novatos de entender o código. Para os pesquisadores, esses resultados mostram o potencial das métricas visuais para revelar um impacto de refa- toramentos que não podem ser capturados por métricas estáticas de código. linguagem de programação devem ser mais cuidadosos ao usar ou propor refatoramentos que possam perjudicar a capacidade dos novatos de entender o código. Para los pesquisadores, esses resultados mostram o potencial das métricas visuais para revelar um impacto de refa- toramentos que não podem ser capturados por métricas estáticas de código.
id UFCG_c0cacfcba86cc8165d6d25c54f12b9da
oai_identifier_str oai:dspace.sti.ufcg.edu.br:riufcg/29470
network_acronym_str UFCG
network_name_str Biblioteca Digital de Teses e Dissertações da UFCG
repository_id_str
spelling GHEYI, Rohit.GHEYI, R.Gheyi, Rohit.http://lattes.cnpq.br/2931270888717344MASSONI, Tiago Lima.MASSONI, T. L.Massoni, Tiago.MASSONI, TIAGO LIMA.http://lattes.cnpq.br/3563923906851611ALMEIDA, Hyggo Oliveira de.ALMEIDA, Hyggo Oliveira de.Almeida, Hyggo.Almeida, Hyggo O.http://lattes.cnpq.br/4993914550234923ALVES, Vander Ramos.ALVES, Vander.Alves, Vander.ALVES, V.http://lattes.cnpq.br/7500979195469357LIMA FILHO, Fernando José Castor de.CASTOR FILHO, Fernando.CASTOR, Fernando.CASTORFILHO, F.http://lattes.cnpq.br/7310046838140771COSTA, J. A. S.DA COSTA, JOSÉ ALDO SILVA.DA COSTA, JOSÉ ALDO.http://lattes.cnpq.br/3845232602852992COSTA, José Aldo Silva da.A compreensao do código é fundamental para a manutenção e evolução do software, por em, pode ser prejudicada por problemas estruturais no código. Para resolver os problemas es- truturais no código e torna-lo mais fácil de ler e entender, os desenvolvedores costumam usar refatoramentos. Um refatoramento e uma técnica disciplinada de reestruturação do código que visa melhorar sua estrutura interna preservando seu comportamento. No entanto, o estado-da-arte sobre o entendimento do impacto de refatoramentos na compreensao do ̃ código necessita de resultados conclusivos e detalhes quantitativos/qualitativos sobre como ́ e o porque de possıveis correlações. Enquanto alguns estudos encontraram um impacto di- ̃ vergente de refatoramentos na compreensão do código, outro descobriu que certos refatora- ́ mentos levaram a introdução de mais problemas estruturais. Com o objetivo de investigar o impacto das refatoramentos na compreensão do código, realizamos três estudos controlados com rastreio ocular: o primeiro sobre o impacto de atomos de confusão clarificados com 32 novatos em Python, o segundo sobre o impacto do refatoramento Extrair Metodo com 32 no- vatos em Java, e o terceiro sobre o impacto das anotac ̧oes ̃ #ifdef com 64 majoritariamente novatos na linguagem C. Alem de usar varios criterios como tempo, numero de tentativas ́ e opiniões, medimos o esforço visual dos sujeitos com rastreamento ocular por meio da ̃ duração da fixação, contagem de fixações e contagem de regressões. Em nossos resultados, ̃ a versão de código clarificada de um dos átomos reduziu o tempo em 38,6% e o número ́ de tentativas de resposta em 28%. Alem disso, observamos 47,3% menos regressões hori- zontais na região do átomo facilitando sua leitura. O uso do refatoramento Extrair Método apresentou uma redução significativa no tempo de duas tarefas, que variou de 70% a 78,8%. Observamos um aumento na acuracia de três tarefas, que variou de 20% a 34,4%. Os su- jeitos resolveram essas tarefas com o Extrair Método voltando visualmente no código com ́ 74,4% a 84,6 % menos frequência comparado ao Inline Método. No contexto das anotações #ifdef, um dos refatoramentos adiciona uma variável extra e duas linhas extras de código, o que e apenas um pequeno impacto na métrica Linhas de Código (LOC), mas apresentou reduções na região modificada em 46,9% no tempo, 44,7% na duração da fixação, 48,4% na contagem de fixação e 60,5% na contagem de regressões. Esses resultados contribuem para conscientizar educadores sobre certos refatoramentos e seu potencial para facilitar ou difi- cultar a compreensão de código de novatos em Python, Java e C. Praticantes e designers de linguagem de programação devem ser mais cuidadosos ao usar ou propor refatoramentos que possam prejudicar a capacidade dos novatos de entender o código. Para os pesquisadores, esses resultados mostram o potencial das métricas visuais para revelar um impacto de refa- toramentos que não podem ser capturados por métricas estáticas de código. linguagem de programação devem ser mais cuidadosos ao usar ou propor refatoramentos que possam perjudicar a capacidade dos novatos de entender o código. Para los pesquisadores, esses resultados mostram o potencial das métricas visuais para revelar um impacto de refa- toramentos que não podem ser capturados por métricas estáticas de código.Code comprehension is crucial for software maintenance and evolution, however, it can be hindered by structural problems in the code. To address the structural problems in the code and make it easier to read and understand, developers often use refactorings. Refactoring is a disciplined technique for restructuring the code that aims to improve its internal structure preserving its behavior. However, the state-of-the-art on understanding the impact of refac- torings on code comprehension lacks conclusive results and quantitative/qualitative details on how and why of possible correlations. While some studies found a divergent impact of refactorings on code comprehension, another found that certain refactorings led to the intro- duction of more structural problems. Aiming to further investigate the impact of refactorings on code comprehension, we conduct three controlled studies with eye tracking: the first one on the impact of clarified atoms of confusion with 32 novices in Python, the second one on the impact of Extract Method refactoring with 32 novices in Java, and the third one on the impact of #ifdef annotations with 64 majoritarily novices in the C language. Besides using multiple criteria such as time, the number of attempts, and opinions, we measured the visual effort of the subjects with eye tracking through fixation duration, fixations count, and regressions count. In our results, the clarified version of the code with an atom reduced the time to the extent of 38.6% and the number of answer attempts by 28%. In addition, we observed 47.3% fewer horizontal regressions count in the atom region, making its reading easier. The use of the Extract Method refactoring presented a significant reduction in the time of two tasks, which varied from 70% to 78.8%. We observed an increase in the accu- racy of three tasks, which varied from 20% to 34.4%. The subjects solved these tasks with the Extract Method going back visually in the code 74.4% to 84.6% less often compared to the Inline Method. In the context of #ifdef annotations, one of the refactorings adds one extra variable and two extra lines of code, which is only a small impact on the metric Lines of Code (LOC), but it presented reductions in the modified region by 46.9% in the time, 44.7% in the fixation duration, 48.4% in the fixation count, and 60.5% in the regressions count. These results raise educators’ awareness about certain refactorings and their potential to ease or hinder the code comprehension for novices in Python, Java, and C. Practitioners and language designers should be more careful when using or proposing refactorings that could possibly impair the novices’ abilities to understand the code. For researchers, these results show the potential of visual metrics to reveal an impact of refactorings that cannot be captured by static code metrics.Submitted by Mirna Edkarla Cabral Santos (edkarlamirna@gmail.com) on 2023-04-25T14:29:51Z No. of bitstreams: 1 JOSÉ ALDO SILVA DA COSTA - TESE (PPGCC) 2022.pdf: 3609337 bytes, checksum: a80edf3e4e424cd1fca61ffc3dd4689b (MD5)Made available in DSpace on 2023-04-25T14:29:51Z (GMT). No. of bitstreams: 1 JOSÉ ALDO SILVA DA COSTA - TESE (PPGCC) 2022.pdf: 3609337 bytes, checksum: a80edf3e4e424cd1fca61ffc3dd4689b (MD5) Previous issue date: 2022-12-13La comprensión del código es fundamental para la manutención y la evolución del software, por ejemplo, pode ser perjudicado por problemas estruturais no código. Para resolver os problemas es- truturais no código e torna-lo mais fácil de ler e entender, os desenvolvedores costumam usar refatoramentos. Um refatoramento e uma técnica disciplinada de reestruturação do código que visa melhorar sua estrutura interna preservando seu comportamento. No entanto, o estado-da-arte sobre o entendimento do impacto de refatoramentos na compreensao do ̃ código necessita de resultados conclusivos e detalhes quantitativos/qualitativos sobre como ́ e o porque de possıveis correlações. Enquanto alguns estudos encontraram um impacto di- ̃ vergente de refatoramentos na comprensão do código, outro descobriu que certos refatora- ́ mentos levaram a introducção de mais problemas estruturais. Como objetivo de investigar impacto das refatoramentos na comprensão do código, realizamos três estudos controlados com rastreio ocular: o primeiro sobre o impact of atomos de confusão clarificados com 32 novatos em Python, o segundo sobre o impacto do refatoramento Extrair Metodo com 32 no- vatos em Java, e o tercero sobre el impacto das anotac ̧oes ̃ #ifdef com 64 mayoritariamente novatos na linguagem C. Alem de usar varios criterios como tempo, numero de tentativas ́ e opiniões, medimos o esforço visual dos sujeitos com rastreamento ocular por meio da ̃ duração da fixação, contagem de fixações y contagem de regressões. Em nossos resultados, ̃ a versão de código clarificada de um dos ́ atomos reduziu o tempo em 38,6% e o número ́ de tentativas de respuesta em 28%. Alem disso, observamos 47,3% menos regressões hori- zontais na região do atomo facilitando sua leitura. O uso do refatoramento Extrair Método apresentou uma redução significativa no tempo de duas tarefas, que variou de 70% a 78,8%. Observamos um aumento na acuracia de três tarefas, que variou de 20% a 34,4%. Os su- jeitos resolveram essas tarefas com o Extrair Método voltando visualmente no código com ́ 74,4% a 84,6 % menos frecuencia comparada con Inline Método. No contexto das anotações #ifdef, um dos refatoramentos adiciona uma variável extra e duas linhas extras de código, o que apenas tiene un pequeño impacto en las líneas de código métricas (LOC), más presente reducciones en la región modificada en 46,9% sin tempo, 44,7% sobre la duración de la fijación, 48,4% sobre Contagem de fixação y 60,5% na contagem de regressões. Esses resultados contribuyen para conscientizar educadores sobre certos refatoramentos y seu potencial para facilitar ou difi- cultar una comprensión de código de novatos en Python, Java y C. Praticantes y diseñadores de linguagem de programação devem ser mais cuidadosos ao usar ou propor refatoramentos que possam perjudicar a capacidade dos novatos de entender o código. Para los pesquisadores, esses resultados mostram o potencial das métricas visuais para revelar um impacto de refa- toramentos que não podem ser capturados por métricas estáticas de código.Universidade Federal de Campina GrandePÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃOUFCGBrasilCentro de Engenharia Elétrica e Informática - CEEICiência da ComputaçãoRefatoramentosCompreensão de códigoEye trackingComprensión de códigoSeguimiento ocularRefatoraçõesRastreamento ocularEvaluating the impact of refactorings on the code comprehension of novices with eye tracking.Avaliando o impacto de refatorações na compreensão de código de novatos com eye tracking.Evaluación del impacto de las refactorizaciones en la comprensión de código de los novatos con seguimiento ocular.2022-12-132023-04-25T14:29:51Z2023-04-252023-04-25T14:29:51Zhttps://dspace.sti.ufcg.edu.br/handle/riufcg/29470COSTA, José Aldo Silva da. Evaluating the impact of refactorings on the code comprehension of novices with eye tracking. 2023. 222 fl. 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, 2023. Disponível em: https://dspace.sti.ufcg.edu.br/handle/riufcg/29470info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/doctoralThesisinfo:eu-repo/semantics/openAccessengreponame:Biblioteca Digital de Teses e Dissertações da UFCGinstname:Universidade Federal de Campina Grande (UFCG)instacron:UFCGTEXTJOSÉ ALDO SILVA DA COSTA - TESE PPGCC 2022.pdf.txtJOSÉ ALDO SILVA DA COSTA - TESE PPGCC 2022.pdf.txttext/plain458253https://dspace.sti.ufcg.edu.br/bitstream/riufcg/29470/3/JOS%C3%89+ALDO+SILVA+DA+COSTA++-+TESE+PPGCC+2022.pdf.txt98e4c1d33dd922d8ea4aad0e9ff7c67bMD53LICENSElicense.txtlicense.txttext/plain; charset=utf-81748https://dspace.sti.ufcg.edu.br/bitstream/riufcg/29470/2/license.txt8a4605be74aa9ea9d79846c1fba20a33MD52ORIGINALJOSÉ ALDO SILVA DA COSTA - TESE PPGCC 2022.pdfJOSÉ ALDO SILVA DA COSTA - TESE PPGCC 2022.pdfapplication/pdf3609337https://dspace.sti.ufcg.edu.br/bitstream/riufcg/29470/1/JOS%C3%89+ALDO+SILVA+DA+COSTA++-+TESE+PPGCC+2022.pdfa80edf3e4e424cd1fca61ffc3dd4689bMD51riufcg/294702025-11-18 03:11:26.839oai:dspace.sti.ufcg.edu.br:riufcg/29470Tk9URTogUExBQ0UgWU9VUiBPV04gTElDRU5TRSBIRVJFClRoaXMgc2FtcGxlIGxpY2Vuc2UgaXMgcHJvdmlkZWQgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgb25seS4KCk5PTi1FWENMVVNJVkUgRElTVFJJQlVUSU9OIExJQ0VOU0UKCkJ5IHNpZ25pbmcgYW5kIHN1Ym1pdHRpbmcgdGhpcyBsaWNlbnNlLCB5b3UgKHRoZSBhdXRob3Iocykgb3IgY29weXJpZ2h0Cm93bmVyKSBncmFudHMgdG8gRFNwYWNlIFVuaXZlcnNpdHkgKERTVSkgdGhlIG5vbi1leGNsdXNpdmUgcmlnaHQgdG8gcmVwcm9kdWNlLAp0cmFuc2xhdGUgKGFzIGRlZmluZWQgYmVsb3cpLCBhbmQvb3IgZGlzdHJpYnV0ZSB5b3VyIHN1Ym1pc3Npb24gKGluY2x1ZGluZwp0aGUgYWJzdHJhY3QpIHdvcmxkd2lkZSBpbiBwcmludCBhbmQgZWxlY3Ryb25pYyBmb3JtYXQgYW5kIGluIGFueSBtZWRpdW0sCmluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gYXVkaW8gb3IgdmlkZW8uCgpZb3UgYWdyZWUgdGhhdCBEU1UgbWF5LCB3aXRob3V0IGNoYW5naW5nIHRoZSBjb250ZW50LCB0cmFuc2xhdGUgdGhlCnN1Ym1pc3Npb24gdG8gYW55IG1lZGl1bSBvciBmb3JtYXQgZm9yIHRoZSBwdXJwb3NlIG9mIHByZXNlcnZhdGlvbi4KCllvdSBhbHNvIGFncmVlIHRoYXQgRFNVIG1heSBrZWVwIG1vcmUgdGhhbiBvbmUgY29weSBvZiB0aGlzIHN1Ym1pc3Npb24gZm9yCnB1cnBvc2VzIG9mIHNlY3VyaXR5LCBiYWNrLXVwIGFuZCBwcmVzZXJ2YXRpb24uCgpZb3UgcmVwcmVzZW50IHRoYXQgdGhlIHN1Ym1pc3Npb24gaXMgeW91ciBvcmlnaW5hbCB3b3JrLCBhbmQgdGhhdCB5b3UgaGF2ZQp0aGUgcmlnaHQgdG8gZ3JhbnQgdGhlIHJpZ2h0cyBjb250YWluZWQgaW4gdGhpcyBsaWNlbnNlLiBZb3UgYWxzbyByZXByZXNlbnQKdGhhdCB5b3VyIHN1Ym1pc3Npb24gZG9lcyBub3QsIHRvIHRoZSBiZXN0IG9mIHlvdXIga25vd2xlZGdlLCBpbmZyaW5nZSB1cG9uCmFueW9uZSdzIGNvcHlyaWdodC4KCklmIHRoZSBzdWJtaXNzaW9uIGNvbnRhaW5zIG1hdGVyaWFsIGZvciB3aGljaCB5b3UgZG8gbm90IGhvbGQgY29weXJpZ2h0LAp5b3UgcmVwcmVzZW50IHRoYXQgeW91IGhhdmUgb2J0YWluZWQgdGhlIHVucmVzdHJpY3RlZCBwZXJtaXNzaW9uIG9mIHRoZQpjb3B5cmlnaHQgb3duZXIgdG8gZ3JhbnQgRFNVIHRoZSByaWdodHMgcmVxdWlyZWQgYnkgdGhpcyBsaWNlbnNlLCBhbmQgdGhhdApzdWNoIHRoaXJkLXBhcnR5IG93bmVkIG1hdGVyaWFsIGlzIGNsZWFybHkgaWRlbnRpZmllZCBhbmQgYWNrbm93bGVkZ2VkCndpdGhpbiB0aGUgdGV4dCBvciBjb250ZW50IG9mIHRoZSBzdWJtaXNzaW9uLgoKSUYgVEhFIFNVQk1JU1NJT04gSVMgQkFTRUQgVVBPTiBXT1JLIFRIQVQgSEFTIEJFRU4gU1BPTlNPUkVEIE9SIFNVUFBPUlRFRApCWSBBTiBBR0VOQ1kgT1IgT1JHQU5JWkFUSU9OIE9USEVSIFRIQU4gRFNVLCBZT1UgUkVQUkVTRU5UIFRIQVQgWU9VIEhBVkUKRlVMRklMTEVEIEFOWSBSSUdIVCBPRiBSRVZJRVcgT1IgT1RIRVIgT0JMSUdBVElPTlMgUkVRVUlSRUQgQlkgU1VDSApDT05UUkFDVCBPUiBBR1JFRU1FTlQuCgpEU1Ugd2lsbCBjbGVhcmx5IGlkZW50aWZ5IHlvdXIgbmFtZShzKSBhcyB0aGUgYXV0aG9yKHMpIG9yIG93bmVyKHMpIG9mIHRoZQpzdWJtaXNzaW9uLCBhbmQgd2lsbCBub3QgbWFrZSBhbnkgYWx0ZXJhdGlvbiwgb3RoZXIgdGhhbiBhcyBhbGxvd2VkIGJ5IHRoaXMKbGljZW5zZSwgdG8geW91ciBzdWJtaXNzaW9uLgo=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-11-18T06:11:26Biblioteca Digital de Teses e Dissertações da UFCG - Universidade Federal de Campina Grande (UFCG)false
dc.title.pt_BR.fl_str_mv Evaluating the impact of refactorings on the code comprehension of novices with eye tracking.
dc.title.alternative.pt_BR.fl_str_mv Avaliando o impacto de refatorações na compreensão de código de novatos com eye tracking.
Evaluación del impacto de las refactorizaciones en la comprensión de código de los novatos con seguimiento ocular.
title Evaluating the impact of refactorings on the code comprehension of novices with eye tracking.
spellingShingle Evaluating the impact of refactorings on the code comprehension of novices with eye tracking.
COSTA, José Aldo Silva da.
Ciência da Computação
Refatoramentos
Compreensão de código
Eye tracking
Comprensión de código
Seguimiento ocular
Refatorações
Rastreamento ocular
title_short Evaluating the impact of refactorings on the code comprehension of novices with eye tracking.
title_full Evaluating the impact of refactorings on the code comprehension of novices with eye tracking.
title_fullStr Evaluating the impact of refactorings on the code comprehension of novices with eye tracking.
title_full_unstemmed Evaluating the impact of refactorings on the code comprehension of novices with eye tracking.
title_sort Evaluating the impact of refactorings on the code comprehension of novices with eye tracking.
author COSTA, José Aldo Silva da.
author_facet COSTA, José Aldo Silva da.
author_role author
dc.contributor.advisor1.fl_str_mv GHEYI, Rohit.
dc.contributor.advisor1ID.fl_str_mv GHEYI, R.
Gheyi, Rohit.
dc.contributor.advisor1Lattes.fl_str_mv http://lattes.cnpq.br/2931270888717344
dc.contributor.referee1.fl_str_mv MASSONI, Tiago Lima.
dc.contributor.referee1ID.fl_str_mv MASSONI, T. L.
Massoni, Tiago.
MASSONI, TIAGO LIMA.
dc.contributor.referee1Lattes.fl_str_mv http://lattes.cnpq.br/3563923906851611
dc.contributor.referee2.fl_str_mv ALMEIDA, Hyggo Oliveira de.
dc.contributor.referee2ID.fl_str_mv ALMEIDA, Hyggo Oliveira de.
Almeida, Hyggo.
Almeida, Hyggo O.
dc.contributor.referee2Lattes.fl_str_mv http://lattes.cnpq.br/4993914550234923
dc.contributor.referee3.fl_str_mv ALVES, Vander Ramos.
dc.contributor.referee3ID.fl_str_mv ALVES, Vander.
Alves, Vander.
ALVES, V.
dc.contributor.referee3Lattes.fl_str_mv http://lattes.cnpq.br/7500979195469357
dc.contributor.referee4.fl_str_mv LIMA FILHO, Fernando José Castor de.
dc.contributor.referee4ID.fl_str_mv CASTOR FILHO, Fernando.
CASTOR, Fernando.
CASTORFILHO, F.
dc.contributor.referee4Lattes.fl_str_mv http://lattes.cnpq.br/7310046838140771
dc.contributor.authorID.fl_str_mv COSTA, J. A. S.
DA COSTA, JOSÉ ALDO SILVA.
DA COSTA, JOSÉ ALDO.
dc.contributor.authorLattes.fl_str_mv http://lattes.cnpq.br/3845232602852992
dc.contributor.author.fl_str_mv COSTA, José Aldo Silva da.
contributor_str_mv GHEYI, Rohit.
MASSONI, Tiago Lima.
ALMEIDA, Hyggo Oliveira de.
ALVES, Vander Ramos.
LIMA FILHO, Fernando José Castor de.
dc.subject.cnpq.fl_str_mv Ciência da Computação
topic Ciência da Computação
Refatoramentos
Compreensão de código
Eye tracking
Comprensión de código
Seguimiento ocular
Refatorações
Rastreamento ocular
dc.subject.por.fl_str_mv Refatoramentos
Compreensão de código
Eye tracking
Comprensión de código
Seguimiento ocular
Refatorações
Rastreamento ocular
description A compreensao do código é fundamental para a manutenção e evolução do software, por em, pode ser prejudicada por problemas estruturais no código. Para resolver os problemas es- truturais no código e torna-lo mais fácil de ler e entender, os desenvolvedores costumam usar refatoramentos. Um refatoramento e uma técnica disciplinada de reestruturação do código que visa melhorar sua estrutura interna preservando seu comportamento. No entanto, o estado-da-arte sobre o entendimento do impacto de refatoramentos na compreensao do ̃ código necessita de resultados conclusivos e detalhes quantitativos/qualitativos sobre como ́ e o porque de possıveis correlações. Enquanto alguns estudos encontraram um impacto di- ̃ vergente de refatoramentos na compreensão do código, outro descobriu que certos refatora- ́ mentos levaram a introdução de mais problemas estruturais. Com o objetivo de investigar o impacto das refatoramentos na compreensão do código, realizamos três estudos controlados com rastreio ocular: o primeiro sobre o impacto de atomos de confusão clarificados com 32 novatos em Python, o segundo sobre o impacto do refatoramento Extrair Metodo com 32 no- vatos em Java, e o terceiro sobre o impacto das anotac ̧oes ̃ #ifdef com 64 majoritariamente novatos na linguagem C. Alem de usar varios criterios como tempo, numero de tentativas ́ e opiniões, medimos o esforço visual dos sujeitos com rastreamento ocular por meio da ̃ duração da fixação, contagem de fixações e contagem de regressões. Em nossos resultados, ̃ a versão de código clarificada de um dos átomos reduziu o tempo em 38,6% e o número ́ de tentativas de resposta em 28%. Alem disso, observamos 47,3% menos regressões hori- zontais na região do átomo facilitando sua leitura. O uso do refatoramento Extrair Método apresentou uma redução significativa no tempo de duas tarefas, que variou de 70% a 78,8%. Observamos um aumento na acuracia de três tarefas, que variou de 20% a 34,4%. Os su- jeitos resolveram essas tarefas com o Extrair Método voltando visualmente no código com ́ 74,4% a 84,6 % menos frequência comparado ao Inline Método. No contexto das anotações #ifdef, um dos refatoramentos adiciona uma variável extra e duas linhas extras de código, o que e apenas um pequeno impacto na métrica Linhas de Código (LOC), mas apresentou reduções na região modificada em 46,9% no tempo, 44,7% na duração da fixação, 48,4% na contagem de fixação e 60,5% na contagem de regressões. Esses resultados contribuem para conscientizar educadores sobre certos refatoramentos e seu potencial para facilitar ou difi- cultar a compreensão de código de novatos em Python, Java e C. Praticantes e designers de linguagem de programação devem ser mais cuidadosos ao usar ou propor refatoramentos que possam prejudicar a capacidade dos novatos de entender o código. Para os pesquisadores, esses resultados mostram o potencial das métricas visuais para revelar um impacto de refa- toramentos que não podem ser capturados por métricas estáticas de código. linguagem de programação devem ser mais cuidadosos ao usar ou propor refatoramentos que possam perjudicar a capacidade dos novatos de entender o código. Para los pesquisadores, esses resultados mostram o potencial das métricas visuais para revelar um impacto de refa- toramentos que não podem ser capturados por métricas estáticas de código.
publishDate 2022
dc.date.issued.fl_str_mv 2022-12-13
dc.date.accessioned.fl_str_mv 2023-04-25T14:29:51Z
dc.date.available.fl_str_mv 2023-04-25
2023-04-25T14:29:51Z
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/29470
dc.identifier.citation.fl_str_mv COSTA, José Aldo Silva da. Evaluating the impact of refactorings on the code comprehension of novices with eye tracking. 2023. 222 fl. 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, 2023. Disponível em: https://dspace.sti.ufcg.edu.br/handle/riufcg/29470
url https://dspace.sti.ufcg.edu.br/handle/riufcg/29470
identifier_str_mv COSTA, José Aldo Silva da. Evaluating the impact of refactorings on the code comprehension of novices with eye tracking. 2023. 222 fl. 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, 2023. Disponível em: https://dspace.sti.ufcg.edu.br/handle/riufcg/29470
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/29470/3/JOS%C3%89+ALDO+SILVA+DA+COSTA++-+TESE+PPGCC+2022.pdf.txt
https://dspace.sti.ufcg.edu.br/bitstream/riufcg/29470/2/license.txt
https://dspace.sti.ufcg.edu.br/bitstream/riufcg/29470/1/JOS%C3%89+ALDO+SILVA+DA+COSTA++-+TESE+PPGCC+2022.pdf
bitstream.checksum.fl_str_mv 98e4c1d33dd922d8ea4aad0e9ff7c67b
8a4605be74aa9ea9d79846c1fba20a33
a80edf3e4e424cd1fca61ffc3dd4689b
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_ 1863363533824065536