Visualização 3D de Construção de Modelos e Programas JAVA em educação em Ciência da Computação



 
Introdução:
 
"Construção de modelos são uma nova área promissora de Eng. de Software, em que a base de conhecimentos de projetos especializados é capturada e representada para uso por outros projetistas."  Uma Construção de modelos consiste de um típico caso de engenharia de software e de uma solução geral. Tais modelos são expressos em linguagem natural textual e alguns fazem uso de diagramas simples. 
Outra nova área de aprendizado em muitos cursos de Ciência da Computação é a programação em JAVA. Geralmente ministrada na forma de tutorias que levam ao aprendizado inicial da linguagem, através de suas bases. 
Ambas as atividades levantam a questão de exploração de formas alternativas de visualização para melhoria de aprendizado. Os avanços de hardware levaram à condição de criação de visualizações em muitas dimensões usando Realidade Virtual em contraste com as duas dimensões de diagramas esboçados no papel. 
Este artigo descreve uma forma moderna de software de visualização que tem como propósito a visualização de construção de modelos, mas que pode ser usado para pequenos programas em JAVA. Esta abordagem usa uma combinação de Realidade Virtual e Hipertexto - grifos nossos. O propósito não é a substituição de formas tradicionais de aprendizado, mas, sua complementação. 
Neste artigo, a forma em que as 4 dimensões são utilizadas - incluindo o tempo - é explicada e ilustrada, e alguns aspectos de fundamentos da implementação são apresentados. Este trabalho conclue com uma crítica do corrente estado do desenvolvimento e uma discussão para trabalhos futuros. 

 

 

A visualização e sua implementação
 
 

 Um objetivo para a visualização consistiu de explorar as possibilidades de visualizar partes de um modelo ou fragmentos de código em Realidade Virtual e complementar tal visualização com hipertexto. Este aspecto é pretendido para combinar os benefícios de ambas as técnicas. 
A abordagem principal é o uso de diagramas tradicionais e a união para explorar as visualização em diversas dimensões de tal forma que os diagramas são um caso especial da vista resultante. Esta metáfora usa de diagramas tradicionais familiares, que podem ser adicionados à melhoria e desenvolvimento do conhecimento. KOIKE foi o primeiro a introduzir este conceito. Entretanto, ele somente permitia combinar uma hieraquia de classes e uma lista de métodos  com uma vista 3D para melhoria de entendimento do polimorfismo em uma biblioteca de classes orientada a objetos.
Este conceito é usado como o ponto de partida para o trabalho corrente e posteriormente extendido por combinar diferentes diagramas tradicionais em uma forma diferente e incluindo o aspecto de tempo.

Usando as 4 dimensões:
 
