|
Acadêmico(a): Romeu Gadotti |
Título: Protótipo de um Ambiente de Monitoramento e Apresentação de Programas Java Utilizando Reflexão Computacional |
|
Introdução: |
Segundo Coad (1991) o termo “orientado a objetos” pode não apresentar uma idéia clara da tecnologia de orientação a objetos, porque o nome “objeto” tem sido usado de formas diferentes. Na modelagem de informações, significa uma representação de alguma coisa real e um número de ocorrências desta coisa. Nas linguagens de programação baseadas em objetos, significa uma ocorrência em tempo de execução de algum processamento e valores, definidos por uma descrição estática chamada “classe”. Em 1993, Coad dirige-se à orientação a objetos como a revolução da programação. No mesmo ano, Winblad (1993), declara que se as técnicas de orientação a objeto são praticadas corretamente, a arquitetura de uma aplicação segue a estrutura do problema muito mais de perto. Isto faz com que o desenvolvimento, o uso e a manutenção de uma aplicação tornem-se fáceis e rápidas. Senra (2001) afirma que a orientação a objetos (OO), um dos paradigmas ainda em ascensão na engenharia de software, já oferece ferramental para a luta contra a complexidade, coerente com a diretriz fundamental da Engenharia de Software: a busca de baixo acoplamento e alta coesão. Contudo, o paradigma de OO não representa uma solução completa e definitiva para todos os problemas envolvidos na produção de software. Conforme Araújo (2000), as linguagens orientadas a objetos, como o Java, são aquelas que proporcionam mecanismos que ajudam a implementar o modelo orientado a objetos. Esses mecanismos são: polimorfismo, encapsulamento e a herança. Segundo Winblad (1993), existem alguns problemas de entendimento do paradigma de orientação a objetos, o mais comum é a não distinção entre classes e objetos. Classes são gabaritos estáticos que existem somente no corpo de um programa-fonte. Objetos são entidades dinâmicas que aparecem como áreas de memória durante a execução de um programa. Estes problemas de entendimento podem ser parcialmente sanados com a utilização de um ambiente que apresente informações sobre a estrutura das classes de um aplicativo antes do mesmo ser executado, e após sua execução apresente os objetos instanciados e seu comportamento. O protótipo proposto tem como objetivo principal a utilização da tecnologia de reflexão computacional para possibilitar o monitoramento estrutural e comportamental de qualquer programa escrito na linguagem de programação Java. Com a possibilidade do monitoramento do programa Java, torna-se possível o processo automático de representação gráfica de seu comportamento durante a execução e, conseqüentemente, pode-se atingir objetivos mais específicos, como por exemplo, a apresentação e manipulação dos atributos de uma classe ou instância e a apresentação das mensagens passadas entre os objetos do programa. O foco em Java deve-se ao fato de sua freqüente utilização no ensino da tecnologia de orientação a objetos. Por tratar-se de uma linguagem fortemente orientada a objetos e de alta legibilidade, tem-se um aumento significativo na facilidade de entendimento do código-fonte. Entre outras vantagens, como por exemplo, a de ser uma ferramenta gratuita, a linguagem Java destaca-se ainda por oferecer suporte à tecnologia de reflexão computacional. A reflexão computacional, segundo a abordagem de metaobjetos, permite a separação entre a funcionalidade de uma aplicação (nível-base) e os aspectos de controle da mesma (metanível), ou seja, a reflexão computacional compreende a capacidade de um dado sistema computacional ter acesso a representação de seus próprios dados, e, sobretudo, de que quaisquer modificações realizadas sobre esta representação hão de refletir em seu estado e comportamento. Quando este conceito é mapeado para o domínio de linguagens de programação orientadas a objetos, o padrão de interação entre nível base e metanível é denominado de protocolo de metaobjetos (MOP). O ambiente proposto será desenvolvido seguindo uma abordagem orientada a objetos e utilizando conceitos e técnicas da tecnologia de reflexão computacional. A especificação do ambiente será elaborada utilizando-se da linguagem de modelagem Unified Modelling Language (UML) e sua implementação dar-se-á na linguagem de programação Java. |
|
|