Um modelo para análise da árvore de sintaxe abstrata como apoio à extração de fatos e a compreensão de software

Detalhes bibliográficos
Autor(a) principal: Uchôa, Renan Marcel
Data de Publicação: 2014
Tipo de documento: Trabalho de conclusão de curso
Idioma: por
Título da fonte: Repositório Institucional da UNIPAMPA
Texto Completo: http://dspace.unipampa.edu.br/jspui/handle/riu/869
Resumo: Dar manutenção a sistemas de softwares é uma tarefa bastante complexa, principalmente com o passar do tempo, em que equipes formadas por desenvolvedores de diferentes níveis de experiência contribuem para uma constante evolução do software. A medida em que novas funcionalidades são desenvolvidas, diversos defeitos surgem e são corrigidos. Porém nesse processo evolutivo, vários problemas podem ser gerados no projeto e no código-fonte, que dificultam a compreensão da arquitetura implementada. A Visualização de Software (VS) se apresenta como uma abordagem para a Compreensão de Software (CS), utilizando princípios de engenharia reversa para analisar artefatos que forneçam informações relevantes ao estudo da sua arquitetura. O objetivo da VS é representar o software através de elementos gráficos que estimulem o sentido visual e cognitivo dos desenvolvedores, proporcionando um melhor entendimento das características implícitas no código-fonte. Para isso são utilizadas diversas técnicas de extração de fatos através da análise da Árvore de Sintaxe Abstrata (ASA) do código. Entretanto existe um déficit muito grande de ferramentas de VS que proporcionem um processo de desenvolvimento de software mais dinâmico e interativo, sem abandonar a escalabilidade com relação às complexas análises combinadas e a extração de milhares de linhas de código. O grande problema é o alto custo envolvido no processamento dessas análises complexas, que dependendo da quantidade de código analisado, chegam a carregar gigabytes de informação em memória. Com base neste problema, propõe-se a construção de um modelo de extração de fatos chamado PF Factfinder, que realize a análise do código-fonte para armazenar os dados em um banco de dados relacional. O modelo aproveita princípios dos diversos modelos de extração consolidados na área, apontando o uso de Structured Query Language (SQL) como uma abordagem que viabilize todo tipo de consultas para a elaboração das análises de software. Separar as responsabilidades entre os processamentos de extração, análise dos dados e VS pode potencializar os processamentos realizados sobre o código-fonte, aumentando e viabilizando com isso a amplitude das análises combinadas de software com um mínimo impacto na escalabilidade da ferramenta.
id UNIP_b1dffbaa4079104ffaf74d4be30d8368
oai_identifier_str oai:repositorio.unipampa.edu.br:riu/869
network_acronym_str UNIP
network_name_str Repositório Institucional da UNIPAMPA
repository_id_str
spelling Silva, João Pablo Silva daUchôa, Renan Marcel2017-02-07T12:31:12Z2017-02-07T12:31:12Z2014-03-28http://dspace.unipampa.edu.br/jspui/handle/riu/869Dar manutenção a sistemas de softwares é uma tarefa bastante complexa, principalmente com o passar do tempo, em que equipes formadas por desenvolvedores de diferentes níveis de experiência contribuem para uma constante evolução do software. A medida em que novas funcionalidades são desenvolvidas, diversos defeitos surgem e são corrigidos. Porém nesse processo evolutivo, vários problemas podem ser gerados no projeto e no código-fonte, que dificultam a compreensão da arquitetura implementada. A Visualização de Software (VS) se apresenta como uma abordagem para a Compreensão de Software (CS), utilizando princípios de engenharia reversa para analisar artefatos que forneçam informações relevantes ao estudo da sua arquitetura. O objetivo da VS é representar o software através de elementos gráficos que estimulem o sentido visual e cognitivo dos desenvolvedores, proporcionando um melhor entendimento das características implícitas no código-fonte. Para isso são utilizadas diversas técnicas de extração de fatos através da análise da Árvore de Sintaxe Abstrata (ASA) do código. Entretanto existe um déficit muito grande de ferramentas de VS que proporcionem um processo de desenvolvimento de software mais dinâmico e interativo, sem abandonar a escalabilidade com relação às complexas análises combinadas e a extração de milhares de linhas de código. O grande problema é o alto custo envolvido no processamento dessas análises complexas, que dependendo da quantidade de código analisado, chegam a carregar gigabytes de informação em memória. Com base neste problema, propõe-se a construção de um modelo de extração de fatos chamado PF Factfinder, que realize a análise do código-fonte para armazenar os dados em um banco de dados relacional. O modelo aproveita princípios dos diversos modelos de extração consolidados na área, apontando o uso de Structured Query Language (SQL) como uma abordagem que viabilize todo tipo de consultas para a elaboração das análises de software. Separar as responsabilidades entre os processamentos de extração, análise dos dados e VS pode potencializar os processamentos realizados sobre o código-fonte, aumentando e viabilizando com isso a amplitude das análises combinadas de software com um mínimo impacto na escalabilidade da ferramenta.Maintain software systems is a complex task, particularly over time, in which teams of developers of varying levels of experience contribute to a constant evolution of software. When new features are developed, many issues appear and are fixed. But this evolutionary process various problems can be generated in the design and source code, which hinder the understanding of the implemented architecture. The Software Visualization (SV) is presented as an approach to Software Comprehension (SC), using reverse engineering principles to analyze artifacts that provide relevant information to the study of architecture. The goal of SV is to represent software through graphics that stimulate the visual and cognitive sense of the developers, providing a better understanding of the characteristics implicit in the source code. For this, several techniques are used to extract facts by analyzing the code Abstract Syntax Tree (AST). However, there is a very large deficit of SV tools that provide a more dynamic and interactive development process, without abandoning the scalability of the complex combined analysis and extraction of thousands of lines of code. The biggest problem is the high cost involved in the process of such complex analysis, which depending on the amount of analyzing code can load even gigabytes of information in memory. Based on this problem, we propose the construction of a fact extraction model called PF FactFinder, which performs the analysis of the source code to store data in a relational database. The model should reuse principles of many consolidated extraction models in the area, indicating the use of Structured Query Language (SQL) as an approach that allows all kinds of queries to the development of software analysis. Separating responsibilities among processes of extraction, data analysis and SV can enhance the processing performed on the source code, enabling and enhancing it with the amplitude of the combined analysis software with minimal impact on the scalability of the tool.porUniversidade Federal do PampaAttribution-NonCommercial-NoDerivs 3.0 Brazilhttp://creativecommons.org/licenses/by-nc-nd/3.0/br/info:eu-repo/semantics/openAccessEngenharia de softwareDesenvolvimento de softwareEngenharia reversa de softwareCNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAOSoftware EngineeringSoftware developmentReverse Engineering SoftwareUm modelo para análise da árvore de sintaxe abstrata como apoio à extração de fatos e a compreensão de softwareinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/bachelorThesisapplication/pdfreponame:Repositório Institucional da UNIPAMPAinstname:Universidade Federal do Pampa (UNIPAMPA)instacron:UNIPAMPAORIGINALUm modelo para análise da árvore de sintaxe abstrata como apoio à extração de fatos e a compreensão de software.pdfUm modelo para análise da árvore de sintaxe abstrata como apoio à extração de fatos e a compreensão de software.pdfapplication/pdf5722107https://repositorio.unipampa.edu.br/jspui/bitstream/riu/869/1/Um%20modelo%20para%20an%c3%a1lise%20da%20%c3%a1rvore%20de%20sintaxe%20abstrata%20como%20apoio%20%c3%a0%20extra%c3%a7%c3%a3o%20de%20fatos%20e%20a%20compreens%c3%a3o%20de%20software.pdfa565e49407d005708f9b5201c2fa9395MD51CC-LICENSElicense_rdflicense_rdfapplication/rdf+xml; charset=utf-81232https://repositorio.unipampa.edu.br/jspui/bitstream/riu/869/2/license_rdf66e71c371cc565284e70f40736c94386MD52LICENSElicense.txtlicense.txttext/plain; charset=utf-81748https://repositorio.unipampa.edu.br/jspui/bitstream/riu/869/3/license.txt8a4605be74aa9ea9d79846c1fba20a33MD53TEXTUm modelo para análise da árvore de sintaxe abstrata como apoio à extração de fatos e a compreensão de software.pdf.txtUm modelo para análise da árvore de sintaxe abstrata como apoio à extração de fatos e a compreensão de software.pdf.txtExtracted texttext/plain169197https://repositorio.unipampa.edu.br/jspui/bitstream/riu/869/4/Um%20modelo%20para%20an%c3%a1lise%20da%20%c3%a1rvore%20de%20sintaxe%20abstrata%20como%20apoio%20%c3%a0%20extra%c3%a7%c3%a3o%20de%20fatos%20e%20a%20compreens%c3%a3o%20de%20software.pdf.txt6b50cec36d0fea678ba885b1469918a7MD54riu/8692021-04-09 09:56:24.02oai:repositorio.unipampa.edu.br:riu/869Tk9URTogUExBQ0UgWU9VUiBPV04gTElDRU5TRSBIRVJFClRoaXMgc2FtcGxlIGxpY2Vuc2UgaXMgcHJvdmlkZWQgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgb25seS4KCk5PTi1FWENMVVNJVkUgRElTVFJJQlVUSU9OIExJQ0VOU0UKCkJ5IHNpZ25pbmcgYW5kIHN1Ym1pdHRpbmcgdGhpcyBsaWNlbnNlLCB5b3UgKHRoZSBhdXRob3Iocykgb3IgY29weXJpZ2h0Cm93bmVyKSBncmFudHMgdG8gRFNwYWNlIFVuaXZlcnNpdHkgKERTVSkgdGhlIG5vbi1leGNsdXNpdmUgcmlnaHQgdG8gcmVwcm9kdWNlLAp0cmFuc2xhdGUgKGFzIGRlZmluZWQgYmVsb3cpLCBhbmQvb3IgZGlzdHJpYnV0ZSB5b3VyIHN1Ym1pc3Npb24gKGluY2x1ZGluZwp0aGUgYWJzdHJhY3QpIHdvcmxkd2lkZSBpbiBwcmludCBhbmQgZWxlY3Ryb25pYyBmb3JtYXQgYW5kIGluIGFueSBtZWRpdW0sCmluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gYXVkaW8gb3IgdmlkZW8uCgpZb3UgYWdyZWUgdGhhdCBEU1UgbWF5LCB3aXRob3V0IGNoYW5naW5nIHRoZSBjb250ZW50LCB0cmFuc2xhdGUgdGhlCnN1Ym1pc3Npb24gdG8gYW55IG1lZGl1bSBvciBmb3JtYXQgZm9yIHRoZSBwdXJwb3NlIG9mIHByZXNlcnZhdGlvbi4KCllvdSBhbHNvIGFncmVlIHRoYXQgRFNVIG1heSBrZWVwIG1vcmUgdGhhbiBvbmUgY29weSBvZiB0aGlzIHN1Ym1pc3Npb24gZm9yCnB1cnBvc2VzIG9mIHNlY3VyaXR5LCBiYWNrLXVwIGFuZCBwcmVzZXJ2YXRpb24uCgpZb3UgcmVwcmVzZW50IHRoYXQgdGhlIHN1Ym1pc3Npb24gaXMgeW91ciBvcmlnaW5hbCB3b3JrLCBhbmQgdGhhdCB5b3UgaGF2ZQp0aGUgcmlnaHQgdG8gZ3JhbnQgdGhlIHJpZ2h0cyBjb250YWluZWQgaW4gdGhpcyBsaWNlbnNlLiBZb3UgYWxzbyByZXByZXNlbnQKdGhhdCB5b3VyIHN1Ym1pc3Npb24gZG9lcyBub3QsIHRvIHRoZSBiZXN0IG9mIHlvdXIga25vd2xlZGdlLCBpbmZyaW5nZSB1cG9uCmFueW9uZSdzIGNvcHlyaWdodC4KCklmIHRoZSBzdWJtaXNzaW9uIGNvbnRhaW5zIG1hdGVyaWFsIGZvciB3aGljaCB5b3UgZG8gbm90IGhvbGQgY29weXJpZ2h0LAp5b3UgcmVwcmVzZW50IHRoYXQgeW91IGhhdmUgb2J0YWluZWQgdGhlIHVucmVzdHJpY3RlZCBwZXJtaXNzaW9uIG9mIHRoZQpjb3B5cmlnaHQgb3duZXIgdG8gZ3JhbnQgRFNVIHRoZSByaWdodHMgcmVxdWlyZWQgYnkgdGhpcyBsaWNlbnNlLCBhbmQgdGhhdApzdWNoIHRoaXJkLXBhcnR5IG93bmVkIG1hdGVyaWFsIGlzIGNsZWFybHkgaWRlbnRpZmllZCBhbmQgYWNrbm93bGVkZ2VkCndpdGhpbiB0aGUgdGV4dCBvciBjb250ZW50IG9mIHRoZSBzdWJtaXNzaW9uLgoKSUYgVEhFIFNVQk1JU1NJT04gSVMgQkFTRUQgVVBPTiBXT1JLIFRIQVQgSEFTIEJFRU4gU1BPTlNPUkVEIE9SIFNVUFBPUlRFRApCWSBBTiBBR0VOQ1kgT1IgT1JHQU5JWkFUSU9OIE9USEVSIFRIQU4gRFNVLCBZT1UgUkVQUkVTRU5UIFRIQVQgWU9VIEhBVkUKRlVMRklMTEVEIEFOWSBSSUdIVCBPRiBSRVZJRVcgT1IgT1RIRVIgT0JMSUdBVElPTlMgUkVRVUlSRUQgQlkgU1VDSApDT05UUkFDVCBPUiBBR1JFRU1FTlQuCgpEU1Ugd2lsbCBjbGVhcmx5IGlkZW50aWZ5IHlvdXIgbmFtZShzKSBhcyB0aGUgYXV0aG9yKHMpIG9yIG93bmVyKHMpIG9mIHRoZQpzdWJtaXNzaW9uLCBhbmQgd2lsbCBub3QgbWFrZSBhbnkgYWx0ZXJhdGlvbiwgb3RoZXIgdGhhbiBhcyBhbGxvd2VkIGJ5IHRoaXMKbGljZW5zZSwgdG8geW91ciBzdWJtaXNzaW9uLgo=Repositório InstitucionalPUBhttp://dspace.unipampa.edu.br:8080/oai/requestsisbi@unipampa.edu.bropendoar:2021-04-09T12:56:24Repositório Institucional da UNIPAMPA - Universidade Federal do Pampa (UNIPAMPA)false
dc.title.pt_BR.fl_str_mv Um modelo para análise da árvore de sintaxe abstrata como apoio à extração de fatos e a compreensão de software
title Um modelo para análise da árvore de sintaxe abstrata como apoio à extração de fatos e a compreensão de software
spellingShingle Um modelo para análise da árvore de sintaxe abstrata como apoio à extração de fatos e a compreensão de software
Uchôa, Renan Marcel
Software Engineering
Software development
Reverse Engineering Software
Engenharia de software
Desenvolvimento de software
Engenharia reversa de software
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
title_short Um modelo para análise da árvore de sintaxe abstrata como apoio à extração de fatos e a compreensão de software
title_full Um modelo para análise da árvore de sintaxe abstrata como apoio à extração de fatos e a compreensão de software
title_fullStr Um modelo para análise da árvore de sintaxe abstrata como apoio à extração de fatos e a compreensão de software
title_full_unstemmed Um modelo para análise da árvore de sintaxe abstrata como apoio à extração de fatos e a compreensão de software
title_sort Um modelo para análise da árvore de sintaxe abstrata como apoio à extração de fatos e a compreensão de software
author Uchôa, Renan Marcel
author_facet Uchôa, Renan Marcel
author_role author
dc.contributor.advisor1.fl_str_mv Silva, João Pablo Silva da
dc.contributor.author.fl_str_mv Uchôa, Renan Marcel
contributor_str_mv Silva, João Pablo Silva da
dc.subject.eng.fl_str_mv Software Engineering
Software development
Reverse Engineering Software
topic Software Engineering
Software development
Reverse Engineering Software
Engenharia de software
Desenvolvimento de software
Engenharia reversa de software
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
dc.subject.keyword.pt_BR.fl_str_mv Engenharia de software
Desenvolvimento de software
Engenharia reversa de software
dc.subject.vcps.pt_BR.fl_str_mv CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
description Dar manutenção a sistemas de softwares é uma tarefa bastante complexa, principalmente com o passar do tempo, em que equipes formadas por desenvolvedores de diferentes níveis de experiência contribuem para uma constante evolução do software. A medida em que novas funcionalidades são desenvolvidas, diversos defeitos surgem e são corrigidos. Porém nesse processo evolutivo, vários problemas podem ser gerados no projeto e no código-fonte, que dificultam a compreensão da arquitetura implementada. A Visualização de Software (VS) se apresenta como uma abordagem para a Compreensão de Software (CS), utilizando princípios de engenharia reversa para analisar artefatos que forneçam informações relevantes ao estudo da sua arquitetura. O objetivo da VS é representar o software através de elementos gráficos que estimulem o sentido visual e cognitivo dos desenvolvedores, proporcionando um melhor entendimento das características implícitas no código-fonte. Para isso são utilizadas diversas técnicas de extração de fatos através da análise da Árvore de Sintaxe Abstrata (ASA) do código. Entretanto existe um déficit muito grande de ferramentas de VS que proporcionem um processo de desenvolvimento de software mais dinâmico e interativo, sem abandonar a escalabilidade com relação às complexas análises combinadas e a extração de milhares de linhas de código. O grande problema é o alto custo envolvido no processamento dessas análises complexas, que dependendo da quantidade de código analisado, chegam a carregar gigabytes de informação em memória. Com base neste problema, propõe-se a construção de um modelo de extração de fatos chamado PF Factfinder, que realize a análise do código-fonte para armazenar os dados em um banco de dados relacional. O modelo aproveita princípios dos diversos modelos de extração consolidados na área, apontando o uso de Structured Query Language (SQL) como uma abordagem que viabilize todo tipo de consultas para a elaboração das análises de software. Separar as responsabilidades entre os processamentos de extração, análise dos dados e VS pode potencializar os processamentos realizados sobre o código-fonte, aumentando e viabilizando com isso a amplitude das análises combinadas de software com um mínimo impacto na escalabilidade da ferramenta.
publishDate 2014
dc.date.issued.fl_str_mv 2014-03-28
dc.date.accessioned.fl_str_mv 2017-02-07T12:31:12Z
dc.date.available.fl_str_mv 2017-02-07T12:31:12Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/bachelorThesis
format bachelorThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://dspace.unipampa.edu.br/jspui/handle/riu/869
url http://dspace.unipampa.edu.br/jspui/handle/riu/869
dc.language.iso.fl_str_mv por
language por
dc.rights.driver.fl_str_mv Attribution-NonCommercial-NoDerivs 3.0 Brazil
http://creativecommons.org/licenses/by-nc-nd/3.0/br/
info:eu-repo/semantics/openAccess
rights_invalid_str_mv Attribution-NonCommercial-NoDerivs 3.0 Brazil
http://creativecommons.org/licenses/by-nc-nd/3.0/br/
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.publisher.none.fl_str_mv Universidade Federal do Pampa
publisher.none.fl_str_mv Universidade Federal do Pampa
dc.source.none.fl_str_mv reponame:Repositório Institucional da UNIPAMPA
instname:Universidade Federal do Pampa (UNIPAMPA)
instacron:UNIPAMPA
instname_str Universidade Federal do Pampa (UNIPAMPA)
instacron_str UNIPAMPA
institution UNIPAMPA
reponame_str Repositório Institucional da UNIPAMPA
collection Repositório Institucional da UNIPAMPA
bitstream.url.fl_str_mv https://repositorio.unipampa.edu.br/jspui/bitstream/riu/869/1/Um%20modelo%20para%20an%c3%a1lise%20da%20%c3%a1rvore%20de%20sintaxe%20abstrata%20como%20apoio%20%c3%a0%20extra%c3%a7%c3%a3o%20de%20fatos%20e%20a%20compreens%c3%a3o%20de%20software.pdf
https://repositorio.unipampa.edu.br/jspui/bitstream/riu/869/2/license_rdf
https://repositorio.unipampa.edu.br/jspui/bitstream/riu/869/3/license.txt
https://repositorio.unipampa.edu.br/jspui/bitstream/riu/869/4/Um%20modelo%20para%20an%c3%a1lise%20da%20%c3%a1rvore%20de%20sintaxe%20abstrata%20como%20apoio%20%c3%a0%20extra%c3%a7%c3%a3o%20de%20fatos%20e%20a%20compreens%c3%a3o%20de%20software.pdf.txt
bitstream.checksum.fl_str_mv a565e49407d005708f9b5201c2fa9395
66e71c371cc565284e70f40736c94386
8a4605be74aa9ea9d79846c1fba20a33
6b50cec36d0fea678ba885b1469918a7
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
MD5
repository.name.fl_str_mv Repositório Institucional da UNIPAMPA - Universidade Federal do Pampa (UNIPAMPA)
repository.mail.fl_str_mv sisbi@unipampa.edu.br
_version_ 1801849073921163264