Lab6 Luty Rodrigues

aluno: Luty Rodrigues Ribeiro
ano/sem: 2008/2o.
data do laboratório (num. da semana) : 22/12/2008 (12)

Introdução

Este laboratório é a parte complemetar ao lab5, que é o desenvolvimento de uma interface gráfica para o cliente do Bolão Virtual, cujo servidor foi implementado no lab5. Serei o componente da dupla (fazemos parte da dupla eu e Alexandre) a implementar este lab em java.

Desenvolvimento

A interface gráfica do cliente será desenvolvida utilizando SwingBean, em vez do Swing, que foi sugerido nas instruções. Isso apenas porque tivemos recentemente um projeto de outra disciplina que utilizou bastante este framework, trazendo uma certa familiarização com o mesmo.
Este lab6 foi feito de modo que a interface se conecta com o servidor, faz internamente as requisições que fizemos manulamente no lab5 e lê possíveis respostas do servidor, retornando o reultado dessa leitura de modo mais compreensível ao usuário (esses processos de leitura e interpretação da resposta do servidor estão todos contidos na classe denominada Operations). Todos os acessos aos arquivos .yml (arquivos de persistência) são feitos somente pelo servidor. Assim, desde que o protocolo não mude, podemos até mudar o servidor e ainda ter a interface gráfica funcionando. Inclusive, a interpretação das respotas dadas pelo servidor foram feitas por leitura do textoem protocolo yaml, observando padrões na formatação deste protocolo, de modo que não foi preciso ustilizar a biblioteca JYaml. Provavelmente ela teria tornado mais simples essa leitura, mas como identifiquei logo esses padrões no protocolo, preferi fazer esse processo manualmente. Os links abaixo têm os arquivos do projeto feito no netbeans e do servidor feito no lab5:

Lab6 compactado
Lab5 compactado

Como já foi mencionado no lab5, o arquivo server.rb ainda imprime algumas mensagens que foram colocadas para ver os testes funcionando, mas elas serão úteis para mostrar que a interface gráfica feita realmente está acessando o servidor, lendo informações por ele dadas, ou mesmo alterando informações, através dos comandos passados para servidor por meio dos botões criados. A seguir, vemos o funcionamento do programa (o server.rb já deve estar rodando, caso contrário, ocorrerá uma excessão):

Rodando o servidor (comando "ruby server.rb"):

lab6-fig01.jpg

Rodando a aplicação no netbeans (gera a tela inicial):

lab6-fig02.jpg

Logando com o usuário Joao e senha 123456 (usário já criado anteriormente. Novos usuários podem ser criados nesta mesma tela inicial):

lab6-fig03.jpg

Temos a tela de usuário logado, e, a partir dela, podemos realizar as outras operações, apenas escolhendo o botão correspondente:

lab6-fig04.jpg

Como exemplo, mostraremos a tela da operação do botão View Match, colocando a partida palmeiras x flamengo (preenchemos o formulário na parte de cima com o nome da tabela e apertamos show match):

lab6-fig05.jpg

Ainda na tela de View Match, podemos ver também os apostadores e os ganhadores de uma partida:

lab6-fig06.jpg

Podemos ver no prompt de comando, as mensagens mostradas, que correspondem justamente às operações que foram realizadas, mostrando mais claramente que a nossa aplicação está conectada ao servidor implementado:

lab6-fig07.jpg

Vemos que a interface gráfica está funcional (pelo menos para as operações mostradas). Outros testes podem ser realizados nas outras telas, para verificar o funcionamento do programa. Entretanto, alguns pequenos detalhes ainda podem ser ajustados, de modo a tornar a aplicação mais segura e mais resistente a erros. Também poderíamos ter buscado aplicar alguns padões de projeto, visto que tivemos algumas imlementações parecidas em determinados pontos. Entretanto, para evitar acrescentar complexidade desnecessária e como o número de classes onde a semelhança ocorria não era tão grande (não passava de sete), preferi deixar o código com essas semelhanças. Essa seria uma outra possível melhoria, mas no código. Como entrou o período de férias, não pude conversar com o Alexandre sobre como anda a interface em Ruby, para saber que dificuldades ou facilidades ele encontrou.

Conclusão

Ao fim deste laboratório, foi possível integrar diversos conhecimentos adquiridos durante esse semestre (até de outras disciplinas) com um objetivo final. A liberdade dada para a execução destes labs serviu para dar uma noção de que aspectos deveriam ser avaliados num projeto real.
Também foi bastante positivo o fato de fazer o aluno poder integrar diversos conhecimentos para atender um requisito, e ver todo aquele conjunto de conceitos trabalhando satisfatoriamente, mostrando na prática a validade de toda essa teoria e reforçando os conceitos teóricos.
Um fator que pesou contra, assim como no lab5, foi o tempo. Basicamente pelos mesmos motivos. Talvez pela inovação do curso, os labs durante o semestre foram demorando mais que o esperado e também contribuíram para este fato.

Add a New Comment
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License