Relação entre refatorações e code smells na evolução de projetos de software e seu reflexo em medidas de software

Bibliographic Details
Main Author: OLIVEIRA, Everton Rennê Barros de
Publication Date: 2020
Format: Master thesis
Language: por
Source: Repositório Institucional da UFPE
dARK ID: ark:/64986/001300000gq8w
Download full: https://repositorio.ufpe.br/handle/123456789/37903
Summary: A refatoração ou refactoring, é a atividade de melhorar o código fonte sem afetar o comportamento observável do software, com vistas a reuso, legibilidade e facilidade de manutenção. A refatoração é útil para transformação de trechos de código com baixa qualidade e que se enxerga uma oportunidade de melhoria. Estes trechos também são conhecidos como code smells (código com “cheiro”) ou bad smells (código que “cheira mal”). Observamos como projetos de software evoluíram a partir da relação entre as refatorações e code smells, sob a perspectiva das medidas de software ao longo do ciclo de evolução do software. Desenvolvemos a ferramenta RefactoringLink a fim de identificar code smells que foram introduzidos ao longo do desenvolvimento, bem como aqueles que desapareceram. Outra funcionalidade da ferramenta é a de capturar as refatorações que ocorreram entre as versões de um software, com a finalidade de identificar quais foram os recursos afetados por essas transformações e assim criar uma associação entre a refatoração e o code smell. Investigamos 11.593 versões em 427 projetos Java/Android, hospedados em repositórios de software público. Em nossos achados, foi possível detectar 4.555.351 code smells e um total de 197.525 refatorações. Identificamos que apenas 2.3% (4.508) das refatorações resultaram em correção direta de 0.13% (5.354) dos code smells. Coletamos 37 medidas de software para cada classe de cada versão dos projetos analisados. Analisamos cinco medidas de software específicas de orientação a objetos em três cenários para observar o reflexo nas medidas quando na existência ou não de refatoração ou code smell. Os achados indicam que as medidas de software podem sofrer variações em razão da inclusão de novas funcionalidades ou manutenção do código que é realizada ao longo da evolução do software, indo além de mudanças advindas de refatorações. Apresentamos um comparativo das medidas em 15 classes de projetos distintos que tiveram a presença de refatoração, code smell e da correção de code smell a partir de uma refatoração.
id UFPE_0b2ac58f7e9dd6acf4cf6313df704db6
oai_identifier_str oai:repositorio.ufpe.br:123456789/37903
network_acronym_str UFPE
network_name_str Repositório Institucional da UFPE
repository_id_str 2221
spelling Relação entre refatorações e code smells na evolução de projetos de software e seu reflexo em medidas de softwareEngenharia de softwareMedidas de softwareA refatoração ou refactoring, é a atividade de melhorar o código fonte sem afetar o comportamento observável do software, com vistas a reuso, legibilidade e facilidade de manutenção. A refatoração é útil para transformação de trechos de código com baixa qualidade e que se enxerga uma oportunidade de melhoria. Estes trechos também são conhecidos como code smells (código com “cheiro”) ou bad smells (código que “cheira mal”). Observamos como projetos de software evoluíram a partir da relação entre as refatorações e code smells, sob a perspectiva das medidas de software ao longo do ciclo de evolução do software. Desenvolvemos a ferramenta RefactoringLink a fim de identificar code smells que foram introduzidos ao longo do desenvolvimento, bem como aqueles que desapareceram. Outra funcionalidade da ferramenta é a de capturar as refatorações que ocorreram entre as versões de um software, com a finalidade de identificar quais foram os recursos afetados por essas transformações e assim criar uma associação entre a refatoração e o code smell. Investigamos 11.593 versões em 427 projetos Java/Android, hospedados em repositórios de software público. Em nossos achados, foi possível detectar 4.555.351 code smells e um total de 197.525 refatorações. Identificamos que apenas 2.3% (4.508) das refatorações resultaram em correção direta de 0.13% (5.354) dos code smells. Coletamos 37 medidas de software para cada classe de cada versão dos projetos analisados. Analisamos cinco medidas de software específicas de orientação a objetos em três cenários para observar o reflexo nas medidas quando na existência ou não de refatoração ou code smell. Os achados indicam que as medidas de software podem sofrer variações em razão da inclusão de novas funcionalidades ou manutenção do código que é realizada ao longo da evolução do software, indo além de mudanças advindas de refatorações. Apresentamos um comparativo das medidas em 15 classes de projetos distintos que tiveram a presença de refatoração, code smell e da correção de code smell a partir de uma refatoração.Refactoring is the activity of improving the source code without affecting the observable behavior of the software, with a view to reuse, readability, and maintenance. Refactoring is useful to change low-quality code snippets that there is an opportunity for improvement. This code is also known as code smells or bad smells (code that looks strange and almost smells bad). We observed how software projects evolved from the relationship between refactorings and code smells, from the perspective of software metric throughout the software evolution history. We developed the RefactoringLink tool in order to identify code smells that were introduced during development, as well as those that disappeared. Another feature of the tool is to capture the refactorings that occurred between versions in order to identify which resources were affected by these transformations and thus create a link between refactoring and code smell. We investigated 11,593 versions in 427 Java/Android projects, hosted on public software repositories. In our findings, it was possible to detect 4,555,351 code smells and a total of 197,525 refactorings. We found that only 2.3% (4,508) of refactorings resulted in a direct correction of code smells, this means that we only detected that 0.13% (5,354) of code smells were fixed by a refactoring action, intentional or not. We collected 37 software metrics for each class of each version of the analyzed projects. We analyzed five specific object-oriented software metrics in three scenarios to observe the reflection in the measures when refactoring or code smell exists or not. The findings indicate that the software metrics may suffer variations due to the addition of new features or maintenance of the code. It's natural for software to be evolved beyond changes resulting from refactorings. We present a comparison of the measures in 15 classes of different projects that had the presence of refactoring, code smell and the correction of code smell from refactoring.Universidade Federal de PernambucoUFPEBrasilPrograma de Pos Graduacao em Ciencia da ComputacaoCORNÉLIO, Márcio Lopeshttp://lattes.cnpq.br/3146076518372108http://lattes.cnpq.br/3776948564582273OLIVEIRA, Everton Rennê Barros de2020-09-10T19:18:59Z2020-09-10T19:18:59Z2020-02-14info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfOLIVEIRA, Everton Rennê Barros de. Relação entre refatorações e code smells na evolução de projetos de software e seu reflexo em medidas de software. 2020. Dissertação (Mestrado em Ciência da Computação) – Universidade Federal de Pernambuco, Recife, 2020.https://repositorio.ufpe.br/handle/123456789/37903ark:/64986/001300000gq8wporAttribution-NonCommercial-NoDerivs 3.0 Brazilhttp://creativecommons.org/licenses/by-nc-nd/3.0/br/info:eu-repo/semantics/openAccessreponame:Repositório Institucional da UFPEinstname:Universidade Federal de Pernambuco (UFPE)instacron:UFPE2020-09-11T05:10:37Zoai:repositorio.ufpe.br:123456789/37903Repositório InstitucionalPUBhttps://repositorio.ufpe.br/oai/requestattena@ufpe.bropendoar:22212020-09-11T05:10:37Repositório Institucional da UFPE - Universidade Federal de Pernambuco (UFPE)false
dc.title.none.fl_str_mv Relação entre refatorações e code smells na evolução de projetos de software e seu reflexo em medidas de software
title Relação entre refatorações e code smells na evolução de projetos de software e seu reflexo em medidas de software
spellingShingle Relação entre refatorações e code smells na evolução de projetos de software e seu reflexo em medidas de software
OLIVEIRA, Everton Rennê Barros de
Engenharia de software
Medidas de software
title_short Relação entre refatorações e code smells na evolução de projetos de software e seu reflexo em medidas de software
title_full Relação entre refatorações e code smells na evolução de projetos de software e seu reflexo em medidas de software
title_fullStr Relação entre refatorações e code smells na evolução de projetos de software e seu reflexo em medidas de software
title_full_unstemmed Relação entre refatorações e code smells na evolução de projetos de software e seu reflexo em medidas de software
title_sort Relação entre refatorações e code smells na evolução de projetos de software e seu reflexo em medidas de software
author OLIVEIRA, Everton Rennê Barros de
author_facet OLIVEIRA, Everton Rennê Barros de
author_role author
dc.contributor.none.fl_str_mv CORNÉLIO, Márcio Lopes
http://lattes.cnpq.br/3146076518372108
http://lattes.cnpq.br/3776948564582273
dc.contributor.author.fl_str_mv OLIVEIRA, Everton Rennê Barros de
dc.subject.por.fl_str_mv Engenharia de software
Medidas de software
topic Engenharia de software
Medidas de software
description A refatoração ou refactoring, é a atividade de melhorar o código fonte sem afetar o comportamento observável do software, com vistas a reuso, legibilidade e facilidade de manutenção. A refatoração é útil para transformação de trechos de código com baixa qualidade e que se enxerga uma oportunidade de melhoria. Estes trechos também são conhecidos como code smells (código com “cheiro”) ou bad smells (código que “cheira mal”). Observamos como projetos de software evoluíram a partir da relação entre as refatorações e code smells, sob a perspectiva das medidas de software ao longo do ciclo de evolução do software. Desenvolvemos a ferramenta RefactoringLink a fim de identificar code smells que foram introduzidos ao longo do desenvolvimento, bem como aqueles que desapareceram. Outra funcionalidade da ferramenta é a de capturar as refatorações que ocorreram entre as versões de um software, com a finalidade de identificar quais foram os recursos afetados por essas transformações e assim criar uma associação entre a refatoração e o code smell. Investigamos 11.593 versões em 427 projetos Java/Android, hospedados em repositórios de software público. Em nossos achados, foi possível detectar 4.555.351 code smells e um total de 197.525 refatorações. Identificamos que apenas 2.3% (4.508) das refatorações resultaram em correção direta de 0.13% (5.354) dos code smells. Coletamos 37 medidas de software para cada classe de cada versão dos projetos analisados. Analisamos cinco medidas de software específicas de orientação a objetos em três cenários para observar o reflexo nas medidas quando na existência ou não de refatoração ou code smell. Os achados indicam que as medidas de software podem sofrer variações em razão da inclusão de novas funcionalidades ou manutenção do código que é realizada ao longo da evolução do software, indo além de mudanças advindas de refatorações. Apresentamos um comparativo das medidas em 15 classes de projetos distintos que tiveram a presença de refatoração, code smell e da correção de code smell a partir de uma refatoração.
publishDate 2020
dc.date.none.fl_str_mv 2020-09-10T19:18:59Z
2020-09-10T19:18:59Z
2020-02-14
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 OLIVEIRA, Everton Rennê Barros de. Relação entre refatorações e code smells na evolução de projetos de software e seu reflexo em medidas de software. 2020. Dissertação (Mestrado em Ciência da Computação) – Universidade Federal de Pernambuco, Recife, 2020.
https://repositorio.ufpe.br/handle/123456789/37903
dc.identifier.dark.fl_str_mv ark:/64986/001300000gq8w
identifier_str_mv OLIVEIRA, Everton Rennê Barros de. Relação entre refatorações e code smells na evolução de projetos de software e seu reflexo em medidas de software. 2020. Dissertação (Mestrado em Ciência da Computação) – Universidade Federal de Pernambuco, Recife, 2020.
ark:/64986/001300000gq8w
url https://repositorio.ufpe.br/handle/123456789/37903
dc.language.iso.fl_str_mv por
language por
dc.rights.driver.fl_str_mv Attribution-NonCommercial-NoDerivs 3.0 Brazil
http://creativecommons.org/licenses/by-nc-nd/3.0/br/
info:eu-repo/semantics/openAccess
rights_invalid_str_mv Attribution-NonCommercial-NoDerivs 3.0 Brazil
http://creativecommons.org/licenses/by-nc-nd/3.0/br/
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.publisher.none.fl_str_mv Universidade Federal de Pernambuco
UFPE
Brasil
Programa de Pos Graduacao em Ciencia da Computacao
publisher.none.fl_str_mv Universidade Federal de Pernambuco
UFPE
Brasil
Programa de Pos Graduacao em Ciencia da Computacao
dc.source.none.fl_str_mv reponame:Repositório Institucional da UFPE
instname:Universidade Federal de Pernambuco (UFPE)
instacron:UFPE
instname_str Universidade Federal de Pernambuco (UFPE)
instacron_str UFPE
institution UFPE
reponame_str Repositório Institucional da UFPE
collection Repositório Institucional da UFPE
repository.name.fl_str_mv Repositório Institucional da UFPE - Universidade Federal de Pernambuco (UFPE)
repository.mail.fl_str_mv attena@ufpe.br
_version_ 1846272486734299136