ON THE PRIORITIZATION OF DESIGN-RELEVANT SMELLS

Detalhes bibliográficos
Autor(a) principal: ANDERSON JOSE SILVA DE OLIVEIRA
Data de Publicação: 2019
Tipo de documento: Dissertação
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=47306@1
https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=47306@2
Resumo: Sistemas de software provavelmente enfrentarão os chamados problemas de projeto. Um problema de projeto é o resultado de más decisões que podem afetar alguns atributos de qualidade importantes do sistema de software, como manutenção, desempenho e afins. Dada a típica falta de documentação do projeto, os desenvolvedores precisam confiar em sintomas que aparecem a nível de implementação para identificar e remover problemas de projeto. Um sintoma a nível de implementação geralmente se manifesta como uma anomalia de código, que se trata de uma microestrutura no programa possivelmente indicando a presença de (ou parte de) um problema de projeto. Grandes programas possuem centenas ou milhares de elementos (pacotes, classes, interfaces e afins) nos quais uma proporção significativa é afetada por anomalias. No entanto, muitas dessas anomalias não possuem relação com problemas de projeto, em outras palavras, elas não são anomalias relevantes ao problema de projeto. Desse modo, torna-se difícil e demorado priorizar os elementos anômalos do programa que são suspeitos de terem problema de projeto. Infelizmente, a literatura não fornece aos desenvolvedores heurísticas que auxiliem a priorização destes elementos de projeto suspeitos. Neste contexto, esta dissertação reporta dois estudos que objetivam auxiliar na elaboração de tais heurísticas, visando auxiliar o desenvolvedor nas decisões de priorização. O objetivo destas heurísticas é localizar uma pequena lista de elementos suspeitos de terem anomalias de código relevantes ao problema de projeto. Nosso primeiro estudo consiste em uma análise qualitativa para determinar os critérios utilizados pelos desenvolvedores para a priorização de elementos suspeitos de terem problemas de projeto. Com base nesses critérios, derivamos um conjunto preliminar de heurísticas de priorização. Nosso segundo estudo centrou-se na avaliação destas heurísticas. Como resultado, descobrimos que duas das nove heurísticas alcançaram os melhores resultados de precisão. As melhores heurísticas são baseadas em dois critérios: diversidade de anomalias e granularidade das anomalias. Nossas descobertas sugerem que fomos capazes de obter uma primeira abordagem promissora para apoiar os desenvolvedores na priorização de elementos com anomalias de código relevantes ao projeto de software.
id PUC_RIO-1_d8bdb2f65666654b510386efbe2c751b
oai_identifier_str oai:MAXWELL.puc-rio.br:47306
network_acronym_str PUC_RIO-1
network_name_str Repositório Institucional da PUC-RIO (Projeto Maxwell)
repository_id_str 534
spelling info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisON THE PRIORITIZATION OF DESIGN-RELEVANT SMELLS PRIORIZAÇÃO DE ANOMALIAS DE CÓDIGO RELEVANTES AO PROJETO DOS SISTEMAS DE SOFTWARE 2019-04-24ALESSANDRO FABRICIO GARCIA02059205948lattes.cnpq.br/0807511237795775ALESSANDRO FABRICIO GARCIA02059205948lattes.cnpq.br/0807511237795775SIMONE DINIZ JUNQUEIRA BARBOSAMARCOS KALINOWSKIALESSANDRO FABRICIO GARCIAMARCOS KALINOWSKIMARCOS KALINOWSKI09302540405lattes.cnpq.br/9671879447853112ANDERSON JOSE SILVA DE OLIVEIRAPONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO DE JANEIROPPG EM INFORMÁTICAPUC-RioBRSistemas de software provavelmente enfrentarão os chamados problemas de projeto. Um problema de projeto é o resultado de más decisões que podem afetar alguns atributos de qualidade importantes do sistema de software, como manutenção, desempenho e afins. Dada a típica falta de documentação do projeto, os desenvolvedores precisam confiar em sintomas que aparecem a nível de implementação para identificar e remover problemas de projeto. Um sintoma a nível de implementação geralmente se manifesta como uma anomalia de código, que se trata de uma microestrutura no programa possivelmente indicando a presença de (ou parte de) um problema de projeto. Grandes programas possuem centenas ou milhares de elementos (pacotes, classes, interfaces e afins) nos quais uma proporção significativa é afetada por anomalias. No entanto, muitas dessas anomalias não possuem relação com problemas de projeto, em outras palavras, elas não são anomalias relevantes ao problema de projeto. Desse modo, torna-se difícil e demorado priorizar os elementos anômalos do programa que são suspeitos de terem problema de projeto. Infelizmente, a literatura não fornece aos desenvolvedores heurísticas que auxiliem a priorização destes elementos de projeto suspeitos. Neste contexto, esta dissertação reporta dois estudos que objetivam auxiliar na elaboração de tais heurísticas, visando auxiliar o desenvolvedor nas decisões de priorização. O objetivo destas heurísticas é localizar uma pequena lista de elementos suspeitos de terem anomalias de código relevantes ao problema de projeto. Nosso primeiro estudo consiste em uma análise qualitativa para determinar os critérios utilizados pelos desenvolvedores para a priorização de elementos suspeitos de terem problemas de projeto. Com base nesses critérios, derivamos um conjunto preliminar de heurísticas de priorização. Nosso segundo estudo centrou-se na avaliação destas heurísticas. Como resultado, descobrimos que duas das nove heurísticas alcançaram os melhores resultados de precisão. As melhores heurísticas são baseadas em dois critérios: diversidade de anomalias e granularidade das anomalias. Nossas descobertas sugerem que fomos capazes de obter uma primeira abordagem promissora para apoiar os desenvolvedores na priorização de elementos com anomalias de código relevantes ao projeto de software.Software systems are likely to face what is called design problems. A design problem is the result of bad decisions that can aect some important quality attributes of the software system such as maintainability, performance and the like. Given the typical lack of design documentation, developers have to rely on implementation-level symptoms to identify and remove design problems. An implementation-level symptom usually manifests as a code smell, a micro-structure in the program possibly indicating the presence of (or part of) a design problem. Large programs have hundreds or thousands of program elements (packages, classes, interfaces, and the like) in which a significant proportion is aected by smells. However, many of these smells may bear no relationship with design problems, i.e. they are not design-relevant smells. Then, it becomes hard and time-consuming to prioritize smelly program elements being suspects of having a design problem. Unfortunately, the literature fails to provide developers with heuristics to support the prioritization of these suspicious program elements. In this context, this dissertation reports two studies aimed at assisting in the elaboration of such prioritization heuristics. The goal of these heuristics is to locate a short (high priority) list of smelly program elements, which are suspects of having design-relevant smells. Our first study consists of a qualitative analysis on recurring criteria used by developers, in practice, to prioritize elements suspicious of having design problems. Based on these criteria, we derived a preliminary suite of prioritization heuristics. Our second study focused on the evaluation of the proposed heuristics. As a result, we found that two out of nine heuristics reached the best results in precision. The best heuristics are based on two criteria: smell diversity and smell granularity. Our findings suggest that we were able to derive a first promising approach to support developers in prioritizing elements with design-relevant smells.PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO DE JANEIROCONSELHO NACIONAL DE DESENVOLVIMENTO CIENTÍFICO E TECNOLÓGICOhttps://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=47306@1https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=47306@2engreponame: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/openAccess2022-11-01T13:53:24Zoai:MAXWELL.puc-rio.br:47306Repositório InstitucionalPRIhttps://www.maxwell.vrac.puc-rio.br/ibict.phpopendoar:5342022-08-04T00:00Repositório Institucional da PUC-RIO (Projeto Maxwell) - Pontifícia Universidade Católica do Rio de Janeiro (PUC-RIO)false
dc.title.en.fl_str_mv ON THE PRIORITIZATION OF DESIGN-RELEVANT SMELLS
dc.title.alternative.pt.fl_str_mv PRIORIZAÇÃO DE ANOMALIAS DE CÓDIGO RELEVANTES AO PROJETO DOS SISTEMAS DE SOFTWARE
title ON THE PRIORITIZATION OF DESIGN-RELEVANT SMELLS
spellingShingle ON THE PRIORITIZATION OF DESIGN-RELEVANT SMELLS
ANDERSON JOSE SILVA DE OLIVEIRA
title_short ON THE PRIORITIZATION OF DESIGN-RELEVANT SMELLS
title_full ON THE PRIORITIZATION OF DESIGN-RELEVANT SMELLS
title_fullStr ON THE PRIORITIZATION OF DESIGN-RELEVANT SMELLS
title_full_unstemmed ON THE PRIORITIZATION OF DESIGN-RELEVANT SMELLS
title_sort ON THE PRIORITIZATION OF DESIGN-RELEVANT SMELLS
author ANDERSON JOSE SILVA DE OLIVEIRA
author_facet ANDERSON JOSE SILVA DE OLIVEIRA
author_role author
dc.contributor.advisor2ID.none.fl_str_mv 02059205948
dc.contributor.advisor1.fl_str_mv ALESSANDRO FABRICIO GARCIA
dc.contributor.advisor1ID.fl_str_mv 02059205948
dc.contributor.advisor1Lattes.fl_str_mv lattes.cnpq.br/0807511237795775
dc.contributor.advisor2.fl_str_mv ALESSANDRO FABRICIO GARCIA
dc.contributor.advisor2Lattes.fl_str_mv lattes.cnpq.br/0807511237795775
dc.contributor.referee1.fl_str_mv SIMONE DINIZ JUNQUEIRA BARBOSA
dc.contributor.referee2.fl_str_mv MARCOS KALINOWSKI
dc.contributor.referee3.fl_str_mv ALESSANDRO FABRICIO GARCIA
dc.contributor.referee4.fl_str_mv MARCOS KALINOWSKI
dc.contributor.referee5.fl_str_mv MARCOS KALINOWSKI
dc.contributor.authorID.fl_str_mv 09302540405
dc.contributor.authorLattes.fl_str_mv lattes.cnpq.br/9671879447853112
dc.contributor.author.fl_str_mv ANDERSON JOSE SILVA DE OLIVEIRA
contributor_str_mv ALESSANDRO FABRICIO GARCIA
ALESSANDRO FABRICIO GARCIA
SIMONE DINIZ JUNQUEIRA BARBOSA
MARCOS KALINOWSKI
ALESSANDRO FABRICIO GARCIA
MARCOS KALINOWSKI
MARCOS KALINOWSKI
description Sistemas de software provavelmente enfrentarão os chamados problemas de projeto. Um problema de projeto é o resultado de más decisões que podem afetar alguns atributos de qualidade importantes do sistema de software, como manutenção, desempenho e afins. Dada a típica falta de documentação do projeto, os desenvolvedores precisam confiar em sintomas que aparecem a nível de implementação para identificar e remover problemas de projeto. Um sintoma a nível de implementação geralmente se manifesta como uma anomalia de código, que se trata de uma microestrutura no programa possivelmente indicando a presença de (ou parte de) um problema de projeto. Grandes programas possuem centenas ou milhares de elementos (pacotes, classes, interfaces e afins) nos quais uma proporção significativa é afetada por anomalias. No entanto, muitas dessas anomalias não possuem relação com problemas de projeto, em outras palavras, elas não são anomalias relevantes ao problema de projeto. Desse modo, torna-se difícil e demorado priorizar os elementos anômalos do programa que são suspeitos de terem problema de projeto. Infelizmente, a literatura não fornece aos desenvolvedores heurísticas que auxiliem a priorização destes elementos de projeto suspeitos. Neste contexto, esta dissertação reporta dois estudos que objetivam auxiliar na elaboração de tais heurísticas, visando auxiliar o desenvolvedor nas decisões de priorização. O objetivo destas heurísticas é localizar uma pequena lista de elementos suspeitos de terem anomalias de código relevantes ao problema de projeto. Nosso primeiro estudo consiste em uma análise qualitativa para determinar os critérios utilizados pelos desenvolvedores para a priorização de elementos suspeitos de terem problemas de projeto. Com base nesses critérios, derivamos um conjunto preliminar de heurísticas de priorização. Nosso segundo estudo centrou-se na avaliação destas heurísticas. Como resultado, descobrimos que duas das nove heurísticas alcançaram os melhores resultados de precisão. As melhores heurísticas são baseadas em dois critérios: diversidade de anomalias e granularidade das anomalias. Nossas descobertas sugerem que fomos capazes de obter uma primeira abordagem promissora para apoiar os desenvolvedores na priorização de elementos com anomalias de código relevantes ao projeto de software.
publishDate 2019
dc.date.issued.fl_str_mv 2019-04-24
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 https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=47306@1
https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=47306@2
url https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=47306@1
https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=47306@2
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 PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO DE JANEIRO
dc.publisher.program.fl_str_mv PPG EM INFORMÁTICA
dc.publisher.initials.fl_str_mv PUC-Rio
dc.publisher.country.fl_str_mv BR
publisher.none.fl_str_mv PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO DE JANEIRO
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_ 1748324948653375488