Sie sind auf Seite 1von 13

IFBA- Campus Santo Amaro

VISUALIZANDO ATRIBUTOS DE CDIGO FONTE ATRAVS DO PREFUSE


Jamile Ferreira Rocha jamisferreira@hotmail.com Instituto Federal de Educao, Cincia e Tecnologia (IFBA) Renato Lima Novais renatoln@yahoo.com.br Instituto Federal de Educao, Cincia e Tecnologia (IFBA)
Resumo: Manuteno de software uma atividade custosa, e que leva muito tempo. Ela depende de uma compreenso prvia do software. Ferramentas de visualizao de software so importantes para a compreenso de programas, facilitando assim a manuteno nos mesmos. Nesse trabalho foi desenvolvida uma ferramenta interativa de visualizao de cdigo fonte utilizando o kit de visualizao Prefuse. Atravs de um plugin da IDE Eclipse o usurio pode analisar o cdigo fonte de um projeto Java e visualizar importantes atributos de software como herana, acoplamento, estrutura, atravs de metforas visuais possibilitando facilidade e rapidez na compreenso do cdigofonte, conseqentemente diminuindo o tempo do processo de manuteno de software. Palavras-chave: Visualizao, Prefuse, cdigo-fonte, ferramentas.

1.

INTRODUO

Os sistemas de software (programa) tm se tornado cada vez maiores, mais complicados e complexos. A manuteno desses sistemas, em geral, envolve a colaborao de muitas pessoas, o que acaba tornando a tarefa mais difcil. Um dos pr-requisitos para realizar a manuteno compreender o software, para saber onde ser realizada a tarefa. O processo de compreenso no uma atividade trivial. Os investigadores mostraram que os mantenedores de software gastam cerca de 50% do seu tempo no processo de compreenso do cdigo (FJELDSTAD; HAMLEN, 1983, p.13-27). O procedimento de manuteno do software, alm de gastar muito tempo, consome muito dinheiro. Tem sido relatado que o custo de software dedicado manuteno do sistema e evoluo j representa mais de 90% dos custos totais do software (ERLIKH, 2000, p.1723). A manuteno de um software um processo difcil de ser executada, porque depende do cdigo fonte do software para anlise e para realizao das alteraes necessrias. Os desenvolvedores gastam muito tempo nessa etapa para compreender como o software est desenvolvido antes de comear a realizar as modificaes. Normalmente, o prprio programador que desenvolveu o software, aps algumas semanas sem contato com o cdigo fonte, sente dificuldade em saber qual a responsabilidade de cada entidade do software. As dificuldades aumentam quando a manuteno a ser realizada requer muito cuidado e ateno ou quando os programadores que iro realizar essa tarefa no so os mesmos que realizaram o desenvolvimento do software. Em ambos os casos, esses programadores vo ter que gastar um bom tempo para anlise do software antes de comear as modificaes. Esses desenvolvedores necessitam de suporte para tornar mais rpido e fcil o entendimento do software em que eles trabalham e pretendem fazer a manuteno. E uma boa assistncia pra esses desenvolvedores a visualizao de software. Que favorvel para a compreenso de programas. O objetivo da visualizao de software ajudar a compreender os sistemas de software e melhorar a produtividade do processo de desenvolvimento de software (DIEHL, 2007, p.14). Prontamente existem varias ferramentas de visualizao de software desenvolvidas ou IDEs (Integrated Development Environment), com o caso do Eclipse, que rene caractersticas e ferramentas de apoio as atividades de software, mas com algumas limitaes. Desta forma, necessria a utilizao de metforas visuais que permitam ao usurio um formato mais simples de explorao das informaes do software. No apenas explorao de dados parcial, mas dados que permitam ao usurio conhecer melhor seu programa. Existe um kit de

IFBA- Campus Santo Amaro

