Grupo1-PJI2-2019-1

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar

Responsáveis pelo projeto

  • Alisson Boeing, e-mail: alisson.b11@aluno.ifsc.edu.br
  • Rafael Teles E, e-mail: rafatespindola@gmail.com
SR

Diagrama dos casos de uso SR

DiagramSR.png

Descrição dos casos de uso SR

Caso de uso: Iniciar robô <br\> Ator Primário: SS <br\> Identificador: INC-RB <br\> Sumário: SS informa ao SR seu ID, sua Cor, Modo de jogo e Posição inicial <br\> Pré condições: Conexão já estabelecida entre SS e SR<br\> Fluxo Principal: <br\> [1] SS informa ao SR seu ID <br\> [2] SS informa ao SR sua Cor <br\> [3] SS informa ao SR Modo de jogo <br\> [4] SS informa ao SR sua Posição inicial <br\>


Caso de uso: Receber movimento <br\> Ator Primário: SS <br\> Identificador: RCB-MV <br\> Sumário: SR recebe os comandos de movimentos de SS <br\> Pré condições: Estar no modo manual e já ter executado INC-RB <br\> Fluxo Principal: <br\> [1] SS envia os comandos de movimento para SR <br\>


Caso de uso: Mover manual <br\> Ator Primário: SS <br\> Identificador: MVR-MN <br\> Sumário: Executar o movimento recebido <br\> Pré condições: Já ter executado RCB-MV <br\> Fluxo Principal: <br\> [1] SS envia os comandos para SR <br\> [2] SA permite o movimento <br\> [3] SR executa os movimentos recebidos <br\> [4] SR informa a SA sua coordenada <br\>

Caso de uso: Receber coordenada das caças <br\> Ator Primário: SA <br\> Identificador: RCC <br\> Sumário: SA envia as coordenadas das caças ao SR <br\> Pré condições: SR estar em modo autônomo <br\> Fluxo Principal: <br\> [1] SS escolhe o modo autônomo <br\> [2] SA gera as coordenadas das caças <br\> [3] SA distribui essas coordenadas para o SR <br\>

Caso de uso: Procurar caça <br\> Ator Primário: SR <br\> Identificador: PCR-CC <br\> Sumário: SR verifica se está em cima da caça ou ainda não. <br\> Pré condições: Estar no modo autônomo <br\> Fluxo Principal: <br\> [1] SR é selecionado para o modo autônomo <br\> [2] SR usa seu algoritmo de busca para chegar a caça <br\> [3] Ao chegar em uma caça ele informa ao SS que achou uma caça <br\>

Caso de uso: Mover autônomo <br\> Ator Primário: SR <br\> Identificador: MV-AUTO <br\> Sumário: SR usa de seu algoritmo para achar o caminho mais rápido até a caça <br\> Pré condições: Estar em modo autônomo <br\> Fluxo Principal: <br\> [1] SR é selecionado em modo autônomo <br\> [2] SR se movimenta com base em seu algoritmo <br\> [3] Se SR achar a caça, ele informa ao SS <br\>

Caso de uso: Obter caça <br\> Ator Primário: SR <br\> Identificador: OBT-C <br\> Sumário: Quando SR achar uma caça ele informa ao SS. SS informa ao SA para validar ou não a caça. Quando validada, contabiliza um ponto para quem a achou<br\> Pré condições: Achar a caça <br\> Fluxo Principal: <br\> [1] SR se movimenta para cima da caça <br\> [2] SR informa que achou a caça para SS <br\>

Caso de uso: Atualizar mapa <br\> Ator Primário: SR <br\> Identificador: ATLZ-MP <br\> Sumário: A cada evento importante e/ou um tempo definido o SA atualiza o mapa e repassa para o SS e SR <br\> Pré condições: Conexões estabelecidas <br\> Fluxo Principal: <br\> [1] SR achou uma caça ou algum outro evento aconteceu <br\> [2] SA atualiza seu mapa <br\> [3] SA repassa o mapa para SS <br\> [4] SA repassa o mapa para SR <br\>

SS

Diagrama dos casos de uso SS

DiagramSS4.png

Descrição dos casos de uso SS

Caso de uso: Pausar/Reiniciar <br\> Ator Primário: SA <br\> Identificador: PS/RNC <br\> Sumário: SA envia uma mensagem para SS pausar ou reiniciar a movimentação dos robôs <br\> Pré condições: O jogo deve estar em andamento para pausar ou deve estar em pausa para reiniciar <br\> Fluxo Principal: <br\> [1] O jogo está em pausa ou andamento <br\> [2] SA envia um comando de pausa/reiniciar para SS <br\> [3] SS envia o comando para SR <br\> [4] SR executa o comando <br\>


