IDENTIFYING DESIGN PROBLEMS WITH A VISUALIZATION APPROACH OF SMELL AGGLOMERATIONS

PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO DE JANEIRO === COORDENAÇÃO DE APERFEIÇOAMENTO DO PESSOAL DE ENSINO SUPERIOR === PROGRAMA DE EXCELENCIA ACADEMICA === Problemas de design decorrem de violações de princípios de design em um sistema de software. Tais problemas podem prejudicar a manutenção de si...

Full description

Bibliographic Details
Main Author: OLOUYEMI ILAHKO ANNE BENEDICTE AGBACHI
Other Authors: ALESSANDRO FABRICIO GARCIA
Language:English
Published: PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO DE JANEIRO 2018
Online Access:http://www.maxwell.vrac.puc-rio.br/Busca_etds.php?strSecao=resultado&nrSeq=35626@1
http://www.maxwell.vrac.puc-rio.br/Busca_etds.php?strSecao=resultado&nrSeq=35626@2
id ndltd-IBICT-oai-MAXWELL.puc-rio.br-35626
record_format oai_dc
collection NDLTD
language English
sources NDLTD
description PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO DE JANEIRO === COORDENAÇÃO DE APERFEIÇOAMENTO DO PESSOAL DE ENSINO SUPERIOR === PROGRAMA DE EXCELENCIA ACADEMICA === Problemas de design decorrem de violações de princípios de design em um sistema de software. Tais problemas podem prejudicar a manutenção de sistemas e, logo, devem ser identificados e eliminados sempre que possível. Porém, identificar problemas de design não é trivial. Isso pois a documentação de design desses sistemas é em geral obsoleta ou inexistente. Assim, o desenvolvedor de um sistema tende a analisar o código-fonte em busca de problemas de design. Estudos sugerem anomalias de código-fonte como indicadores úteis desses problemas. Porém, outros estudos recentes mostram que uma única anomalia não é indicador suficiente. De fato, em torno de 80 por cento dos problemas de design estão associadas com múltiplas anomalias. Estas inter-relacionam-se na forma de aglomerações de anomalias. Embora as aglomerações de anomalias possam ajudar o desenvolvedor a identificar problemas de design, certas aglomerações contêm muitas anomalias. Isso então dificulta o raciocínio sobre a existência de um problema de design. Além disso, mesmo as propostas mais recentes de abordagens para a visualização de aglomerações de anomalias provêm suporte bastante limitado à identificação de problemas de design. Essa limitação é evidente quando um problema de design afeta múltiplos elementos na implementação de um sistema. Esta dissertação objetiva tratar essa limitação ao propor uma abordagem inovadora para a visualização de aglomerações de anomalias. Tal abordagem baseia-se em evidências coletadas a partir de vários experimentos propostos e conduzidos por nós. Contamos com a participação de desenvolvedores da academia e da indústria em cada experimento. Nossos resultados de estudo sugerem que vários desenvolvedores podem utilizar nossa abordagem de visualização para identificar de forma precisa problemas de design, especialmente aqueles que afetam múltiplos elementos de programa. Nossos resultados também apontam melhorias necessárias à abordagem com base na percepção dos desenvolvedores. === Design problems are characterized by violations of design principles affecting a software system. Because they often hinder the software maintenance, developers should identify and eliminate design problems whenever possible. Nevertheless, identifying design problems is far from trivial. Due to outdated and scarce design documentation, developers not rarely have to analyze the source code for identifying these problems. Past studies suggest that code smells are useful hints of design problems. However, recent studies show that a single code smell might not suffice to reveal a design problem. That is, around 80 percent of design problems are realized by multiple code smells, which interrelate in the so-called smell agglomerations. Thus, developers can explore each smell agglomeration to identify a design problem in the source code. However, certain smell agglomerations are formed by several code smells, which makes it hard reasoning about the existence of a design problem. Visualization approaches have been proposed to represent smell agglomerations and guide developers in identifying design problems. However, those approaches provide a very limited support to the identification of specific design problems, especially the ones affecting multiple design elements. This dissertation aims to address this limitation by proposing a novel approach for the visualization of smell agglomerations. We rely on evidence collected from multiple empirical studies to design our approach. We evaluate our approach with developers from both academy and industry. Our results suggest that various developers could use our visualization approach to accurately identify design problems, in particular those affecting multiple program elements. Our results also point out to different ways for improving our visualization approach based on the developers perceptions.
author2 ALESSANDRO FABRICIO GARCIA
author_facet ALESSANDRO FABRICIO GARCIA
OLOUYEMI ILAHKO ANNE BENEDICTE AGBACHI
author OLOUYEMI ILAHKO ANNE BENEDICTE AGBACHI
spellingShingle OLOUYEMI ILAHKO ANNE BENEDICTE AGBACHI
IDENTIFYING DESIGN PROBLEMS WITH A VISUALIZATION APPROACH OF SMELL AGGLOMERATIONS
author_sort OLOUYEMI ILAHKO ANNE BENEDICTE AGBACHI
title IDENTIFYING DESIGN PROBLEMS WITH A VISUALIZATION APPROACH OF SMELL AGGLOMERATIONS
title_short IDENTIFYING DESIGN PROBLEMS WITH A VISUALIZATION APPROACH OF SMELL AGGLOMERATIONS
title_full IDENTIFYING DESIGN PROBLEMS WITH A VISUALIZATION APPROACH OF SMELL AGGLOMERATIONS
title_fullStr IDENTIFYING DESIGN PROBLEMS WITH A VISUALIZATION APPROACH OF SMELL AGGLOMERATIONS
title_full_unstemmed IDENTIFYING DESIGN PROBLEMS WITH A VISUALIZATION APPROACH OF SMELL AGGLOMERATIONS
title_sort identifying design problems with a visualization approach of smell agglomerations
publisher PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO DE JANEIRO
publishDate 2018
url http://www.maxwell.vrac.puc-rio.br/Busca_etds.php?strSecao=resultado&nrSeq=35626@1
http://www.maxwell.vrac.puc-rio.br/Busca_etds.php?strSecao=resultado&nrSeq=35626@2
work_keys_str_mv AT olouyemiilahkoannebenedicteagbachi identifyingdesignproblemswithavisualizationapproachofsmellagglomerations
AT olouyemiilahkoannebenedicteagbachi identificandoproblemasdedesignatravesdeumaabordagemdevisualizacaoparaaglomeracoesdeanomaliasdecodigo
_version_ 1718989583553658880
spelling ndltd-IBICT-oai-MAXWELL.puc-rio.br-356262019-03-01T15:44:42Z IDENTIFYING DESIGN PROBLEMS WITH A VISUALIZATION APPROACH OF SMELL AGGLOMERATIONS IDENTIFICANDO PROBLEMAS DE DESIGN ATRAVÉS DE UMA ABORDAGEM DE VISUALIZAÇÃO PARA AGLOMERAÇÕES DE ANOMALIAS DE CÓDIGO OLOUYEMI ILAHKO ANNE BENEDICTE AGBACHI ALESSANDRO FABRICIO GARCIA ALESSANDRO FABRICIO GARCIA SIMONE DINIZ JUNQUEIRA BARBOSA ALESSANDRO FABRICIO GARCIA ALESSANDRO FABRICIO GARCIA MARCOS KALINOWSKI MARCOS KALINOWSKI PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO DE JANEIRO COORDENAÇÃO DE APERFEIÇOAMENTO DO PESSOAL DE ENSINO SUPERIOR PROGRAMA DE EXCELENCIA ACADEMICA Problemas de design decorrem de violações de princípios de design em um sistema de software. Tais problemas podem prejudicar a manutenção de sistemas e, logo, devem ser identificados e eliminados sempre que possível. Porém, identificar problemas de design não é trivial. Isso pois a documentação de design desses sistemas é em geral obsoleta ou inexistente. Assim, o desenvolvedor de um sistema tende a analisar o código-fonte em busca de problemas de design. Estudos sugerem anomalias de código-fonte como indicadores úteis desses problemas. Porém, outros estudos recentes mostram que uma única anomalia não é indicador suficiente. De fato, em torno de 80 por cento dos problemas de design estão associadas com múltiplas anomalias. Estas inter-relacionam-se na forma de aglomerações de anomalias. Embora as aglomerações de anomalias possam ajudar o desenvolvedor a identificar problemas de design, certas aglomerações contêm muitas anomalias. Isso então dificulta o raciocínio sobre a existência de um problema de design. Além disso, mesmo as propostas mais recentes de abordagens para a visualização de aglomerações de anomalias provêm suporte bastante limitado à identificação de problemas de design. Essa limitação é evidente quando um problema de design afeta múltiplos elementos na implementação de um sistema. Esta dissertação objetiva tratar essa limitação ao propor uma abordagem inovadora para a visualização de aglomerações de anomalias. Tal abordagem baseia-se em evidências coletadas a partir de vários experimentos propostos e conduzidos por nós. Contamos com a participação de desenvolvedores da academia e da indústria em cada experimento. Nossos resultados de estudo sugerem que vários desenvolvedores podem utilizar nossa abordagem de visualização para identificar de forma precisa problemas de design, especialmente aqueles que afetam múltiplos elementos de programa. Nossos resultados também apontam melhorias necessárias à abordagem com base na percepção dos desenvolvedores. Design problems are characterized by violations of design principles affecting a software system. Because they often hinder the software maintenance, developers should identify and eliminate design problems whenever possible. Nevertheless, identifying design problems is far from trivial. Due to outdated and scarce design documentation, developers not rarely have to analyze the source code for identifying these problems. Past studies suggest that code smells are useful hints of design problems. However, recent studies show that a single code smell might not suffice to reveal a design problem. That is, around 80 percent of design problems are realized by multiple code smells, which interrelate in the so-called smell agglomerations. Thus, developers can explore each smell agglomeration to identify a design problem in the source code. However, certain smell agglomerations are formed by several code smells, which makes it hard reasoning about the existence of a design problem. Visualization approaches have been proposed to represent smell agglomerations and guide developers in identifying design problems. However, those approaches provide a very limited support to the identification of specific design problems, especially the ones affecting multiple design elements. This dissertation aims to address this limitation by proposing a novel approach for the visualization of smell agglomerations. We rely on evidence collected from multiple empirical studies to design our approach. We evaluate our approach with developers from both academy and industry. Our results suggest that various developers could use our visualization approach to accurately identify design problems, in particular those affecting multiple program elements. Our results also point out to different ways for improving our visualization approach based on the developers perceptions. 2018-04-13 info:eu-repo/semantics/publishedVersion info:eu-repo/semantics/masterThesis http://www.maxwell.vrac.puc-rio.br/Busca_etds.php?strSecao=resultado&nrSeq=35626@1 http://www.maxwell.vrac.puc-rio.br/Busca_etds.php?strSecao=resultado&nrSeq=35626@2 eng info:eu-repo/semantics/openAccess PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO DE JANEIRO PPG EM INFORMÁTICA PUC-Rio BR reponame:Repositório Institucional da PUC_RIO instname:Pontifícia Universidade Católica do Rio de Janeiro instacron:PUC_RIO