ferramenta de visualizao interativo chamado Prefuse que fornece livremente sua ferramenta para ser usada. Nesse contexto esse trabalho prope a utilizao das visualizaes dinmicas do Prefuse para serem exibidas informaes do cdigo-fonte de um programa como forma de facilitar a compreenso do mesmo. E mostrar na pratica o funcionamento do Prefuse, com a criao de um plugin para o Eclipse dando suporte a IDE, tendo como objetivo acoplar essas visualizaes no Eclipse possibilitando aos usurios vrias formas de exibies com diferentes tipos de dados sendo mostrados de maneira mais interativa. Alm dessa introduo, esse trabalho est organizado da seguinte forma: seo 2: contextualizao e abordagem proposta, fala da objetividade do trabalho trazendo o contexto e a motivao do trabalho. A terceira seo, questes importantes de implementao, discuti sobre os conceitos utilizados para o desenvolvimento do projeto. A seo 4, ferramenta desenvolvida, fala tanto da construo da ferramenta quanto do seu funcionamento. Seo 5, visualizando cdigo fonte atravs do Prefuse, nessa seo ser apresentada todas as visualizaes usadas explicando as informaes que elas apresentam e a importncias desse tipo de demonstrao de dados. Seo 6: concluso, a ultima seo ser trazida a retrospectiva de tudo o que foi mostrado, os objetivos alcanados e de proposta para o futuro. 2. CONTEXTUALIZAO E ABORDAGEM PROPOSTA

Os sistemas de software so concebidos, implementados, testados, depurados, analisados e mantidos por muitos desenvolvedores. Todas estas tarefas podem ser facilitadas por visualizao (DIEHL, 2007, 5). Possibilitando a rapidez e melhor compreenso na anlise do software. De acordo com Tilley e Smith, "a compreenso do programa o processo intuitivo de aquisio de conhecimento sobre um artefato de software atravs da anlise, abstrao e generalizao" (1996, p.1). O objetivo da visualizao de software ajudar a compreender os sistemas de software e melhorar a produtividade dos processos de desenvolvimento de software (DIEHL, 2007, p.5). Por essa caracterstica, a visualizao de software muito til e de extrema importncia. Essas qualidades to significantes aumentam a necessidade do desenvolvimento de ferramentas de visualizaes de softwares para tentar possibilitar aos usurios visualizar as informaes do software como mais rapidez e eficcia. Uma das grandes vantagens da visualizao de software a capacidade da mesma em mostra uma variedade de dados em simples visualizaes Uma grande quantidade de dados pode ser condensados em uma simples visualizao (NASCIMENTO; FERREIRA, 2005, p.2) . E outra dessas vantagens a relacionada com a viso humana. visualizao foca no principal sentido do ser humano, viso, sentido que possui maior capacidade de captao de informao por unidade de tempo (NASCIMENTO; FERREIRA, 2005 p.1). Permitindo que em uma visualizao sobre o programa, possa ser captada varias informaes a respeito do mesmo. 2.1. Ferramentas de visualizao de software desenvolvidas As ferramentas de visualizaes de software so utilizadas por vrios desenvolvedores pelas diversas vantagens em us-las facilitando assim os seus trabalhos. Stephan Diehl em seu artigo, Software Visualization, fala dessas ferramentas, as quais so: StackAnalyzer, X Tango e SeeSoft. A ferramenta StackAnalyzer produz efeitos visuais de grficos de controle de fluxo de aplicaes, e nestes grficos so mostrados os resultados de uma anlise esttica do programa. E a depender de cada instruo e de cada funo, a anlise calcula o uso da pilha tanto a pilha do usurio quando a pilha do sistema. Esta informao pode ser usada, por exemplo, para evitar erros de execuo devido ao estouro de pilha (DIEHL, 2007, p.7). A X Tango tem o propsito de mostrar animao de algoritmo do sistema dando suporte aos programadores no desenvolvimento, atravs dessas animaes de cores, em tempo real e em 1 e 2 dimenses (DIEHL, 2007, p.8).
2

IFBA- Campus Santo Amaro

