Please use this identifier to cite or link to this item: http://dspace.unipampa.edu.br:8080/jspui/handle/riu/869
metadata.dc.type: Trabalho de Conclusão de Curso
Title: Um modelo para análise da árvore de sintaxe abstrata como apoio à extração de fatos e a compreensão de software
metadata.dc.creator: Uchôa, Renan Marcel
metadata.dc.contributor.advisor1: Silva, João Pablo Silva da
metadata.dc.description.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.
Abstract: 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.
Keywords: Software Engineering
Software development
Reverse Engineering Software
Publisher: Universidade Federal do Pampa
metadata.dc.rights: Attribution-NonCommercial-NoDerivs 3.0 Brazil
metadata.dc.rights.uri: http://creativecommons.org/licenses/by-nc-nd/3.0/br/
URI: http://hdl.handle.net/riu/869
Issue Date: 28-Mar-2014
Appears in Collections:Engenharia de Software



This item is licensed under a Creative Commons License Creative Commons