[en] PRIORITIZATION OF CODE ANOMALIES BASED ON ARCHITECTURE SENSITIVENESS

Detalhes bibliográficos
Autor(a) principal: ROBERTA LOPES ARCOVERDE
Data de Publicação: 2015
Tipo de documento: Tese
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=23962&idi=1
https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=23962&idi=2
http://doi.org/10.17771/PUCRio.acad.23962
Resumo: [pt] Um dos principais sintomas de declínio da qualidade arquitetural em projetos de software é a manifestação contínua de anomalias de código. Quando estas anomalias não são detectadas e removidas com antecedência, a capacidade de evoluir e manter estes sistemas pode ser comprometida, e, eventualmente, uma reestruturação completa de suas arquiteturas é inevitável. Apesar da existência de diversas técnicas e ferramentas para detecção automática de anomalias de código, a identificação de anomalias que efetivamente causam problemas arquiteturais é ainda uma tarefa desafiadora e não trivial. Ademais, estudos realizados no contexto desta dissertação ostraram que desenvolvedores tendem a refatorar mais frequentemente anomalias que não causam problemas arquiteturais. Em especial, percebeu-se que desenvolvedores priorizam a refatoração de elementos de código que não afetam a arquitetura dos sistemas, como métodos privados ou módulos internos de um componente arquitetural. Neste contexto, o presente trabalho propõe uma abordagem para priorização de anomalias de código. Esta abordagem é composta por heurísticas que exploram diferentes fatores para identificar e ordenar as anomalias detectadas de acordo com suas relevâncias arquiteturais. Tais fatores compreendem desde a quantidade de mudanças realizadas no código ao longo da evolução dos sistemas, até os papéis arquiteturais por ele desempenhados. Foi ainda implementada uma ferramenta para aplicar tais heurísticas de priorização automaticamente em projetos Java. A abordagem proposta foi avaliada em 4 projetos de software de diferentes domínios. Tal avaliação revelou que mantenedores de software poderiam ser beneficiados pelas recomendações de priorização produzidas pela ferramenta, de modo a investir seus esforços de refatoração na solução de problemas arquiteturalmente relevantes.
id PUC_RIO-1_4f92395ee044e801f9c28fec6a9b2938
oai_identifier_str oai:MAXWELL.puc-rio.br:23962
network_acronym_str PUC_RIO-1
network_name_str Repositório Institucional da PUC-RIO (Projeto Maxwell)
repository_id_str 534
spelling [en] PRIORITIZATION OF CODE ANOMALIES BASED ON ARCHITECTURE SENSITIVENESS [pt] PRIORIZAÇÃO DE ANOMALIAS DE CÓDIGO SENSÍVEL A ARQUITETURA [pt] DEGRADACAO ARQUITETURAL[pt] REFATORACAO[pt] ANOMALIA DE CODIGO[en] CODE SMELL[en] REFACTORING[pt] Um dos principais sintomas de declínio da qualidade arquitetural em projetos de software é a manifestação contínua de anomalias de código. Quando estas anomalias não são detectadas e removidas com antecedência, a capacidade de evoluir e manter estes sistemas pode ser comprometida, e, eventualmente, uma reestruturação completa de suas arquiteturas é inevitável. Apesar da existência de diversas técnicas e ferramentas para detecção automática de anomalias de código, a identificação de anomalias que efetivamente causam problemas arquiteturais é ainda uma tarefa desafiadora e não trivial. Ademais, estudos realizados no contexto desta dissertação ostraram que desenvolvedores tendem a refatorar mais frequentemente anomalias que não causam problemas arquiteturais. Em especial, percebeu-se que desenvolvedores priorizam a refatoração de elementos de código que não afetam a arquitetura dos sistemas, como métodos privados ou módulos internos de um componente arquitetural. Neste contexto, o presente trabalho propõe uma abordagem para priorização de anomalias de código. Esta abordagem é composta por heurísticas que exploram diferentes fatores para identificar e ordenar as anomalias detectadas de acordo com suas relevâncias arquiteturais. Tais fatores compreendem desde a quantidade de mudanças realizadas no código ao longo da evolução dos sistemas, até os papéis arquiteturais por ele desempenhados. Foi ainda implementada uma ferramenta para aplicar tais heurísticas de priorização automaticamente em projetos Java. A abordagem proposta foi avaliada em 4 projetos de software de diferentes domínios. Tal avaliação revelou que mantenedores de software poderiam ser beneficiados pelas recomendações de priorização produzidas pela ferramenta, de modo a investir seus esforços de refatoração na solução de problemas arquiteturalmente relevantes.[en] The progressive manifestation of code anomalies in a software system is a key symptom of its architecture quality decline. When those anomalies are not detected and removed early, the maintainability of software projects can be compromised irreversibly, and, eventually, a complete redesign is inevitable. Despite the existence of many techniques and tools for code anomaly detection, identifying anomalies that are more likely to cause architecture problems remains a challenging task. In fact, studies performed in the context of this dissertation show that even when there is tool upport for detecting code anomalies, developers seem to invest more time refactoring those that are not related to architectural problems. Moreover, we also found that developers frequently prioritize refactoring of code elements that do not contribute to a better adherence to the intended software architecture. In this context, this dissertation proposes a prioritization approach for identifying which anomalies in a system implementation are more harmful to the architecture. The proposed approach is composed of heuristic strategies that exploit several software project factors to identify and rank code anomalies by their architecture relevance. These factors range from the change characteristics to the potential architecture roles of software modules. Furthermore, we implemented tool support for applying our prioritization approach in Java projects. We also evaluated the prioritization approach on 4 software projects from different application domains. Our evaluation revealed that software maintainers could benefit from the recommended rankings for identifying which code anomalies are harming architecture the most, helping them investing their refactoring efforts into solving the architecturally relevant problems.MAXWELLALESSANDRO FABRICIO GARCIAALESSANDRO FABRICIO GARCIAALESSANDRO FABRICIO GARCIAROBERTA LOPES ARCOVERDE2015-01-30info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/doctoralThesishttps://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=23962&idi=1https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=23962&idi=2http://doi.org/10.17771/PUCRio.acad.23962engreponame: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-08-30T00:00:00Zoai:MAXWELL.puc-rio.br:23962Repositório InstitucionalPRIhttps://www.maxwell.vrac.puc-rio.br/ibict.phpopendoar:5342019-08-30T00: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 [en] PRIORITIZATION OF CODE ANOMALIES BASED ON ARCHITECTURE SENSITIVENESS
[pt] PRIORIZAÇÃO DE ANOMALIAS DE CÓDIGO SENSÍVEL A ARQUITETURA
title [en] PRIORITIZATION OF CODE ANOMALIES BASED ON ARCHITECTURE SENSITIVENESS
spellingShingle [en] PRIORITIZATION OF CODE ANOMALIES BASED ON ARCHITECTURE SENSITIVENESS
ROBERTA LOPES ARCOVERDE
[pt] DEGRADACAO ARQUITETURAL
[pt] REFATORACAO
[pt] ANOMALIA DE CODIGO
[en] CODE SMELL
[en] REFACTORING
title_short [en] PRIORITIZATION OF CODE ANOMALIES BASED ON ARCHITECTURE SENSITIVENESS
title_full [en] PRIORITIZATION OF CODE ANOMALIES BASED ON ARCHITECTURE SENSITIVENESS
title_fullStr [en] PRIORITIZATION OF CODE ANOMALIES BASED ON ARCHITECTURE SENSITIVENESS
title_full_unstemmed [en] PRIORITIZATION OF CODE ANOMALIES BASED ON ARCHITECTURE SENSITIVENESS
title_sort [en] PRIORITIZATION OF CODE ANOMALIES BASED ON ARCHITECTURE SENSITIVENESS
author ROBERTA LOPES ARCOVERDE
author_facet ROBERTA LOPES ARCOVERDE
author_role author
dc.contributor.none.fl_str_mv ALESSANDRO FABRICIO GARCIA
ALESSANDRO FABRICIO GARCIA
ALESSANDRO FABRICIO GARCIA
dc.contributor.author.fl_str_mv ROBERTA LOPES ARCOVERDE
dc.subject.por.fl_str_mv [pt] DEGRADACAO ARQUITETURAL
[pt] REFATORACAO
[pt] ANOMALIA DE CODIGO
[en] CODE SMELL
[en] REFACTORING
topic [pt] DEGRADACAO ARQUITETURAL
[pt] REFATORACAO
[pt] ANOMALIA DE CODIGO
[en] CODE SMELL
[en] REFACTORING
description [pt] Um dos principais sintomas de declínio da qualidade arquitetural em projetos de software é a manifestação contínua de anomalias de código. Quando estas anomalias não são detectadas e removidas com antecedência, a capacidade de evoluir e manter estes sistemas pode ser comprometida, e, eventualmente, uma reestruturação completa de suas arquiteturas é inevitável. Apesar da existência de diversas técnicas e ferramentas para detecção automática de anomalias de código, a identificação de anomalias que efetivamente causam problemas arquiteturais é ainda uma tarefa desafiadora e não trivial. Ademais, estudos realizados no contexto desta dissertação ostraram que desenvolvedores tendem a refatorar mais frequentemente anomalias que não causam problemas arquiteturais. Em especial, percebeu-se que desenvolvedores priorizam a refatoração de elementos de código que não afetam a arquitetura dos sistemas, como métodos privados ou módulos internos de um componente arquitetural. Neste contexto, o presente trabalho propõe uma abordagem para priorização de anomalias de código. Esta abordagem é composta por heurísticas que exploram diferentes fatores para identificar e ordenar as anomalias detectadas de acordo com suas relevâncias arquiteturais. Tais fatores compreendem desde a quantidade de mudanças realizadas no código ao longo da evolução dos sistemas, até os papéis arquiteturais por ele desempenhados. Foi ainda implementada uma ferramenta para aplicar tais heurísticas de priorização automaticamente em projetos Java. A abordagem proposta foi avaliada em 4 projetos de software de diferentes domínios. Tal avaliação revelou que mantenedores de software poderiam ser beneficiados pelas recomendações de priorização produzidas pela ferramenta, de modo a investir seus esforços de refatoração na solução de problemas arquiteturalmente relevantes.
publishDate 2015
dc.date.none.fl_str_mv 2015-01-30
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://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=23962&idi=1
https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=23962&idi=2
http://doi.org/10.17771/PUCRio.acad.23962
url https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=23962&idi=1
https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=23962&idi=2
http://doi.org/10.17771/PUCRio.acad.23962
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_ 1849967259995340800