SeeSoft uma ferramenta que est ligada diretamente a evoluo do Software. Permitindo aos gerentes de grandes projetos de software ter uma viso do estado de todo o sistema, e encontrar as tendncias na evoluo do sistema. Ela foi desenvolvida para visualizar as alteraes e indicadores relacionados grandes (vrios milhes de linhas de cdigo) evolues de sistemas complexos de software (DIEHL, 2007, p.9). 2.2. IDE Eclipse A subseo anterior falou sobre algumas ferramentas desenvolvidas. Essa seo apresentar alguns conceitos relacionados a IDE (Integrated Development Environment) ressaltando a IDE Eclipse que umas das principais atualmente.
Um IDE Integrated Development Environment (Ambiente de desenvolvimento integrado) - consiste em um software que contm um conjunto de funcionalidades embutidas, cuja finalidade prover um modo mais fcil e interativo de construir e manipular seus programas. Entre estas ferramentas geralmente figuram: Um editor de texto com facilidades especialmente desenhadas para a linguagem; Um compilador (e um interpretador, no caso de Java e outras linguagens interpretadas) ; Um editor grfico, com facilidades para criao e edio da interface grfica do programa a ser desenvolvido; Um debugger, uma ferramenta especialmente feita para se tirar os bugs do cdigo. Ela possibilita um monitoramento mais elegante do funcionamento do seu programa, facilitando a deteco e remoo dos erros. Perceba que no estamos falando em erros de sintaxe, mas erros na prpria lgica do programa, que fazem seu programa gerar resultados indesejados ou travar (apesar de ele compilar), e que geralmente so difceis de se encontrar simplesmente analisando o cdigo (CAMPOS, 2010).

O Eclipse acopla praticamente todas essas funes citadas anteriormente. Ele est voltado para desenvolvimento tanto acadmico quanto profissional (CAMPOS, 2010). Possui facilidades que vo desde a rpida visualizao de todos os arquivos contidos no projeto at ferramentas de gerenciamento de trabalho coletivo (CAMPOS, 2010). Ele tambm tem em sua formao um Class browser ou Package Explorer, que permite visualizar toda a estrutura de diretrios e arquivos contidos no projeto, Wizards, que so programas que auxiliam na construo rpida de aplicaes com caractersticas iniciais j conhecidas (CAMPOS, 2010). Alm de outras funcionalidades. 2.3. Limitaes das IDEs As ferramentas de visualizaes de softwares so de extremo valor, ainda mais quando elas j vm integradas nas prprias IDEs de desenvolvimento de aplicativo. Como o caso do Eclipse que tem vrios recursos para o desenvolvimento de programas como a funo o debugger possibilita identificar erros lgicos do programa. Essas funes integradas nas IDEs tm o intuito de permitir, que no mesmo local, em que seja desenvolvido ou mantido um programa, sirva tambm para analis-lo e mostrar informaes sobre ele. Mas nem sempre essas ferramentas visuais integradas esto habilitadas para apresentar informaes do cdigo-fonte dos programas analisados e um exemplo disso pode ser visto no prprio Eclipse com a view Project Explorer.

IFBA- Campus Santo Amaro

Figura 1: Project Explore. Fonte: Prpria (2010). Na figura1 exibido o Project Explorer ( normalmente usado para navegar por uma hierarquia de informaes). nele que so apresentadas a estrutura do projeto em questo. Ele uma view do Eclipse, onde pode, como mostra a figura1, ser localizado o projeto (TesteProjeto), a pasta desse projeto (src), o pacote (Dados) e a classe(Informao). Essa visualizao limitada no contexto de analise e compreenso de cdigo fonte, pois utilizada uma estrutura de diretrios em rvore para representar projeto, pacote, classe, mtodo e propriedade. Mas relacionamentos entre as classes, por exemplo, no so possveis de serem identificados nessa view. Umas das formas de criaes de ferramentas de visualizao de software dando suporte a essa IDE, focando principalmente em exibies de dados referentes ao cdigo-fonte, com o auxilio do Prefuse. Este toolkit se trata de um conjunto de ferramentas de software para a criao de visualizaes interativas. O Prefuse open source e pode ser baixado no seu site oficial. Ele j fornece as visualizaes prontas para amostra de informaes, basta fornece-lhe os dados para exibies das informaes, tento com objetividade tornar mais fcil a compreenso dos dados exibidos. E cada uma das visualizaes do Prefuse tm a necessidade de ter um arquivo XML (eXtensible Markup Language) especfico, para o armazena das informaes que sero exibidas. Neste trabalho, o Prefuse ser usado para amostra de informaes de cdigo fonte de um programa em Java, para torna a analise e compreenso do mesmo mais fcil e rpida proporcionando agilidade no desenvolvimento das atividades do software. O Prefuse escrito em Java, sendo facilmente integrado a aplicaes Java Swing ou mini-aplicativos web (PREFUSE, 2010, p.1). 3. QUESTES IMPORTANTES DE IMPLEMENTAO

