Evaluation of code-based information to architectural module identification

Detalhes bibliográficos
Autor(a) principal: Zapalowski, Vanius
Data de Publicação: 2014
Tipo de documento: Dissertação
Idioma: eng
Título da fonte: Biblioteca Digital de Teses e Dissertações da UFRGS
Texto Completo: http://hdl.handle.net/10183/94691
Resumo: Arquitetura de software desempenha um importante papel no desenvolvimento de software, quando explicitamente documentada, ela melhora o entendimento sobre o sistema implementado e torna possível entender a forma com que requisitos não funcionais são tratados. Apesar da relevância da arquitetura de software, muitos sistemas não possuem uma arquitetura documentada, e nos casos em que a arquitetura existe, ela pode estar desatualizada por causa da evolução descontrolada do software. O processo de recuperação de arquitetura de um sistema depende principalmente do conhecimento que as pessoas envolvidas com o software tem. Isso acontece porque a recuperação de arquitetura é uma tarefa que demanda muita investigação manual do código fonte. Pesquisas sobre recuperação de arquitetura objetivam auxiliar esse processo. A maioria dos métodos de recuperação existentes são baseados em dependência entre elementos da arquitetura, padrões arquiteturais ou similaridade semântica do código fonte. Embora as abordagem atuais ajudem na identi cação de módulos arquiteturais, os resultados devem ser melhorados de forma signi cativa para serem considerados con áveis. Então, nesta dissertação, objetivamos melhorar o suporte a recuperação de arquitetura explorando diferentes fontes de informação e técnicas de aprendizado de máquina. Nosso trabalho consiste de uma análise, considerando cinco estudo de casos, da utilidade de usar um conjunto de características de código (features, no contexto de aprendizado de máquina) para agrupar elementos em módulos da arquitetura. Atualmente não são conhecidas as características que afetam a identificação de papéis na arquitetura de software. Por isso, nós avaliamos a relação entre diferentes conjuntos de características e a acurácia obtida por um algoritmo não supervisionado na identificação de módulos da arquitetura. Consequentemente, nós entendemos quais dessas características revelam informação sobre a organização de papéis do código fonte. Nossa abordagem usando características de elementos de software atingiu uma acurácia média significativa. Indicando a relevância das informações selecionadas para recuperar a arquitetura. Além disso, nós desenvolvemos uma ferramenta para auxílio ao processo de recuperação de arquitetura de software. Nossa ferramenta tem como principais funções a avaliação da recuperação de arquitetura e apresentação de diferentes visualizações arquiteturais. Para isso, apresentamos comparações entre a arquitetura concreta e a arquitetura sugerida.
id URGS_0035b0f80a0d1ad6049bc1cc19209bf2
oai_identifier_str oai:www.lume.ufrgs.br:10183/94691
network_acronym_str URGS
network_name_str Biblioteca Digital de Teses e Dissertações da UFRGS
repository_id_str 1853
spelling Zapalowski, VaniusNunes, Daltro JoseNunes, Ingrid Oliveira de2014-04-24T01:52:40Z2014http://hdl.handle.net/10183/94691000916446Arquitetura de software desempenha um importante papel no desenvolvimento de software, quando explicitamente documentada, ela melhora o entendimento sobre o sistema implementado e torna possível entender a forma com que requisitos não funcionais são tratados. Apesar da relevância da arquitetura de software, muitos sistemas não possuem uma arquitetura documentada, e nos casos em que a arquitetura existe, ela pode estar desatualizada por causa da evolução descontrolada do software. O processo de recuperação de arquitetura de um sistema depende principalmente do conhecimento que as pessoas envolvidas com o software tem. Isso acontece porque a recuperação de arquitetura é uma tarefa que demanda muita investigação manual do código fonte. Pesquisas sobre recuperação de arquitetura objetivam auxiliar esse processo. A maioria dos métodos de recuperação existentes são baseados em dependência entre elementos da arquitetura, padrões arquiteturais ou similaridade semântica do código fonte. Embora as abordagem atuais ajudem na identi cação de módulos arquiteturais, os resultados devem ser melhorados de forma signi cativa para serem considerados con áveis. Então, nesta dissertação, objetivamos melhorar o suporte a recuperação de arquitetura explorando diferentes fontes de informação e técnicas de aprendizado de máquina. Nosso trabalho consiste de uma análise, considerando cinco estudo de casos, da utilidade de usar um conjunto de características de código (features, no contexto de aprendizado de máquina) para agrupar elementos em módulos da arquitetura. Atualmente não são conhecidas as características que afetam a identificação de papéis na arquitetura de software. Por isso, nós avaliamos a relação entre diferentes conjuntos de características e a acurácia obtida por um algoritmo não supervisionado na identificação de módulos da arquitetura. Consequentemente, nós entendemos quais dessas características revelam informação sobre a organização de papéis do código fonte. Nossa abordagem usando características de elementos de software atingiu uma acurácia média significativa. Indicando a relevância das informações selecionadas para recuperar a arquitetura. Além disso, nós desenvolvemos uma ferramenta para auxílio ao processo de recuperação de arquitetura de software. Nossa ferramenta tem como principais funções a avaliação da recuperação de arquitetura e apresentação de diferentes visualizações arquiteturais. Para isso, apresentamos comparações entre a arquitetura concreta e a arquitetura sugerida.Software architecture plays an important role in the software development, and when explicitly documented, it allows understanding an implemented system and reasoning about how non-functional requirements are addressed. In spite of that, many developed systems lack proper architecture documentation, and if it exists, it may be outdated due to software evolution. The process of recovering the architecture of a system depends mainly on developers' knowledge requiring a manual inspection of the source code. Research on architecture recovery provides support to this process. Most of the existing approaches are based on architectural elements dependency, architectural patterns or source code semantics, but even though they help identifying architectural modules, the obtained results must be signi cantly improved to be considered reliable. We thus aim to support this task by the exploitation of di erent code-oriented information and machine learning techniques. Our work consists of an analysis, involving ve case studies, of the usefulness of adopting a set of code-level characteristics (or features, in the machine learning terminology) to group elements into architectural modules. The characteristics mainly source code metrics that a ect the identi cation of what role software elements play in software architecture are unknown. Then, we evaluate the relationship between di erent sets of characteristics and the accuracy achieved by an unsupervised algorithm the Expectation Maximization in identifying architectural modules. Consequently, we are able to understand which of those characteristics reveal information about the source code structure. By the use of code-oriented information, our approach achieves a signi cant average accuracy, which indicates the importance of the selected information to recover software architecture. Additionally, we provide a tool to support research on architecture recovery providing software architecture measurements and visualizations. It presents comparisons between predicted architectures and concrete architectures.application/pdfengArquitetura : SoftwareModelos computacionaisSoftware architectureArchitecture reconstructionArchitecture recoverySoftware architecture viewReverse engineeringEvaluation of code-based information to architectural module identificationAvaliação da relevância de informações do código fonte para identificar módulos da arquitetura de software info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisUniversidade Federal do Rio Grande do SulInstituto de InformáticaPrograma de Pós-Graduação em ComputaçãoPorto Alegre, BR-RS2014mestradoinfo:eu-repo/semantics/openAccessreponame:Biblioteca Digital de Teses e Dissertações da UFRGSinstname:Universidade Federal do Rio Grande do Sul (UFRGS)instacron:UFRGSORIGINAL000916446.pdf000916446.pdfTexto completo (inglês)application/pdf1311380http://www.lume.ufrgs.br/bitstream/10183/94691/1/000916446.pdf334f405145e376186c63de74d49d4c0fMD51TEXT000916446.pdf.txt000916446.pdf.txtExtracted Texttext/plain192026http://www.lume.ufrgs.br/bitstream/10183/94691/2/000916446.pdf.txtd08fff57230006a53cc1f6866192c507MD52THUMBNAIL000916446.pdf.jpg000916446.pdf.jpgGenerated Thumbnailimage/jpeg1078http://www.lume.ufrgs.br/bitstream/10183/94691/3/000916446.pdf.jpgcc7f752b02c844fff14490a1b40f0128MD5310183/946912021-05-26 04:31:16.820361oai:www.lume.ufrgs.br:10183/94691Biblioteca Digital de Teses e Dissertaçõeshttps://lume.ufrgs.br/handle/10183/2PUBhttps://lume.ufrgs.br/oai/requestlume@ufrgs.br||lume@ufrgs.bropendoar:18532021-05-26T07:31:16Biblioteca Digital de Teses e Dissertações da UFRGS - Universidade Federal do Rio Grande do Sul (UFRGS)false
dc.title.pt_BR.fl_str_mv Evaluation of code-based information to architectural module identification
dc.title.alternative.pt.fl_str_mv Avaliação da relevância de informações do código fonte para identificar módulos da arquitetura de software
title Evaluation of code-based information to architectural module identification
spellingShingle Evaluation of code-based information to architectural module identification
Zapalowski, Vanius
Arquitetura : Software
Modelos computacionais
Software architecture
Architecture reconstruction
Architecture recovery
Software architecture view
Reverse engineering
title_short Evaluation of code-based information to architectural module identification
title_full Evaluation of code-based information to architectural module identification
title_fullStr Evaluation of code-based information to architectural module identification
title_full_unstemmed Evaluation of code-based information to architectural module identification
title_sort Evaluation of code-based information to architectural module identification
author Zapalowski, Vanius
author_facet Zapalowski, Vanius
author_role author
dc.contributor.author.fl_str_mv Zapalowski, Vanius
dc.contributor.advisor1.fl_str_mv Nunes, Daltro Jose
dc.contributor.advisor-co1.fl_str_mv Nunes, Ingrid Oliveira de
contributor_str_mv Nunes, Daltro Jose
Nunes, Ingrid Oliveira de
dc.subject.por.fl_str_mv Arquitetura : Software
Modelos computacionais
topic Arquitetura : Software
Modelos computacionais
Software architecture
Architecture reconstruction
Architecture recovery
Software architecture view
Reverse engineering
dc.subject.eng.fl_str_mv Software architecture
Architecture reconstruction
Architecture recovery
Software architecture view
Reverse engineering
description Arquitetura de software desempenha um importante papel no desenvolvimento de software, quando explicitamente documentada, ela melhora o entendimento sobre o sistema implementado e torna possível entender a forma com que requisitos não funcionais são tratados. Apesar da relevância da arquitetura de software, muitos sistemas não possuem uma arquitetura documentada, e nos casos em que a arquitetura existe, ela pode estar desatualizada por causa da evolução descontrolada do software. O processo de recuperação de arquitetura de um sistema depende principalmente do conhecimento que as pessoas envolvidas com o software tem. Isso acontece porque a recuperação de arquitetura é uma tarefa que demanda muita investigação manual do código fonte. Pesquisas sobre recuperação de arquitetura objetivam auxiliar esse processo. A maioria dos métodos de recuperação existentes são baseados em dependência entre elementos da arquitetura, padrões arquiteturais ou similaridade semântica do código fonte. Embora as abordagem atuais ajudem na identi cação de módulos arquiteturais, os resultados devem ser melhorados de forma signi cativa para serem considerados con áveis. Então, nesta dissertação, objetivamos melhorar o suporte a recuperação de arquitetura explorando diferentes fontes de informação e técnicas de aprendizado de máquina. Nosso trabalho consiste de uma análise, considerando cinco estudo de casos, da utilidade de usar um conjunto de características de código (features, no contexto de aprendizado de máquina) para agrupar elementos em módulos da arquitetura. Atualmente não são conhecidas as características que afetam a identificação de papéis na arquitetura de software. Por isso, nós avaliamos a relação entre diferentes conjuntos de características e a acurácia obtida por um algoritmo não supervisionado na identificação de módulos da arquitetura. Consequentemente, nós entendemos quais dessas características revelam informação sobre a organização de papéis do código fonte. Nossa abordagem usando características de elementos de software atingiu uma acurácia média significativa. Indicando a relevância das informações selecionadas para recuperar a arquitetura. Além disso, nós desenvolvemos uma ferramenta para auxílio ao processo de recuperação de arquitetura de software. Nossa ferramenta tem como principais funções a avaliação da recuperação de arquitetura e apresentação de diferentes visualizações arquiteturais. Para isso, apresentamos comparações entre a arquitetura concreta e a arquitetura sugerida.
publishDate 2014
dc.date.accessioned.fl_str_mv 2014-04-24T01:52:40Z
dc.date.issued.fl_str_mv 2014
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 http://hdl.handle.net/10183/94691
dc.identifier.nrb.pt_BR.fl_str_mv 000916446
url http://hdl.handle.net/10183/94691
identifier_str_mv 000916446
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.format.none.fl_str_mv application/pdf
dc.source.none.fl_str_mv reponame:Biblioteca Digital de Teses e Dissertações da UFRGS
instname:Universidade Federal do Rio Grande do Sul (UFRGS)
instacron:UFRGS
instname_str Universidade Federal do Rio Grande do Sul (UFRGS)
instacron_str UFRGS
institution UFRGS
reponame_str Biblioteca Digital de Teses e Dissertações da UFRGS
collection Biblioteca Digital de Teses e Dissertações da UFRGS
bitstream.url.fl_str_mv http://www.lume.ufrgs.br/bitstream/10183/94691/1/000916446.pdf
http://www.lume.ufrgs.br/bitstream/10183/94691/2/000916446.pdf.txt
http://www.lume.ufrgs.br/bitstream/10183/94691/3/000916446.pdf.jpg
bitstream.checksum.fl_str_mv 334f405145e376186c63de74d49d4c0f
d08fff57230006a53cc1f6866192c507
cc7f752b02c844fff14490a1b40f0128
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
repository.name.fl_str_mv Biblioteca Digital de Teses e Dissertações da UFRGS - Universidade Federal do Rio Grande do Sul (UFRGS)
repository.mail.fl_str_mv lume@ufrgs.br||lume@ufrgs.br
_version_ 1791083045135056896