Caso de uso: Iniciar Partida <br\> Ator Primário: SA <br\> Identificador: INC-PTD <br\> Sumário: SS inicia a partida enviando o modo de jogo e ID para SR <br\> Pré condições: Ainda não ter inciado a partida <br\> Fluxo Principal: <br\> [1] ID e modo de jogo são enviados ao SR <br\> [2] A partida começa imediatamente <br\>


Caso de uso: Terminar partida <br\> Ator Primário: SA <br\> Identificador: TRM-PTD <br\> Sumário: Todas as caças foram encontradas <br\> Pré condições: Não pode haver nenhuma caça no tabuleiro <br\> Fluxo Principal: <br\> [1] A última caça é obtida e validada <br\> [2] SA envia comando a SR que a partida chegou ao fim <br\>


Caso de uso: Enviar local das caças <br\> Ator Primário: SA <br\> Identificador: ELC <br\> Sumário: SA sorteia as posições das caças e as envia para SS. SS, por sua vez, as envia para SR. SR em modo automático irá usar de seu algoritmo interno para traçar a melhor rota para obter o máximo de caças em menor tempo possível <br\> Pré condições: O modo autônomo <br\> Fluxo Principal: <br\> [1] SA sorteia as posições das caças <br\> [2] SA envia as posições das caças ao SS <br\> [3] SS repassa as posições das caças ao SR <br\> [4] SR traça a melhor rota, de acordo com seu algoritmo, para buscar o maior número de caças em menor tempo <br\>


Caso de uso: Atualizar mapa <br\> Ator Primário: SA <br\> Identificador: ATLZ-MP <br\> Sumário: A posição das caças e dos SRs devem ser constantemente atualizadas para obter o melhor desempenho dos sistemas <br\> Pré condições: A partida deve estar havendo <br\> Fluxo Principal: <br\> [1] A cada evento (uma caça encontrada ou movimento de robo) é reenviada as posições das caças e dos SRs no mapa <br\>


Caso de uso: Validar caça manual <br\> Ator Primário: Jogador <br\> Identificador: ATT-CC <br\> Sumário: Na interface o jogador deverá atualizar a lista de caças informando que achou tal caça <br\> Pré condições: O jogador deve realmente estar com o SR em cima da caça e a caça deve ter sido validada <br\> Fluxo Principal: <br\> [1] Jogador acha a caça [2] A caça é validada [3] A lista é atualizada pelo jogador


Caso de uso: Enviar movimento <br\> Ator Primário: Jogador <br\> Identificador: ENV-MOV <br\> Sumário: O jogador envia os movimentos a serem tomados por SR. SR executa-os <br\> Pré condições: Estar no modo manual <br\> Fluxo Principal: <br\> [1] SR é inciado em modo manual <br\> [2] O jogador envia comandos de movimento ao SR <br\> [3] SR executa os comandos recebidos <br\>


Caso de uso: Validar caça <br\> Ator Primário: Jogador <br\> Identificador: VLD-CC <br\> Sumário: SR se posiciona sobre uma caça e envia sua posição ao SS. SS valida a caça juntamente com SA. <br\> Pré condições: SR deve ter encontrado uma caça <br\> Fluxo Principal: <br\> [1] SR chega à caça <br\> [2] SR envia localização ao SS <br\> [3] SS verifica se na posição há uma caça <br\> [4] SS valida a caça se na posição conter a caça. SS não valida a caça se na posição não conter a caça <br\>


Caso de uso: Mover automático <br\> Ator Primário: SR <br\> Identificador: MVR-AUTO <br\> Sumário: O SR utilizará de seu algoritmo interno para obter o maior número de caças em menor tempo possível <br\> Pré condições: Jogo iniciado em modo automático e já ter recebido a localização das caças <br\> Fluxo Principal: <br\> [1] O jogo é iniciado em modo automático <br\> [2] SR recebe as caças <br\> [3] SR usa o algoritmo para obter as caças <br\>


Caso de uso: Receber atualização <br\> Ator Primário: SS <br\> Identificador: RCB-ATT <br\> Sumário: O SS recebe atualização do mapa do SA e repassa para o SR <br\> Pré condições: Estar em modo automático <br\> Fluxo Principal: <br\> [1] Algum evento acontece, por exemplo: um robo se move ou uma caça é encontrada <br\> [2] O mapa é atualizado para todos os sistemas <br\>


Caso de uso: Exibir atualização <br\> Ator Primário: SS <br\> Identificador: EXB-ATT <br\> Sumário: SS exibe na interface a atualização das caças <br\> Pré condições: Estar em modo manual <br\> Fluxo Principal: <br\> [1] SR acha uma caça <br\> [2] A caça é validada <br\> [3] O jogador deve atualizar a lista <br\> [4] Com a lista das caças atualizada, o SA atualiza todos os SSs <br\>


SA

Diagrama dos casos de uso SA