Para o desenvolvimento do plugin foi necessrio a juno de vrios tipos de conceitos, que juntos possibilitaram a criao dessa ferramenta, e importante falar um pouco de cada um deles para o leitor ter uma noo de tudo o que foi utilizado na construo da ferramenta . Tais conceitos, esto sendo explicados nas subsees seguintes. 3.1. Java Development Tools (JDT) e Abstract Syntax Tree (AST) O Eclipse Java Development Tools (JDT) fornecem APIs para acessar e manipular cdigo fonte em Java. Ele permite acesso aos projetos para modificar, ler e criar novos projetos .JDT permite o acesso ao cdigo-fonte Java atravs da rvore de sintaxe abstrata (AST). (EclipseJDT, 2010).
4

IFBA- Campus Santo Amaro

A Abstract Syntax Tree (AST) a forma que o Eclipse olha para o seu cdigofonte: cada arquivo fonte Java totalmente representado como rvore de ns AST. Esses ns so todas as subclasses de ASTNode . Cada subclasse especializado para um elemento de Linguagem de Programao Java. Por exemplo, existem ns para declaraes de mtodo (MethodDeclaration), declarao de varivel (VariableDeclarationFragment), atribuies e assim por diante (AST, 2010).

Atravs do auxilio do JDT (Java Development Tools) e do AST (Abstract Syntax Tree) que podemos manipular as informaes do cdigo fonte de um programa em Java. 3.2. Plug-in Development Environment (PDE) O Plug-in Development Environment (PDE) fornece ferramentas para criar, desenvolver, testar, depurar, compilar e implantar plug-ins no Eclipse (PDE, 2010). PDE (Plug-in Development Environment) atravs de suas ferramentas possibilita a manipulao de plugins com mais facilidade. 3.2. View do Eclipse O Eclipse tem varias view como o Package Explorer, o editor de texto e o console e cada parte do Eclipse baseada em view. Foi necessria a criao de novas view para o Eclipse pra acopla as visualizaes do Prefuse, j que elas no fazem parte do Eclipse. Esses conceitos acima foram os principais utilizados no desenvolvimento da ferramenta. 4. FERRAMENTA DESENVOLVIDA 4.1. Processo de construo da ferramenta O Eclipse uma IDE desenvolvida em Java para construo de programas, que possui varias funes, que j foram desceritas na subseo IDE Eclipse, com intuito de prover um modo mais fcil e interativo de construir e manipular seus programas, mas essas funes no esto voltadas para anlise do cdigo-fonte. Por exemplo, o Eclipse no d possibilidade para o usurio visualizar informaes de acoplamento ou herana entre as classes do programa que so dados importantes e muito freqentes na linguagem Java. Tentando suprir essa limitao do Eclipse, na anlise do cdigo-fonte, foi desenvolvida uma ferramenta com a finalidade de mostrar informaes do cdigo-fonte de um programa em Java. Essa ferramenta ser adicionada ao Eclipse atravs de um plugin construdo por meio do prprio Eclipse Um dos fatores pelo grande sucesso do Eclipse a possibilidade de se construir plugins, aumentando o seu conjunto padro de funcionalidades (PLUGIN, 2010). As adies de plugins tornam o Eclipse cada vez melhor Atualmente, sempre estamos procura de bons plugins, que permitem o Eclipse realizar uma diversidade muito grande de tarefas, tornando-se um ambiente de desenvolvimento cada vez mais completo (PLUGIN). Na construo dessa ferramenta com j foi dito necessitou da utilizao de conceitos que j foram discutidos antes. Na parte da lgica da ferramenta foi usado o conceito AST pra auxiliar na captura das informaes. No o AST que vai pegar, por exemplo, o acoplamento das classes nem a relao de herana, mas ele que facilita a captura dessas informaes para o programador dessa ferramenta, que usa uma lgica de programao em conjunto com o AST para pegar esses dados. A criao do plugin indispensvel porque atravs dele manipulamos a parte lgica da ferramenta onde contm a coleta de dados, criao de XML, as chamadas das visualizaes do
5

