Um modelo para análise da árvore de sintaxe abstrata como apoio à extração de fatos e a compreensão de software
Autor(a) principal: | |
---|---|
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 |