DiagramaSA789.png

Novo123.png

DiagramaSA456.png

DiagramaSA159.png

Casos de Uso SA

Caso de uso: Pausar/Reiniciar <br\> Ator primário: Árbitro <br\> Identificador: UCA01<br\> Sumário: Árbitro deseja pausar ou reiniciar a partida.<br\> Pré condições: Partida deve estar em andamento.<br\> Fluxo Principal:<br\>

  • Árbitro clica na opção "Pausar/Continuar".<br\>
  • SA informa ao SS que o jogo foi pausado ou reiniciado.<br\>

<br\> Caso de uso: Cadastrar <br\> Ator primário: Árbitro<br\> Identificador: UCA02<br\> Sumário: Árbitro solicitação o registro do Robô.<br\> Pré condições: O Árbitro deverá saber as informações do Robô.<br\> Fluxo Principal:<br\>

  • Árbitro seleciona "Cadastrar Robô"<br\>
  • Árbitro envia as informações do Robô para o SA.<br\>
  • SA solicita ao Banco de dados para que seja registrado o Robô.<br\>
  • Banco de dados informa que o Robô foi registrado.<br\>

<br\> Caso de uso: Deletar Robô <br\> Ator primário: Árbitro <br\> Identificador: UCA03<br\> Sumário: Árbitro deleta Robô cadastrado.<br\> Pré condições: O Robô deve estar cadastrado.<br\> Fluxo Principal:<br\>

  • Árbitro clica na opção "Deletar Robôs".<br\>
  • SA solicita ao Banco de dados os Robôs cadastrados.<br\>
  • Banco de dados envia uma lista de robôs ao SS.<br\>
  • SA Exibe a lista de Robôs.<br\>
  • Árbitro informa o ID do robô a ser deletado.<br\>
  • SA solicita ao Banco de dados que remova o Robô com ID informado.<br\>
  • Banco de dados confirma que o robô foi deletado.<br\>
  • SA Exibe que o Robô foi deletado.<br\>

<br\> Caso de uso: Consultar robô <br\> Ator primário: Árbitro <br\> Identificador: UCA04<br\> Sumário: Árbitro consulta todos os Robô cadastrado.<br\> Pré condições: Existir pelo menos um Robô cadastrado.<br\> Fluxo Principal:<br\>

  • Árbitro clica na opção "Consultar Robôs".<br\>
  • SA solicita ao Banco de dados todos os Robôs cadastrados.<br\>
  • Banco de dados envia uma lista de robôs ao SS.<br\>
  • SA Exibe a lista de Robôs.<br\>

<br\> Caso de uso: Consultar histórico <br\> Ator primário: Árbitro <br\> Identificador: UCA05<br\> Sumário: Árbitro consulta o histórico de partida.<br\> Pré condições: Já ter acontecido pelo menos uma partida.<br\> Fluxo Principal:<br\>

  • Árbitro clica na opção "Consultar histórico".<br\>
  • SA solicita ao Banco de dados todos os resultados de jogos armazenados.<br\>
  • Banco de dados envia uma lista das partidas com o vencedor para o SS.<br\>
  • SA Exibe a lista de partidas.<br\>

<br\> Caso de uso: Iniciar partida<br\> Ator primário: Árbitro <br\> Identificador: UCA06<br\> Sumário: Árbitro inicia partida.<br\> Pré condições: <br\> Fluxo Principal:<br\>

  • Árbitro seleciona "Iniciar partida".<br\>
  • SA questiona quantos jogadores realizarão a partida.<br\>
  • Árbitro informa o número de jogadores.<br\>
  • SA questiona sobre o modo operação.<br\>
  • Árbitro escolhe o modo de operação desejado.<br\>
  • SA questiona quantas caças terá no jogo.<br\>
  • Árbitro informa o número de caças.<br\>
  • SA sorteia as caças pelo mapa.<br\>
  • SA aguarda a conexão dos SS.<br\>
  • SS informa a localização do Robô ao SA.<br\>
  • SA informa o modo de jogo, quantas caças e quantos jogadores terão na partida para o SS .<br\>
  • A partida é criada.<br\>
  • SA informa a localização das caças para o SS.<br\>

<br\> Caso de uso: Conectar Robô <br\> Ator primário: SS <br\> Identificador: UCA07<br\> Sumário: SS envia solicitação de autenticação para SA.<br\> Pré condições: O Robô deve estar autenticado no SS, o Robô já deve estar cadastrado, partida deve ter sido criada.<br\> Fluxo Principal:<br\>

  • SS se conecta no SA.<br\>
  • SS envia informações do Robô para o SA.<br\>
  • SA verifica se o Robô já foi cadastrado no banco de Dados.<br\>
  • SA informa para SS que o SR esta autenticado.<br\>