IFBA- Campus Santo Amaro

Prefuse, etc. Bem como determinamos quais classes da lgica vo ser chamadas e tambm nessa parte que criamos as views para comportar as visualizaes do Prefuse. Quando o plugin for executado vo ser processados os dados e sero coletadas as informaes do programa, posteriormente essas informaes sero armazenadas em arquivos XML, tais arquivos que sero chamados pelas visualizaes do Prefuse para exibio das informaes. 4.2. Disposio Geral do Sistema Na subseo anterior foi explicada a criao do plugin nessa subseo vai falar sobre o funcionamento desse plugin. Esse trabalho est voltado para programas desenvolvido na linguajem de programao Java, especificamente para quem usa a IDE Eclipse, em que foi criado um plugin para essa IDE. Que capturar informaes do programa e exibir nas visualizaes do Prefuse os dados coletados. Os desenvolvedores necessitam desses tipos de ferramentas para ajud-los no processo de anlise de cdigo-fonte, tornando mais rpida abstrao das informaes e dando agilidade na manuteno dos projetos. Para Sarita Bassil e Rudolf Keller uma visualizao de software adequada pode significativamente reduzir o esforo despendido na compreenso do sistema e manuteno (2001).

Figura 2: Execuo do plugin . Fonte: Prpria (2010). Na figura2 apresentada a abordagem geral de funcionamento da ferramenta desenvolvida. O usurio seleciona a opo do plugin em cima do programa desejado, em seguida comea o processamento dos dados nesse processamento que acontecer o recolhimento das informaes do programa e em seguida criado os arquivos XML (eXtensible Markup Language) referentes a cada visualizao do Prefuse. Que j podem ser chamadas para exibies das informaes. 5. VISUALIZANDO CDIGO FONTE ATRAVS DO PREFUSE

IFBA- Campus Santo Amaro

O Prefuse fornece varias visualizaes, que so desenvolvidas em Java, que podem serem usadas para exibies de inmeros dados. Para esse trabalho especificamente as informaes escolhidos, foram as que so mais presentes na linguagem Java, como acoplamento e herana alm do fluxo de informao e a estrutura do programa. As visualizaes do Prefuse escolhidas para a exibies dos dados foram: RadialGraphView, TreeView e ScatterPlot, que sero abordadas nas subseo seguintes. 5.1. RADIALGRAPHVIEW RadialGraphView uma visualizao que foi usada pra mostrar questes de relaes (acoplamentos) entre as classes. O acoplamento o nvel de interligao entre duas classes, ou seja, o quanto uma classe conhece da outra (GUJ, 2010, p.1). quanto um elemento (classe, mtodo, funo, mdulo, componente) depende e conhece do outro. Elementos muito acoplados geralmente so muito dependentes, mudou um e com certeza vai ter que mudar o outro (GUJ, 2010, p.1), ou seja, se uma classe A depende de uma classe B, usando mtodos e propriedades de B, ento se B for alterada a classe A pode sofre consequncias muito graves ou no, dependendo do que mudou e do grau de relao entre as classes. Essa visualizao do Prefuse demonstra os relacionamentos de dependncias entre as classes de um programa, ou seja, quais classes esto ligadas entre se, atravs de instanciao de um objeto ou chamada de propriedades e mtodos estticos. Essa anlise do acoplamento mostrada pela RadialGraphView uma informao muito importante, por acoplamento ser um fator essencial nas linguagens orientas a objetos, como Java, pois os relacionamentos entre as classes do programa tm que existir, mas s vezes o acoplamento aparece com muita intensidade o que torna a reutilizao de cdigo difcil. Ento atravs da amostra desses dados pela visualizao RadialGraphView os usurios podero analisa se o seu programa est muito acoplado ou no, ou se determinado relacionamentos entre as classes do sistema realmente tem que existir.

