[en] PRIORITIZATION OF CODE ANOMALIES BASED ON ARCHITECTURE SENSITIVENESS
| Autor(a) principal: | |
|---|---|
| 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 |