quarta-feira, 9 de julho de 2008

"Fim" do trabalho, apresentação do TCC

Olá pessoal,

Hoje não estarei comentando sobre alguma tecnologia estudada ou alguma reflexão sobre o mundo de desenvolvimento JavaEE como custumo fazer aqui no blog. Estarei comentando então como foi a conclusão do meu TCC representada pela apresentação do mesmo junto a banca.

Banca foi formada pelos professores:
- Avaliador da proposta: Dr. Mauro Marcelo Mattos
- Segundo avaliador: Dr. Paulo Cesar Rodacki Gomes
- Orientador: M.Sc. Dalton Solano dos Reis

Apresentação teórica
Conforme as regras para apresentação de TCCs no Departamento de Sistemas e Computação da Furb, o tempo máximo para essa apresentação é de 30 minutos. Em muitos trabalhos, essa questão de tempo não custuma ser um problema, porém não foi o que ocorreu comigo. Antes de apresentar o trabalho para a banca (dia 08/07/2008 às 21h), realizei duas prévias, sendo que a primeira delas foi supervisionada pelo meu orientador Dalton e por amigos de turma que também apresentam seus trabalhos nesse semestre. Na primeira prévia minha apresentação teórica demorou 48 minutos, nesse momento eu começei a ficar realmente preocupado. Precisava reduzir 18 minutos, sendo que não fazia ideia de como fazer isso. Seguindo a orientação do prof. Dalton e dos amigos, em especial o Israel D. Medeiros e o Eduardo Coelho, foi possível criar uma forma de apresentar o trabalho para a banca em um tempo de 31 minutos. Nessa apresentação, além de fazer uma introdução do tema escolhido e esplanar de forma clara os objetivos do trabalho, foi apresentada de forma bastante sucinta os assuntos estudados na fundamentação teórica, que foram a àrea de Ambientes Virtuais Distribuídos, Sistemas Multiagentes e por fim à parte gráfica com a engine JMonkey Engine. O grande desafio da apresentação era de fato na parte da especificação da ferramenta. O projeto desenvolvido apresentou um número de 135 arquivos .java sendo classes, interfaces e anotações. Nem todas as classes foram incluídas nos diagramas da UML utilizados (classes e estados), mas mesmo assim a maior parte delas foi ilustrada. Resolvi então apresentá-las de acordo com a separação dos módulos que desenvolvi no software. Dessa forma consegui explicar as classes em nível de pacotes e suas respectivas funcionalidades, reduzindo o tempo gasto na apresentação de forma geral. No final foquei nos resultados obtidos, onde fiz uma discução das abordagens seguidas no trabalho. Nesse momento falei sobre o uso de Orientação a Objetos e integração de diversas tecnologias diretentes em aplicações gráficas, mostrando como isso refletiu na performance do simulador. Por último apresentei as conclusões onde enfatizei que o foco não era desenvolver um jogo (um produto) mas sim prover um ambiente mais atrativo para o estudo do paradigma de Programação Orientada a Agentes (POA).

Apresentação Prática
Começei a apresentação prática com a execução do simulador (aplicativos servidor e cliente). Utilizei dois computadores, um para cada cliente representando jogadores do tipo Avatar, que controlam os tanques de guerra atraves de teclado e mouse. Nesse momento consegui mostrar algumas caracteristicas do ambiente gráfico desenvolvido, porém obtive um crash na JVM ao carregar a batalha pela segunda vez. Esse erro ocorreu durante todo o desenvolvimento e eu já estava preparado para vê-lo também na apresentação, tanto que gravei um video para mostrar caso o erro insistisse em ocorrer. O crash ocorre devido ao uso dos modelos de tanques de guerra escolhidos. São modelos extremamente pesados, sendo que não foram criados para serem usados em ambientes gráficos de tempo-real. A solução pra esse problema é desenvolver modelos espefícos para o cenário em questão, porém isso requer muita habilidade em ferramentas de modelagem 3D, que não era o foco inicial do trabalho.
Apresentei também a execução de uma batalha onde dois tanques eram controlados por agentes da ferramenta Jason, os tanques possuiam um código simples, porém foi possível mostrar o quão abstrato um código AgentSpeak(L) pode ser em relação às abordagens tradicionais.

Considerações da Banca
Ao final da apresentação, os membros da banca inicialmente fizeram bastante elogios, tanto da parte escrita (monografia) quando no desenvolvimento e o tema escolhido. Também apresentaram várias contribuições e alguns ajustes a serem feitos, onde todos foram aceitos pelo meu orientador e por mim.

Tenho a certeza de que esse trabalho contribuiu muito para o meu desenvolvimento (tanto técnico quanto pessoal). É claro que dá um alívio concluí-lo, mas com certeza vou sentir falta dessa rotina de prazos, desenvolvimento e etc. Também sei que esse trabalho não está de fato encerrado, tenho muita vontade de continuar desenvolvendo ele, em conjunto com o professor Dalton e outros que possam vir a se interessar. Sei isso, pois essa área pesquisada despertou em mim muito interesse já que tive que me esforçar muito para compreendê-la.

Para mais informações do que foi desenvolvido, o site do projeto é: http://germanofronza.googlepages.com/tankcodersproject

Slides da apresentação: http://www.inf.furb.br/~gfronza/tankcoders/Apresentacao.pdf

Muito obrigado pela atenção.

3 comentários:

Jomi disse...

Germano, Parabens pelo excelente TCC e sucesso na continuacao desse trabalho.

Jomi

Anônimo disse...

Que bom que tudo deu certo, depois das nossas prévias de 50 minutos (praticamente) conseguimos enxugar bastante a apresentação e mesmo assim mantendo a qualidade. Legal tbm que foi uma seguida da outra, assim podendo comemorar com uma cervejada juntos com a galera que foi assistir hehehe
Abraços.

~Israel

Evandro disse...

Show de bola!

Parabéns, ficou muito bom.

Não que isso seja uma surpresa para mim! ;-)

[]s

Evandro Sestrem