Figura 3- Visualizao RadialGraphView: Relacionamentos entre classes. Fonte: Prpria (2010). A figura3 mostra um exemplo da utilizao da visualizao RadialGraphView na IDE Eclipse. Esse exemplo expe as relaes entres classes do programa Mobile Media. No exemplo d pra visualizar os nomes das classes e linhas retas, ligando esses nomes. Demonstrando assim as classes
7

IFBA- Campus Santo Amaro

que esto conectadas, ou seja, se uma determinada classe se relaciona com outra por meio de instanciao de objeto e utilizao de propriedades ou mtodos estticos. Com a RadialGraphView o usurio interagir na visualizao, pois ele pode arrasta os dados exibidos para lhe proporcionar uma melhor compreenso. 5.2. TREEVIEW TreeView: Essa visualizao foi usada pra mostra trs tipos de informaes do programa, as quais so: questo de herana, estrutura de um programa e o fluxo de informaes dos mtodo da classe. TreeView uma visualizao de exibio hierrquica. O que quer dizer que quando for clicado em um de seus componentes (mtodos, ou classes, ou pacotes) sero exibidas informaes de forma hierrquica sobre esse componente em particular. Muitas vezes, classes diferentes tm caractersticas comuns, ento, ao invs de criarmos uma nova classe com todas essas caractersticas usamos as caractersticas de um objeto ou classe j existente (HERANA, 2010), isso se chama herana. E uma das suas principais vantagens diminuir a quantidade de cdigo duplicado e isso acontece atravs de criao de subclasses, ou seja, haver compartilhamento de cdigo comum entre vrias classes. Isso tende a resultar em uma melhor organizao do cdigo e ter unidades menores e mais simples de compilao. Alm disso, a herana tambm pode fazer o cdigo de uma aplicao ser mais flexveis a mudanas, porque as classes que herdam de uma superclasse comum podem ser usados alternadamente se o tipo de retorno de um mtodo da superclasse.

Figura 4- Visualizao TreeView: Hierarquia de herana do programa. Fonte: Prpria (2010). Na figura4 exibido um exemplo da visualizao TreeView mostrando informaes de herana do programa. A exibio dessas informaes interessante, porque quem usar essa visualizao vai ter uma viso mais detalhada da estrutura hierrquica de herana do seu programa, pois vai ter uma viso dos relacionamentos entre as superclasses e as subclasses. Nesta figura4 mostrada acima todas as classes esto ligadas Object, o pai de todas as classes em Java, e cada uma dessas classes que estiverem subclasses vo expor um ramal com os nomes dessas subclasses, assim que forem clicadas nelas com o mouse.

IFBA- Campus Santo Amaro

Alm da herana, a Treeview exibe dados sobre a estrutura do programa como os pacotes e as classes. Essa visualizao exibiu informaes de como o programa est estruturado.

Figura 5- Visualizao TreeView : Estrutura do programa. Fonte: Prpria (2010). A Figura5 a que tambm utiliza a visualizao TreeView, encontrar-se mostrando dados sobre a estrutura de um programa como os pacotes, as classes desse pacote e os mtodos dessas classes, mostrando claramente como estar formada a estrutura do programa possibilitando aos usurios ver a armao de seu programa de forma sequencial. Essa ferramenta expe a exibio da organizao das informaes do programa. A visualizao TeeView foi utilizada tambm pra exibio do fluxo do mtodo. A anlise de fluxo de um programa uma tarefa complicada, ainda mais quando se tem grandes projetos, em que existem vrios relacionamentos entre classes. Por exemplo, imagine como seria analisar o fluxo de um mtodo a partir do cdigo-fonte. Teria que entrar no cdigo-fonte escolher mtodo pra anlise e comear a verificar. O programador pode se perder nessa anlise ou se atrapalhar podendo causar danos ao projeto. A TreeView ajuda nessa anlise exibindo o fluxo de chamadas do mtodo.