A visualização em um ambiente virtual oferece 4 dimensões - 3 espaciais e uma temporal, em contraste com as duas dimensões de diagramas impressos. O diagrama mais importante foi identificado como classes, objetos e diagramas de interação. A figura 1 mostra as vistas combinadas em 3 tipos de diagramas, como representado neste trabalho.
  •  
    Desta forma, todos os 3 tipos de diagramas são visualizados como um único, com a manutenção de familiaridades dos diagramas bi-dimensionais. 
    A exploração de chamadas de métodos e ponteiros aproveita o fato que, em contraste com objetos tradicionais ou diagramas de interação, ambos objetos e suas classes são mostrados.
     

    Animando as interações:
     
     "RV oferece a possibilidade de tempo de visualização de uma forma natural, de tal forma que não há necessidade de mapeamentos artificiais para uma dimensão espacial, como no caso de diagramas tradicionais. "
    Métodos são visualizados como mostrado na figura 2, abaixo. Ela apresenta a transferência de controle como em uma sequência de animação para qual o objeto chamador o faz através da classe para o objeto chamado. O objeto chamado tem o controle enquanto o método chamado é visível e assim pode chamar outros métodos. O retorno da chamada de métodos é apresentado por reverter a animação, com o método símbolo retirando dentro do objeto chamador. 

    Complementando vistas animadas com descrições em hipertexto: 

     
    Descrições básicas de uma classe são incluidas, tais como clicar em uma classe na visualização apresenta a descrição correspondente num quadro de texto adicional.
    Adicionalmente, as interações são explanadas com uma descrição textual sincronizada. As interações são comentadas num código fonte para complementar a visualização, e também são mostradas na forma de hipertexto, sincronizado com a visualização. 
     

    De Construção de modelos para programas JAVA:
     
    Após o sucesso inicial com os programas de visualização de construção de modelos, começou-se a explorar como técnicas similares podem ser aplicadas para enriquecer programas JAVA. Primeiramente, o código fonte de Java pode ser modificado levemente para conformar-se com a sintaxe corrente da Linguagem do Software de Visualização - SVL. Definições  de classes básicas e declarações de métodos  são retidas, e comentários explicativos são inseridos. Uma pseudo função main é inserida, que ilustra um cenário típico de tempo de execução. 
     

    Implementando VISP - Visual Interactive Software and Patterns: 
     
    A implementação de uma solução geral necessita de separar a informação da visualização. A Linguagem do Software de Visualização foi desenvolvida para expressar a estrutura, dinâmica de interação e todos os textos descritivos  de um fragmento de forma ou software na forma legível para um computador. A solução implementada VISP automaticamente compila ou interpreta a informação necessária para uma definição SVL e gera a visualização.
    A implementação VISP usa Netscape como o ambiente de execução e um visualizador de hipertexto. O plug-in Cosmo Player serve como o browser de RV compatível com a apresentação de mundos em VRML 2.0. O básico do sistema e um Applet Java VISP que controla a visão de mundos virtuais via VRML External Authoring Interface - EAI. A interface habilita o programador a criar, mudar, excluir  dinamicamente todos os objetos VRML em tempo de execução. O APllet interpreta a especificação  SVL, cria uma visualização disto e controla a animação da cena e do hipertexto sincronizado, de descrição, dirigido pelos comandos dados pelo usuário através da interface do Applet. A figura abaixo mostra um exemplo: 
    O uso da ferramenta pode ser provido pelo acesso à página dos autores
    http://www.rhein-neckar.de/~kira
     

    Relação com outros trabalhos: 
    O fundamento a abordagem de visualização apresentada neste artigo é a visulização com animação 3D de uma peça de software orientado a objetos. Há outros trabalhos neste sentido, mas, relacionados com 2D - ref. [1]. 
    De Pauw et al. - ref [2] estão fazendo uma análise similar de informação de programas orientados a objetos. Entretanto, o foco principal de apresentação está relacionado com a compressão da informação. - Ainda em 2D.
     

    O futuro: 
     
    Resultados iniciais são encorajadores... para a visualização de pequenos programas Java, incorporação de mais informação na visualização, por exemplo, bem como, um similar código sincronizado para outras ferramentas de visualização. 
    A abordagem de VISP pode ser extendida para visualização detalhada de programas inteiros. Isto deve aumentar a complexidade e pode requerer controle manual. 
     

    Referências  do autor: 
     

    - Reiss, S.P. - An Engine for the 3D Visualisation of Program Information. Department of Computer Science - Brown University - ftp://ftp.cs.brown.edu/pub/techreports/95/cs95/cs95-14.ps.Z
    - De Pauw, W.; Kimelman, D. and Vlissides, J. - Modeling Object-Oriented Program Execution. In ECOOP´94 Conference Proceedings, Springer-Verlag, 163-182 -
    http://www.almaden.ibm.com/watson/pv/ecoop94.ps
     


    Referência: "3D Visualisation of Design Patterns and Java Programs in Computer Science Education " - Callaghan, Michael e Hirschmuller, Heiko,  ACM ITiCSE´98 - Dublin, Ireland, 1998