|
Acadêmico(a): Romeu Gadotti |
Título: Protótipo de um Ambiente de Monitoramento e Apresentação de Programas Java Utilizando Reflexão Computacional |
|
Conclusão: |
O estudo realizado por este trabalho de conclusão de curso sobre as tecnologias de reflexão computacional e orientação a objetos serviu para demonstrar a facilidade de manipulação e introspecção de classes Java com o auxílio da biblioteca Javassist. Apesar da tecnologia não ser muito recente, seus conceitos e funcionalidades estão vindo à tona apenas nos últimos anos. Diversos estudos, como de Shigero Chiba (2001), vêm sendo realizados com o intuito de prover características reflexivas às plataformas em geral, sem sobrecarregar as funcionalidades, eficiência e desempenho das mesmas. Todos os objetivos pré-estabelecidos foram alcançados. Neste trabalho utilizou-se das vantagens oferecidas pelas tecnologias de reflexão computacional e orientação a objetos, como a possibilidade de monitoramento dos objetos, para o desenvolvimento do protótipo apresentado no capítulo 5. Este não visou atender completamente os conceitos de reflexão computacional apresentados no capítulo 3, mas sim, demostrar de forma genérica como interceptar as mensagens dos objetos, possibilitando mudanças em seu comportamento. O aprofundamento dos conhecimentos da tecnologia de orientação mostrou-se essencial para a conclusão deste trabalho por tratar-se da apresentação de estruturas desta tecnologia e do monitoramento dos objetos dessas estruturas. Foram estudadas também algumas extensões da biblioteca de reflexão Java para utilização da técnica de reflexão comportamental, sendo a Javassist selecionada, por ser de fácil manipulação e por atender a todas as necessidades do protótipo. À medida que ambientes e linguagens de programação reflexivas tornarem-se mais difundidos, é bastante provável que a utilização de reflexão computacional será tão comum quanto a utilização de orientação a objetos. O desenvolvimento deste protótipo mostrou que as técnicas de reflexão podem ser facilmente utilizadas, mesmo no dia-a-dia do desenvolvimento de software para reduzir a complexidade e aumentar a facilidade de manutenção. Isto ocorre em um exemplo simples onde se dispõem de classes que necessitam ser instanciadas conforme determinado comportamento do programa. Desta forma é possível definir, em tempo de execução, qual classe será instanciada em um código mais simples e, desta forma, de fácil manutenção. Vale lembrar que a reflexão computacional fica em um nível diferente do nível operacional, mas ela não resolve os problemas do domínio da aplicação. |
|
|