IFBA- Campus Santo Amaro

Figura 6- Visualizao TreeView: Fluxo do mtodo. Fonte: Prpria (2010). A figura6 mostra o fluxo dos mtodos de uma determinada classe. A TreeView mostra essas informaes de forma muito interativa possibilitando aos programadores a visualizao de dados preciosos, porque ver o fluxo muito importante e com essa visualizao essa tarefa complicada, que a anlise de fluxo, se torna mais fcil e interativa. 5.3. SCATTERPLOT ScatterPlot: Foi usada para mostrar tambm a relao de herana entre as classes de um programa e tambm a estrutura do programa. As informaes exibidas so as mesmas da TreeView. A ScatterPlot uma visualizao dividida em sees.

Figura 7- visualizao ScatterPlot: Hierarquia de herana do programa. Fonte: Prpria (2010). A figura7 mostra um exemplo da ScatterPlot que exibi, como na TreeView, os relacionamentos de herana entre as classe. No centro tem a classe object que todas as classes Java herdam, em volta de object tm as classes do programa e em volta das mesmas tm as suas subclasses e assim por diante. E essas informaes de cada classe filha so exibidas em determinadas sees, em que as classes pais esto organizadas.

10

IFBA- Campus Santo Amaro

Figura 8- visualizao ScatterPlot: Estrutura do programa. Fonte: Prpria (2010). A figura8 Exibida informaes da estrutura do programa. No centro tem o nome do programa que Sistema de Informtica em volta desse nome tem os pacotes desse programa, depois ao redor do mesmo tm as classes referentes a cada um desses pacotes e por fim tm os mtodos de cada uma dessas classe. Como na figura7 os dados da figura8 esto agrupados em sees. Atravs de uma estrutura de lgica de programao mais o Prefuse, foi construdo um suporte para o Eclipse para mostrar informaes do programa de forma mais interativa e focando exibies de dados do cdigo-fonte. No plugin as informaes mostradas foram sobre herana, estrutura de um programa e fluxo de informaes com Treeview, relacionamentos e acoplamento com RadialGraphView e tambm herana e estrutura de um programa com ScatterPlot. Essas visualizaes podem ser usadas para mostrar ouros tipos de dados da preferncia ou necessidade de quem us-las. Essas visualizaes do Prefuse so muito interessantes, elas so muito bem desenvolvidas e aparenta ter alta qualidade. Permitir aos seus usurios interao com as informaes exibidas, arrastando componentes que representa os dados, abrindo visualizaes de formato hierrquico clicando nos componentes e exibindo informaes especifica sobre esse componente. Essa abordagem, tanto por meio da escrita quanto por meio da ferramenta desenvolvida, traz as visualizaes do Prefuse como um elemento de auxilio s pessoas que esto nesse ambiente de software tanto, desenvolvendo, fazendo manuteno ou mesmo aprendendo a construir software.
11

IFBA- Campus Santo Amaro

6.

CONCLUSO

