[pt] ENTENDENDO E MELHORANDO A PRÁTICA DE REFATORAÇÕES EM LOTE EM SISTEMAS DE SOFTWARE
Autor(a) principal: | |
---|---|
Data de Publicação: | 2019 |
Tipo de documento: | Outros |
Idioma: | eng |
Título da fonte: | Repositório Institucional da PUC-RIO (Projeto Maxwell) |
Texto Completo: | https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=36103@1 https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=36103@2 http://doi.org/10.17771/PUCRio.acad.36103 |
Resumo: | [pt] Em um sistema de software, as anomalias de código indicam problemas estruturais que podem ser resolvidos através da refatoração. No entanto, desenvolvedores podem negligenciar ou acabar criando novas anomalias ao refatorar. Pouco foi relatado sobre os efeitos benéficos e prejudiciais da refatoração de anomalias de código. Evidências sugerem que os desenvolvedores frequentemente precisam aplicar uma sequência de refatorações (refatoração em lote) para remover completamente as estruturas anômalas. Assim, nesta tese, realizamos uma série de estudos para entender o impacto de refatorações simples e em lote em anomalias de código. Em nossos primeiros estudos, analisamos com que frequência os tipos de refatoração comumente usados afetam a densidade de anomalias ao longo das histórias de dezenas de projetos. Mesmo que 79,4 por cento das refatorações tenham tocado em elementos anômalos, 57 por cento não reduziram suas ocorrências. Surpreendentemente, apenas 9,7 por cento das refatorações removeram anomalias de código, enquanto 33 por cento induziram a introdução de novas. Por um lado, observamos padrões nocivos de introdução de anomalias. Por outro lado, observamos que muitas anomalias podem ser removidas apenas por refatorações em lote. Assim, nossos últimos estudos investigam o impacto de refatorações em lote nas anomalias. Mesmo quando aplicadas em lotes, as refatorações tendem a não afetar ou mesmo aumentar a densidade de anomalias. Também identificamos padrões entre tipos de lotes e tipos de anomalias, levando-nos à criação de heurísticas que podem orientar os desenvolvedores durante tarefas de remoção de anomalias de código. O último estudo avaliou essas heurísticas e concluímos que os resultados são promissores. |
id |
PUC_RIO-1_57013d39422faf4046c58bc8f4940722 |
---|---|
oai_identifier_str |
oai:MAXWELL.puc-rio.br:36103 |
network_acronym_str |
PUC_RIO-1 |
network_name_str |
Repositório Institucional da PUC-RIO (Projeto Maxwell) |
repository_id_str |
534 |
spelling |
[pt] ENTENDENDO E MELHORANDO A PRÁTICA DE REFATORAÇÕES EM LOTE EM SISTEMAS DE SOFTWARE [en] UNDERSTANDING AND IMPROVING BATCH REFACTORING IN SOFTWARE SYSTEMS [pt] EVOLUCAO DE SOFTWARE[pt] QUALIDADE ESTRUTURAL[pt] MANUTENCAO DE SOFTWARE[pt] REFATORACAO[pt] ANOMALIA DE CODIGO[en] SOFTWARE EVOLUTION[en] STRUCTURAL QUALITY[en] SOFTWARE MAINTENANCE[en] REFACTORING[en] CODE SMELL[pt] Em um sistema de software, as anomalias de código indicam problemas estruturais que podem ser resolvidos através da refatoração. No entanto, desenvolvedores podem negligenciar ou acabar criando novas anomalias ao refatorar. Pouco foi relatado sobre os efeitos benéficos e prejudiciais da refatoração de anomalias de código. Evidências sugerem que os desenvolvedores frequentemente precisam aplicar uma sequência de refatorações (refatoração em lote) para remover completamente as estruturas anômalas. Assim, nesta tese, realizamos uma série de estudos para entender o impacto de refatorações simples e em lote em anomalias de código. Em nossos primeiros estudos, analisamos com que frequência os tipos de refatoração comumente usados afetam a densidade de anomalias ao longo das histórias de dezenas de projetos. Mesmo que 79,4 por cento das refatorações tenham tocado em elementos anômalos, 57 por cento não reduziram suas ocorrências. Surpreendentemente, apenas 9,7 por cento das refatorações removeram anomalias de código, enquanto 33 por cento induziram a introdução de novas. Por um lado, observamos padrões nocivos de introdução de anomalias. Por outro lado, observamos que muitas anomalias podem ser removidas apenas por refatorações em lote. Assim, nossos últimos estudos investigam o impacto de refatorações em lote nas anomalias. Mesmo quando aplicadas em lotes, as refatorações tendem a não afetar ou mesmo aumentar a densidade de anomalias. Também identificamos padrões entre tipos de lotes e tipos de anomalias, levando-nos à criação de heurísticas que podem orientar os desenvolvedores durante tarefas de remoção de anomalias de código. O último estudo avaliou essas heurísticas e concluímos que os resultados são promissores.[en] Code smells in a program represent indications of structural quality problems, which can be addressed by software refactoring. However, developers may neglect or end up creating new code smells through single refactoring. Little has been reported about recurring beneficial and harmful effects of refactoring on the program structural quality. As a consequence, developers still miss guidance along non-trivial smell-removing tasks. In fact, evidence suggests developers often need to apply a sequence of refactorings, so-called batch refactoring, to entirely remove a smelly code structure. Thus, in this thesis, we have conducted a series of studies to understand the impact of single and batch refactorings on code smells. In our first studies, we analyze how often commonly-used types of single refactoring affect the density of code smells along the version histories of dozens of projects. Even though 79.4 percent of the refactorings touched smelly elements, 57 percent had no impact on the smell removal. Surprisingly, only 9.7 percent of refactorings removed smells, while 33 percent induced the introduction of new ones. On one hand, we observed that harmful refactoring-smell patterns could be used to guide developers to avoid smell-inducing refactoring. On the other hand, we observed that many smells can be removed only through batch refactoring. Thus, our last studies investigate the impact of batch refactorings on smells. Even when applied in batches, refactorings tend to maintain or even increase the density of code smells. We also identified common batch-smell patterns, which enable us to create heuristics that can guide developers through smell-removing tasks. The last study evaluated those heuristics, and we conclude the outcomes are promising.MAXWELLALESSANDRO FABRICIO GARCIAALESSANDRO FABRICIO GARCIAALESSANDRO FABRICIO GARCIADIEGO CEDRIM GOMES REGO2019-01-15info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/otherhttps://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=36103@1https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=36103@2http://doi.org/10.17771/PUCRio.acad.36103engreponame:Repositório Institucional da PUC-RIO (Projeto Maxwell)instname:Pontifícia Universidade Católica do Rio de Janeiro (PUC-RIO)instacron:PUC_RIOinfo:eu-repo/semantics/openAccess2019-01-15T00:00:00Zoai:MAXWELL.puc-rio.br:36103Repositório InstitucionalPRIhttps://www.maxwell.vrac.puc-rio.br/ibict.phpopendoar:5342019-01-15T00:00Repositório Institucional da PUC-RIO (Projeto Maxwell) - Pontifícia Universidade Católica do Rio de Janeiro (PUC-RIO)false |
dc.title.none.fl_str_mv |
[pt] ENTENDENDO E MELHORANDO A PRÁTICA DE REFATORAÇÕES EM LOTE EM SISTEMAS DE SOFTWARE [en] UNDERSTANDING AND IMPROVING BATCH REFACTORING IN SOFTWARE SYSTEMS |
title |
[pt] ENTENDENDO E MELHORANDO A PRÁTICA DE REFATORAÇÕES EM LOTE EM SISTEMAS DE SOFTWARE |
spellingShingle |
[pt] ENTENDENDO E MELHORANDO A PRÁTICA DE REFATORAÇÕES EM LOTE EM SISTEMAS DE SOFTWARE DIEGO CEDRIM GOMES REGO [pt] EVOLUCAO DE SOFTWARE [pt] QUALIDADE ESTRUTURAL [pt] MANUTENCAO DE SOFTWARE [pt] REFATORACAO [pt] ANOMALIA DE CODIGO [en] SOFTWARE EVOLUTION [en] STRUCTURAL QUALITY [en] SOFTWARE MAINTENANCE [en] REFACTORING [en] CODE SMELL |
title_short |
[pt] ENTENDENDO E MELHORANDO A PRÁTICA DE REFATORAÇÕES EM LOTE EM SISTEMAS DE SOFTWARE |
title_full |
[pt] ENTENDENDO E MELHORANDO A PRÁTICA DE REFATORAÇÕES EM LOTE EM SISTEMAS DE SOFTWARE |
title_fullStr |
[pt] ENTENDENDO E MELHORANDO A PRÁTICA DE REFATORAÇÕES EM LOTE EM SISTEMAS DE SOFTWARE |
title_full_unstemmed |
[pt] ENTENDENDO E MELHORANDO A PRÁTICA DE REFATORAÇÕES EM LOTE EM SISTEMAS DE SOFTWARE |
title_sort |
[pt] ENTENDENDO E MELHORANDO A PRÁTICA DE REFATORAÇÕES EM LOTE EM SISTEMAS DE SOFTWARE |
author |
DIEGO CEDRIM GOMES REGO |
author_facet |
DIEGO CEDRIM GOMES REGO |
author_role |
author |
dc.contributor.none.fl_str_mv |
ALESSANDRO FABRICIO GARCIA ALESSANDRO FABRICIO GARCIA ALESSANDRO FABRICIO GARCIA |
dc.contributor.author.fl_str_mv |
DIEGO CEDRIM GOMES REGO |
dc.subject.por.fl_str_mv |
[pt] EVOLUCAO DE SOFTWARE [pt] QUALIDADE ESTRUTURAL [pt] MANUTENCAO DE SOFTWARE [pt] REFATORACAO [pt] ANOMALIA DE CODIGO [en] SOFTWARE EVOLUTION [en] STRUCTURAL QUALITY [en] SOFTWARE MAINTENANCE [en] REFACTORING [en] CODE SMELL |
topic |
[pt] EVOLUCAO DE SOFTWARE [pt] QUALIDADE ESTRUTURAL [pt] MANUTENCAO DE SOFTWARE [pt] REFATORACAO [pt] ANOMALIA DE CODIGO [en] SOFTWARE EVOLUTION [en] STRUCTURAL QUALITY [en] SOFTWARE MAINTENANCE [en] REFACTORING [en] CODE SMELL |
description |
[pt] Em um sistema de software, as anomalias de código indicam problemas estruturais que podem ser resolvidos através da refatoração. No entanto, desenvolvedores podem negligenciar ou acabar criando novas anomalias ao refatorar. Pouco foi relatado sobre os efeitos benéficos e prejudiciais da refatoração de anomalias de código. Evidências sugerem que os desenvolvedores frequentemente precisam aplicar uma sequência de refatorações (refatoração em lote) para remover completamente as estruturas anômalas. Assim, nesta tese, realizamos uma série de estudos para entender o impacto de refatorações simples e em lote em anomalias de código. Em nossos primeiros estudos, analisamos com que frequência os tipos de refatoração comumente usados afetam a densidade de anomalias ao longo das histórias de dezenas de projetos. Mesmo que 79,4 por cento das refatorações tenham tocado em elementos anômalos, 57 por cento não reduziram suas ocorrências. Surpreendentemente, apenas 9,7 por cento das refatorações removeram anomalias de código, enquanto 33 por cento induziram a introdução de novas. Por um lado, observamos padrões nocivos de introdução de anomalias. Por outro lado, observamos que muitas anomalias podem ser removidas apenas por refatorações em lote. Assim, nossos últimos estudos investigam o impacto de refatorações em lote nas anomalias. Mesmo quando aplicadas em lotes, as refatorações tendem a não afetar ou mesmo aumentar a densidade de anomalias. Também identificamos padrões entre tipos de lotes e tipos de anomalias, levando-nos à criação de heurísticas que podem orientar os desenvolvedores durante tarefas de remoção de anomalias de código. O último estudo avaliou essas heurísticas e concluímos que os resultados são promissores. |
publishDate |
2019 |
dc.date.none.fl_str_mv |
2019-01-15 |
dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
dc.type.driver.fl_str_mv |
info:eu-repo/semantics/other |
format |
other |
status_str |
publishedVersion |
dc.identifier.uri.fl_str_mv |
https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=36103@1 https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=36103@2 http://doi.org/10.17771/PUCRio.acad.36103 |
url |
https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=36103@1 https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=36103@2 http://doi.org/10.17771/PUCRio.acad.36103 |
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 |
MAXWELL |
publisher.none.fl_str_mv |
MAXWELL |
dc.source.none.fl_str_mv |
reponame:Repositório Institucional da PUC-RIO (Projeto Maxwell) instname:Pontifícia Universidade Católica do Rio de Janeiro (PUC-RIO) instacron:PUC_RIO |
instname_str |
Pontifícia Universidade Católica do Rio de Janeiro (PUC-RIO) |
instacron_str |
PUC_RIO |
institution |
PUC_RIO |
reponame_str |
Repositório Institucional da PUC-RIO (Projeto Maxwell) |
collection |
Repositório Institucional da PUC-RIO (Projeto Maxwell) |
repository.name.fl_str_mv |
Repositório Institucional da PUC-RIO (Projeto Maxwell) - Pontifícia Universidade Católica do Rio de Janeiro (PUC-RIO) |
repository.mail.fl_str_mv |
|
_version_ |
1814822613017427968 |