Exceção: Caso o SR não tenha sido cadastrado um cadastro deverá que ser efetuado.<br\> <br\> Caso de uso: Validar caça<br\> Ator primário: SS <br\> Identificador: UCA08<br\> Sumário: SS informa que caça foi encontrada.<br\> Pré condições: Partida deve ter iniciado e o Robô deve ter encontrado a caça.<br\> Fluxo Principal:<br\>

  • SS informa ao SA que o Robô encontrou uma caça.<br\>
  • SA informa ao Árbitro que o SS encontrou uma caça.<br\>
  • Árbitro valida a caça.<br\>
  • SA incrementa o contador de Robô que localizou a caça.<br\>
  • SA decrementa o contador de caça.<br\>
  • SA informa a todos os SS que um dos Robôs encontrou uma caça.<br\>

Exceção: Árbitro não valida a caça.<br\> <br\> Caso de uso: Receber atualização<br\> Ator primário: SS <br\> Identificador: UCA09<br\> Sumário: SS informa a localização do SR.<br\> Pré condições: Iniciar Partida.<br\> Fluxo Principal:<br\>

  • SS envia a localização do SR ao SA

<br\> Caso de uso: Enviar atualização<br\> Ator primário: SS <br\> Identificador: UCA10<br\> Sumário: .<br\> Pré condições: Iniciar Partida.<br\> Fluxo Principal:<br\> <br\> Caso de uso: Atualizar mapa<br\> Ator primário: SS <br\> Identificador: UCA11<br\> Sumário: <br\> Pré condições: Enviar atualização, Receber atualização, Validar caça.<br\> Fluxo Principal:<br\> <br\> Caso de uso: Declarar Vencedor<br\> Ator primário: SS <br\> Identificador: UCA12<br\> Sumário: O sistema declara o vencedor da partida após a ultima caça ser localizada.<br\> Pré condições: Validar caça.<br\> Fluxo Principal:<br\>

  • SA informa a todos os SS que um dos Robôs encontrou a ultima caça.<br\>
  • SA informa ao Árbitro qual Robô é o vencedor.<br\>

<br\> Caso de uso: Terminar Partida<br\> Ator primário: SS <br\> Identificador: UCA13<br\> Sumário: O fim da partida é informado aos SS.<br\> Pré condições: Declarar Vencedor.<br\> Fluxo Principal:<br\>

  • SA informa a todos os SS que um dos Robôs encontrou a ultima caça.<br\>
  • SA informa a todos os SS que a partida acabou.<br\>

Exceção: Árbitro Termina a partida selecionando clicando na opção "Terminar partida".<br\> <br\> Caso de uso: Salvar histórico<br\> Ator primário: Banco de Dados <br\> Identificador: UCA14<br\> Sumário: Após o vencedor ser declaro os dados da partida são armazenados.<br\> Pré condições: Declarar Vencedor.<br\> Fluxo Principal:<br\>

  • SA informa os dados da partida ao Banco de Dados.<br\>
  • Banco de dados confirma que o jogo foi salvo.<br\>
  • SA informa ao Árbitro que os dados da partida foram armazenados<br\>

<br\> Caso de uso: Exibir resultados no projetor<br\> Ator primário: Projetor <br\> Identificador: UCA15<br\> Sumário: Será exibido no projetor informações da partida(Caças ativas, Caças encontradas, e placar).<br\> Pré condições: Atualizar Mapa.<br\> Fluxo Principal:<br\>

  • SA informa os dados da partida ao Projetor.<br\>
  • Projetor exibe os dados da partida para o público.<br\>

<br\> Duvidas: <br\> 1 - Realmente é necessário ter um caso de uso salvar histórico? O salvamento automático do resultado não pode ser feito direto no "Declarar Vencedor"?<br\> Possível caso de uso Declarar Vencedor.<br\> Caso de uso: Declarar Vencedor<br\> Ator primário: SS <br\> Identificador: UCA<br\> Sumário: O sistema declara o vencedor da partida após a ultima caça ser localizada.<br\> Pré condições: Validar caça.<br\> Fluxo Principal:<br\>

  • SA informa a todos os SS que um dos Robôs encontrou a ultima caça.<br\>
  • SA informa ao Árbitro qual Robô é o vencedor.<br\>
  • O jogo acaba.<br\>
  • SA informa os dados da partida para o Banco de Dados<br\>
  • Banco de Dados confirma o armazenamento.<br\>

<br\> 2 - Diferença entre Enviar atualização e Atualizar mapa.<br\>

Descrição dos casos de uso SA

Caso de uso: <br\> Ator Primário: <br\> Identificador: <br\> Sumário: <br\> Pré condições: <br\> Fluxo Principal: <br\> [1] <br\> [2] <br\> [3] <br\> [4] <br\>

Diagrama de classes

Diagrama de classes

DiagramaDeClasses789.png