O objetivo dessa pesquisa alm de mostrar a importncia das ferramentas de visualizao de software, foi verificar as visualizaes do Prefuse para exibies de informaes sobre um determinado software, especificamente sobre seu cdigo-fonte. Descrevendo a importncia de cada dado apresentado. Alm de visar o apoio a IDE Eclipse, que d suporte as atividades do software com suas inmeras funes, mas nem sempre essas funes so suficiente para entender o cdigofonte. Ento foi necessria a criao de uma ferramenta de apoio a essa IDE, para captura de informaes do software e exibe-las nas visualizaes interativas do Prefuse. Para os objetivos serem alcanados, foi necessrio realizar vrios estudos tanto para fortalecer a pesquisa quanto para o desenvolvimento da ferramenta. Levando em conta a pesquisa, foi necessrio aprofundar os estudos em trabalhos j desenvolvidos na rea de visualizaes de software como, atributos sobre a importncia da visualizao, algumas atividades de software, etc. No contexto do desenvolvimento da ferramenta, foi necessrio pesquisar sobre: captura de informao do cdigo-fonte, criao de plugins, de arquivo XML, criao de view no Eclipse, aprender um pouco sobre a linguagem SWT (The Standard Widget Toolkit), etc. Como fortalecimento desse trabalho foi desenvolvido um plugin para o Eclipse incorporando as visualizaes do Prefuse. Quando o plugin executado, em um determinado programa so recolhidas informaes do mesmo e exibidas nas diversas visualizaes do Prefuse. Estas vises esto integradas no prprio Eclipse atravs de views. Por meio dessa ferramenta possvel analisar o programa por diversos aspectos, como: acoplamento entre classes, herana, fluxo de mtodo e estrutura do programa, um pouco parecido com o Project Explorer, porm mais interativo visualmente. Por fim a importncia desse trabalho tentar possibilitar aos diversos usurios (desenvolvedor ou aluno da rea de programao) dessa ferramenta a compreenso do cdigo-fonte de uma maneira mais fcil, rpida e gil das atividades referentes aos softwares. H expectativa na continuidade desse trabalho, podendo ser acrescentadas mais visualizaes do Prefuse apresentando novas informaes sobre o programa, alm das que foram trabalhadas. REFERNCIAS AST. Abstract Syntax Tree. Disponvel em: http://www.Eclipse.org/articles/article.php?file=Article-JavaCodeManipulation_AST/index.html acessado em 31/10/2010. BASSIL, Sarita; KELLER, Rudolf. Software visualization tools: Survey and analysis. Dpartement IRO Universit de Montral C.P. 6128, succursale Centre-ville Montral, Qubec H3C 3J7, Canad, 2001. CAMPOS, Sylvia. et al. Introduo ao Eclipse. Centro de Informtica. Universidade Federal de Pernambuco. Disponvel em: http://www.cin.ufpe.br/~phmb/ip/MaterialDeEnsino/IntroducaoAoEclipse/IntroducaoAoEclipse.ht m Acessado em: 26/11/2010. DIEHL, Stephan. Software Visualization. Visualizing the Structure, Behaviour, and Evolution of Software. 2007. EclipseJDT. Eclipse JDT - Abstract Syntax Tree (AST) and the Java Model http://www.vogella.de/articles/EclipseJDT/article.html acessado em: 10/11/2010
12

IFBA- Campus Santo Amaro

ERLIKH, Len. Leveraging legacy system dollars for e-business. IEEE IT Pro, pages 1723, May/June 2000. FJELDSTAD, R; HAMLEN, W. Application program maintenance-report to our respondents. Tutorial On Software Maitenance, pages 1327, 1983. GUJ. Acoplamento entre classes. Disponvel em: http://www.guj.com.br/posts/list/54654.java acessado em 04/11/2010. HERANA. Herana. Disponvel em: http://www.tiexpert.net/programacao/java/heranca.php acessado em 20/10/2010 JDT. Eclipse Java development tools (JDT). Disponvel em: http://www.Eclipse.org/jdt/ acessado em: 31/05/2010. NASCIMENTO, Hugo A. D.; FERREIRA, Cristiane B. R.; Visualizao de Informaes Uma Abordagem Prtica. In: XXV Congresso da Sociedade Brasileira da Computao, UNISINOS, So Leopoldo, Brasil, 2005. PDE. Plug-in Development Environment (PDE). Disponvel em http://www.Eclipse.org/pde/ acessado em 20/05/2010 PREFUSE. O kit de ferramentas http://prefuse.org/. Acessado em: 08/04/2010. de visualizao Prefuse. Disponvel em:

SCOTT R, Tilley; DENNIS B, Smith. Coming attractions in program understanding. In Alan W. Brown, editor, Component-Based Software Engineering: Selected Papers from the Software Engineering Institute. Wiley, New York, NY, 1996. SILVA, Ronan. et al. A manuteno de software nas empresas. 2010. PLUGIN. Plugins para o Eclipse. Disponvel http://www.guj.com.br/article.show.logic?id=41 acessado em 16/12/2010. em:

13

Das könnte Ihnen auch gefallen