AUTOR: CESAR AUGUSTO TACLA CRIAÇÃO: 21/5/2009 11:14 0/0/0000 00:00 ÚLTIMA ALTERAÇÃO: SIMULADOR DE FUTEBOL: TRABALHO DA SEGUNDA PARCIAL 1 INSTRUÇÕES 1.1 DESCRIÇÃO Projetar e implementar um programa para simular um jogo de futebol que respeite os seguintes requisitos: ◊ deve haver pelo menos um goleiro e três jogadores de linha; ◊ não é necessário lateral, escanteio, impedimento e faltas, apenas chutar a bola e marcar gol; ◊ após marcação de gol, os times devem se reposicionar nos respectivos campos e a bola colocada no meio de campo; ◊ deve haver um placar; ◊ somente UM jogador pode ocupar uma posição do tabuleiro por vez, portanto só um jogador chuta a bola por vez; ◊ para chutar a bola, o jogador deve estar na mesma posição que a bola; ◊ deve ser possível ao usuário, desligar a máquina e recuperar o jogo no estado em que se encontrava para continuar a jogar (PERSISTÊNCIA); ◊ deve ser possível ao usuário ver o replay de uma partida; ◊ a duração de uma partida fica a cargo da equipe se por tempo ou gols marcados; ◊ cada jogador deve ser uma Thread; ◊ deve haver uma interface gráfica onde seja possível distinguir os times, a bola, os goleiros dos demais jogadores e o gol. 1.2 EQUIPE Individual ou em duplas. 1.3 ◊ ◊ ◊ ◊ DATAS 21/5 Apresentar casos de uso do sistema 28/5 Apresentar diagrama de classes 4/6 Apresentar diagrama de sequência para o caso de uso "jogar” 25/6 Entregar o documento (vide seção 2) e o programa por email (fonte e .jar). Além disso, entregar uma cópia IMPRESSA do documento. Maiores detalhes na seção 2. 2 DOCUMENTO 1. Introdução: explicar do que se trata o documento e como está organizado. 1 2. Casos de uso: descrever textualmente o que o sistema oferece ao usuário. A perspectiva da descrição é do usuário e não do desenvolvedor. Isto significa que não deve haver decomposição funcional. 3. Diagrama de classes: colocar somente as classes do domínio do problema, por exemplo, jogador e time. Não colocar classes de utilidade, tais como, Vector, e classes que compõem a GUI, tais como, Jbutton e JPanel. 4. Diagrama de sequência: fazer um diagrama de sequência para um dos cenários do caso de uso “jogar” que mostre, por exemplo, como um jogador se posiciona no campo e chuta a bola. 5. Problemas de concorrência: quais são e como foram resolvidos (ex. há possibilidade de deadlock, utilizou exclusão mútua?). Explicar textualmente as classes/objetos que participaram da solução de cada um dos problemas e, se necessário, ilustrar com um diagrama de sequência. 6. Descrição dos componentes: listar os componentes do sistema (ex. .java) organizados por pacote com uma breve descrição do que fazem no sistema (5 linhas no máximo/componente). 7. Manual do usuário: explicar passo-a-passo como rodar o .jar e como utilizar as funcionalidades oferecidas pelo sistema. 8. Conclusão : listar os problemas do sistema (bugs e o que não conseguiu implementar dentro do que foi pedido) e listar o que fazer para melhorar o sistema. 2