Lab6

NOTA

O lab6 é opcional para quem for fazer um projeto final como exame (entrará como um bônus considerável na nota do exame), mas obrigatório para aqueles que não forem fazer o projeto no exame (aí o lab6 valerá pela nota do exame). O laboratório (relatório, código e nota dada) é individual, a dupla será usada somente para parear os clientes, um em Java e o outro em Ruby.

Descrição

Faça um cliente com interface gráfica para a aplicação de bolão virtual. Este cliente deverá se conectar ao servidor desenvolvido no lab5. Entre as duplas compostas para fazer o protocolo do lab5, um dos membros deve fazer o lab6 em Java e o outro em Ruby (quesito obrigatório). A divisão fica a critério do grupo. Os clientes nas duas linguagens devem ser capazes de se conectar ao mesmo servidor, ao mesmo tempo (visto que o servidor é multi-thread).

O único requisito para a interface gráfica é que ela implemente todas as operações definidas no protocolo do lab5.

Qualquer biblioteca de GUI pode ser utilizada. Sugestões:

Java: Swing
Ruby: Shoes, Ruby-Tk

Para comunicação com o servidor em Java: http://java.sun.com/docs/books/tutorial/networking/sockets/index.html
Para serialização em Java usando YAML: http://jyaml.sourceforge.net/

Após terminar o laboratório, troque figurinhas com a sua dupla, que desenvolveu o laboratório em outra linguagem e comparem os resultados.

Apresentação

Quem não for fazer o projeto deve apresentar o laboratório. A apresentação deverá ser feita com a dupla do protocolo. Não é necessário Power Point, somente explicar o protocolo utilizado, breve apresentação do código do cliente desenvolvido (nas duas linguagens) e uma demonstração do funcionamento.

Relatório

Quem não fizer o projeto também deverá apresentar um relatório para este laboratório. Pense que o laboratório vale pela nota do exame e seja bem analítico no mesmo, dizendo quais foram as principais dificuldades encontradas na programação "cliente-servidor", as diferenças em relação ao código na outra linguagem (para isto, converse com a sua dupla), e os conhecimentos de orientação a objetos que foram relevantes para o desenvolvimento do aplicativo.

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