Mudanças entre as edições de "Grupo3-PJI2-2019-1"
(59 revisões intermediárias por 5 usuários não estão sendo mostradas) | |||
Linha 11: | Linha 11: | ||
== Atualizações: == | == Atualizações: == | ||
+ | |||
+ | == Cronograma: == | ||
+ | [[Arquivo:cronograma-pji2.png]] | ||
+ | |||
+ | == Diagramas de Sequência: == | ||
+ | |||
+ | {{collapse top | Diagrama de sequência SS 13/05/19}} | ||
+ | |||
+ | [[Arquivo:seqss.jpg]] | ||
+ | |||
+ | |||
+ | {{collapse bottom}} | ||
+ | |||
+ | {{collapse top | Diagrama de sequência SS 20/05/19}} | ||
+ | |||
+ | [[Arquivo:seqssat.jpg]] | ||
+ | |||
+ | |||
+ | {{collapse bottom}} | ||
+ | {{collapse top | Diagrama de sequência SA 09/06/19}} | ||
+ | |||
+ | [[Arquivo:dssa.jpg]] | ||
+ | |||
+ | |||
+ | {{collapse bottom}} | ||
+ | {{collapse top | Diagrama de sequência SS automático 09/06/19}} | ||
+ | |||
+ | [[Arquivo:dsautoss.png]] | ||
+ | |||
+ | {{collapse bottom}} | ||
+ | {{collapse top | Diagrama de sequência SS manual 09/06/19}} | ||
+ | |||
+ | [[Arquivo:dsmanualss.png]] | ||
+ | |||
+ | {{collapse bottom}} | ||
+ | |||
+ | {{collapse top | Diagrama de sequência SR 05/07/19}} | ||
+ | |||
+ | [[Arquivo:srdia.png]] | ||
+ | |||
+ | {{collapse bottom}} | ||
+ | |||
+ | == Diagramas de Classe: == | ||
+ | |||
+ | {{collapse top | Diagrama de classe SS 13/05/19}} | ||
+ | |||
+ | [[Arquivo:classess.jpg]] | ||
+ | |||
+ | {{collapse bottom}} | ||
+ | |||
+ | {{collapse top | Diagrama de classe SR 03/06/19}} | ||
+ | |||
+ | [[Arquivo:classesr.jpg]] | ||
+ | |||
+ | {{collapse bottom}} | ||
+ | |||
+ | {{collapse top | Diagrama de classe SA 09/06/19}} | ||
+ | |||
+ | [[Arquivo:dcesa.png]] | ||
+ | |||
+ | {{collapse bottom}} | ||
+ | |||
+ | {{collapse top | Diagrama de classe SA 08/07/19}} | ||
+ | |||
+ | [[Arquivo:DiagramaSaCompletoFinal.png]] | ||
+ | |||
+ | {{collapse bottom}} | ||
+ | |||
+ | == Casos de Uso: == | ||
+ | |||
+ | |||
+ | {{collapse top | Caso de uso S.A}} | ||
+ | '''Nome: Verifica tabuleiro''' | ||
+ | |||
+ | Identificador: CSU.SA 01 | ||
+ | |||
+ | Sumário: Inicia a conexão entre S.A S.S | ||
+ | |||
+ | Ator primário: S.S | ||
+ | |||
+ | Fluxo principal: | ||
+ | |||
+ | S.S envia ao S.A uma mensagem contendo o nome do robô, cor e senha. | ||
+ | |||
+ | S.A válida os dados ou não. | ||
+ | |||
+ | Fluxo de exceções: | ||
+ | |||
+ | Senha errada o Login errado: | ||
+ | |||
+ | Simplesmente envia uma mensagem ao S.S informando-o que não foi possível conectar devido a login e/ou senha errado(s) | ||
+ | |||
+ | '''Nome: Acessa histórico | ||
+ | ''' | ||
+ | |||
+ | Identificador: CSU.SA 02 | ||
+ | |||
+ | Sumário: Envia histórico de partidas ao cliente. | ||
+ | |||
+ | Ator primário: S.A. | ||
+ | |||
+ | Précondições: | ||
+ | |||
+ | CSU.SA 01 | ||
+ | |||
+ | Fluxo principal: | ||
+ | |||
+ | S.S. solicita histórico de partidas ao S.A. | ||
+ | |||
+ | S.A procura em seu banco de dados o histórico daquele cliente | ||
+ | |||
+ | Caso tenha algo, envia o histórico, caso contrário informa que não há histórico. | ||
+ | |||
+ | |||
+ | '''Nome: Inicia partida. | ||
+ | ''' | ||
+ | |||
+ | Identificador: CSU.SA 03 | ||
+ | |||
+ | Sumário: Inicia a partida, sorteando as caças e informando aos robôs suas posições | ||
+ | |||
+ | Ator primário: S.A | ||
+ | |||
+ | Fluxo principal: | ||
+ | |||
+ | Gera as posições das caças | ||
+ | |||
+ | Informa a todos | ||
+ | |||
+ | Espera ack de todos para iniciar de fato. | ||
+ | |||
+ | Fluxo de exeção | ||
+ | |||
+ | Não recebeu ack de todos os robôs | ||
+ | |||
+ | Envia novamente. | ||
+ | |||
+ | |||
+ | |||
+ | '''Nome: Valida caça. | ||
+ | |||
+ | ''' | ||
+ | Identificador: CSU.SA 04 | ||
+ | |||
+ | Sumário: Válida ou não a caça de um robô | ||
+ | |||
+ | Ator primário: SA. | ||
+ | |||
+ | A partida ter começado (CSU.SA 03) | ||
+ | |||
+ | Fluxo principal: | ||
+ | |||
+ | Recebe mensagem de caça obtida de algum determinado S.S | ||
+ | |||
+ | S.A verifica se realmente aquela caça é válida ou não | ||
+ | |||
+ | Caso seja validada, incrementa o placar e atualiza as caças, informado aos outros S.S. | ||
+ | |||
+ | Nome: Recebe informações dos robôs. | ||
+ | |||
+ | Identificador: CSU.SA 05 | ||
+ | |||
+ | Sumário: Recebe dados de movimentação dos robôs. | ||
+ | |||
+ | Précondições: CSU.SA 03 | ||
+ | |||
+ | Ator primário: S.A. | ||
+ | |||
+ | Fluxo principal: | ||
+ | |||
+ | S.S informa a posição de seu respectivo robô ao S.A | ||
+ | |||
+ | S.A processa a informação | ||
+ | |||
+ | S.A informa ao S.S a posição de outros robôs para evitar colisões. | ||
+ | |||
+ | |||
+ | '''Nome: Declara vencedor''' | ||
+ | |||
+ | Identificador: CSU.SA 06 | ||
+ | |||
+ | Sumário: Finaliza uma partida declarando o vencedor. | ||
+ | |||
+ | Ator primário: S.A. | ||
+ | |||
+ | Précondições: CSU.SA 03 | ||
+ | |||
+ | Fluxo principal: | ||
+ | |||
+ | Calcula a pontuação | ||
+ | |||
+ | Informa a pontuação aos jogadores. | ||
+ | |||
+ | Salva histórico de partida. | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | '''Nome: Pausa''' | ||
+ | |||
+ | Identificador: CSU.SA 07 | ||
+ | |||
+ | Sumário: Pausa a partida caso o árbitro decida. | ||
+ | |||
+ | Ator primário: S.A. | ||
+ | |||
+ | Précondições: CSU.SA 03 | ||
+ | |||
+ | Fluxo principal: | ||
+ | |||
+ | Envia mensagem de pause para os S.S. | ||
+ | |||
+ | Espera ACK | ||
+ | |||
+ | Uma vez todos os ACKs recebido, aguarda o recomeço da partida. | ||
+ | |||
+ | Recomeça a partida de onde fora pausada. | ||
+ | {{collapse bottom}} | ||
+ | {{collapse top | Casos de Uso Sistema Arbitrário 08/04/2019}} | ||
+ | |||
+ | '''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\> | ||
+ | *Sistema Arbitrário informa ao Sistema Supervisório 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 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 Sistema Arbitrário.<br\> | ||
+ | *Sistema Arbitrário 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 um Robô cadastrado.<br\> | ||
+ | '''Pré condições:''' O Robô a ser deletado deve estar cadastrado.<br\> | ||
+ | '''Fluxo Principal:'''<br\> | ||
+ | *Árbitro clica na opção "Deletar Robô".<br\> | ||
+ | *Sistema Arbitrário solicita ao Banco de dados os Robôs cadastrados.<br\> | ||
+ | *Banco de dados envia uma lista de robôs ao Sistema Arbitrário.<br\> | ||
+ | *Sistema Arbitrário Exibe a lista de Robôs.<br\> | ||
+ | *Árbitro informa o ID do robô a ser deletado.<br\> | ||
+ | *Sistema Arbitrário solicita ao Banco de dados que remova o Robô com ID informado.<br\> | ||
+ | *Banco de dados confirma que o robô foi deletado.<br\> | ||
+ | *Sistema Arbitrário Exibe que o Robô foi deletado.<br\> | ||
+ | <br\> | ||
+ | '''Caso de uso:''' Consultar robôs <br\> | ||
+ | '''Ator primário:''' Árbitro <br\> | ||
+ | '''Identificador:''' UCA04<br\> | ||
+ | '''Sumário:''' Árbitro consulta todos os Robôs cadastrados.<br\> | ||
+ | '''Pré condições:''' Pelo menos um Robô deve estar cadastrado.<br\> | ||
+ | '''Fluxo Principal:'''<br\> | ||
+ | *Árbitro clica na opção "Consultar Robôs".<br\> | ||
+ | *Sistema Arbitrário solicita ao Banco de dados todos os Robôs cadastrados.<br\> | ||
+ | *Banco de dados envia uma lista de robôs ao Sistema Arbitrário.<br\> | ||
+ | *Sistema Arbitrário 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 partidas.<br\> | ||
+ | '''Pré condições:''' Ter ocorrido o término de pelo menos uma partida com um vencedor/empate.<br\> | ||
+ | '''Fluxo Principal:'''<br\> | ||
+ | *Árbitro clica na opção "Consultar histórico".<br\> | ||
+ | *Sistema Arbitrário 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 Sistema Supervisório.<br\> | ||
+ | *Sistema Arbitrário 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:''' Ter no mínimo dois Robôs cadastrados.<br\> | ||
+ | '''Fluxo Principal:'''<br\> | ||
+ | *Árbitro seleciona "Iniciar partida".<br\> | ||
+ | *Sistema Arbitrário questiona quantos jogadores realizarão a partida.<br\> | ||
+ | *Árbitro informa o número de jogadores.<br\> | ||
+ | *Sistema Arbitrário questiona sobre o modo operação.<br\> | ||
+ | *Árbitro escolhe o modo de operação desejado.<br\> | ||
+ | *Sistema Arbitrário questiona quantas caças terá no jogo.<br\> | ||
+ | *Árbitro informa o número de caças.<br\> | ||
+ | *Sistema Arbitrário sorteia as caças pelo mapa.<br\> | ||
+ | *Sistema Arbitrário aguarda a conexão dos Sistema Supervisório.<br\> | ||
+ | *Sistema Supervisório informa a localização do Robô ao Sistema Arbitrário.<br\> | ||
+ | *Sistema Arbitrário informa o modo de jogo, quantas caças, quantos jogadores terão na partida e a cor do Robô para o Sistema Supervisório.<br\> | ||
+ | *A partida é criada.<br\> | ||
+ | *Sistema Arbitrário informa a localização das caças para o Sistema Supervisório.<br\> | ||
+ | <br\> | ||
+ | '''Caso de uso:''' Terminar Partida<br\> | ||
+ | '''Ator primário:''' Árbitro <br\> | ||
+ | '''Identificador:''' UCA07<br\> | ||
+ | '''Sumário:''' O fim da partida é informado aos Sistema Supervisório.<br\> | ||
+ | '''Pré condições:''' Declarar Vencedor.<br\> | ||
+ | '''Fluxo Principal:'''<br\> | ||
+ | *Sistema Arbitrário informa ao Árbitro qual Robô é o vencedor.<br\> | ||
+ | *Arbitro seleciona "Terminar partida" | ||
+ | *Sistema Arbitrário informa a todos os Sistema Supervisório que a partida acabou.<br\> | ||
+ | Exceção: Árbitro Termina a partida selecionado a opção "Terminar partida" antes do robô vencedor ser anunciado.<br\> | ||
+ | <br\> | ||
+ | '''Caso de uso:''' Conectar Robô <br\> | ||
+ | '''Ator primário:''' Sistema Supervisório <br\> | ||
+ | '''Identificador:''' UCA08<br\> | ||
+ | '''Sumário:''' Sistema Supervisório envia solicitação de conexão para Sistema Arbitrário.<br\> | ||
+ | '''Pré condições:''' O Robô deve estar autenticado no Sistema Supervisório, o Robô já deve estar cadastrado, partida deve ter sido criada.<br\> | ||
+ | '''Fluxo Principal:'''<br\> | ||
+ | *Sistema Supervisório se conecta no Sistema Arbitrário.<br\> | ||
+ | *Sistema Supervisório envia informações do Robô para o Sistema Arbitrário.<br\> | ||
+ | *Sistema Arbitrário verifica se o Robô já foi cadastrado no banco de Dados.<br\> | ||
+ | *Sistema Arbitrário informa para Sistema Supervisório que o Robô está autenticado.<br\> | ||
+ | Exceção: Caso o Robô não tenha sido cadastrado, um cadastro deverá ser efetuado.<br\> | ||
+ | <br\> | ||
+ | '''Caso de uso:''' Validar caça<br\> | ||
+ | '''Ator primário:''' Sistema Supervisório <br\> | ||
+ | '''Identificador:''' UCA09<br\> | ||
+ | '''Sumário:''' Sistema Supervisório 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\> | ||
+ | *Sistema Supervisório informa ao Sistema Arbitrário que o Robô encontrou uma caça.<br\> | ||
+ | *Sistema Arbitrário informa ao Árbitro que o Sistema Supervisório encontrou uma caça.<br\> | ||
+ | *Árbitro valida a caça.<br\> | ||
+ | *Sistema Arbitrário incrementa o contador de Robô que localizou a caça.<br\> | ||
+ | *Sistema Arbitrário decrementa o contador de caça.<br\> | ||
+ | *Sistema Arbitrário informa a todos os Sistema Supervisório 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:''' Sistema Supervisório <br\> | ||
+ | '''Identificador:''' UCA10<br\> | ||
+ | '''Sumário:''' Sistema Supervisório informa a localização do Robô.<br\> | ||
+ | '''Pré condições:''' A partida deve ter sido iniciada.<br\> | ||
+ | '''Fluxo Principal:'''<br\> | ||
+ | *Sistema Supervisório envia a localização do Robô ao Sistema Arbitrário<br\> | ||
+ | <br\> | ||
+ | '''Caso de uso:''' Enviar atualização<br\> | ||
+ | '''Ator primário:''' Sistema Supervisório <br\> | ||
+ | '''Identificador:''' UCA11<br\> | ||
+ | '''Sumário:''' Sistema Arbitrário atualiza o Sistema Supervisório referente ao andamento do jogo.<br\> | ||
+ | '''Pré condições:''' Iniciar Partida.<br\> | ||
+ | '''Fluxo Principal:'''<br\> | ||
+ | *Sistema Arbitrário envia as informações referentes ao jogo para o Sistema Supervisório (localização dos adversários e informações das caças atuais<br\> | ||
+ | <br\> | ||
+ | '''Caso de uso:''' Atualizar mapa<br\> | ||
+ | '''Ator primário:''' <br\> | ||
+ | '''Identificador:''' UCA12<br\> | ||
+ | '''Sumário:''' Sistema Arbitrário atualiza as informações do jogo após receber e enviar informações.<br\> | ||
+ | '''Pré condições:''' Enviar atualização, Receber atualização, Validar caça.<br\> | ||
+ | '''Fluxo Principal:'''<br\> | ||
+ | *Sistema Arbitrário atualiza as informações referentes à: Localização de jogadores, placar do jogo, número de caças encontradas e disponíveis.<br\> | ||
+ | <br\> | ||
+ | '''Caso de uso:''' Declarar Vencedor<br\> | ||
+ | '''Ator primário:''' Sistema Supervisório <br\> | ||
+ | '''Identificador:''' UCA13<br\> | ||
+ | '''Sumário:''' O sistema declara o vencedor da partida após a última caça ser localizada.<br\> | ||
+ | '''Pré condições:''' Validar caça.<br\> | ||
+ | '''Fluxo Principal:'''<br\> | ||
+ | *Sistema Arbitrário informa a todos os Sistema Supervisório que um dos Robôs encontrou a última caça.<br\> | ||
+ | *Sistema Arbitrário informa ao Árbitro qual Robô é o vencedor.<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 declarado, os dados da partida são armazenados.<br\> | ||
+ | '''Pré condições:''' Declarar Vencedor.<br\> | ||
+ | '''Fluxo Principal:'''<br\> | ||
+ | *Sistema Arbitrário informa os dados da partida ao Banco de Dados.<br\> | ||
+ | *Banco de dados confirma que o jogo foi salvo.<br\> | ||
+ | *Sistema Arbitrário 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\> | ||
+ | *Sistema Arbitrário 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:''' Sistema Supervisório <br\> | ||
+ | '''Identificador:''' UCA<br\> | ||
+ | '''Sumário:''' O sistema declara o vencedor da partida após a última caça ser localizada.<br\> | ||
+ | '''Pré condições:''' Validar caça.<br\> | ||
+ | '''Fluxo Principal:'''<br\> | ||
+ | *Sistema Arbitrário informa a todos os Sistema Supervisório que um dos Robôs encontrou a ultima caça.<br\> | ||
+ | *Sistema Arbitrário informa ao Árbitro qual Robô é o vencedor.<br\> | ||
+ | *O jogo acaba.<br\> | ||
+ | *Sistema Arbitrário informa os dados da partida para o Banco de Dados<br\> | ||
+ | *Banco de Dados confirma o armazenamento.<br\> | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | {{collapse bottom}} | ||
+ | {{collapse top | Casos de Uso Sistema Robô 08/04/2019}} | ||
+ | |||
+ | '''Caso de uso:''' Start/Stop<br\> | ||
+ | '''Identificador:'''CSU01;<br\> | ||
+ | Sumário: SS recebe as informações de login, envia dados;<br\> | ||
+ | '''Ator primário:''' S.A.;<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 iniciado e rodando<br\> | ||
+ | '''Fluxo Principal:'''<br\> | ||
+ | O jogo deve ser iniciado<br\> | ||
+ | S.A. deve enviar um comando para pausar/restartar para S.S.<br\> | ||
+ | S.S. encaminha o pedido para o S.R.<br\> | ||
+ | S.R. executa o pedido<br\> | ||
+ | |||
+ | |||
+ | '''Caso de uso:'''Recebe informações<br\> | ||
+ | '''Identificador:''' CSU02;<br\> | ||
+ | '''Sumário:'''Com cadastro e autenticação previamente concluídas, o SR tem condições de receber os dados do jogo do SS: coordenadas inicial e das caças, modo de operação, etc.;<br\> | ||
+ | '''Ator primário:''' Sistema Supervisório;<br\> | ||
+ | '''Pré condições:'''<br\> | ||
+ | Robô já ter sido cadastrado;<br\> | ||
+ | O robô já ter se autenticado;<br\> | ||
+ | '''Fluxo Principal:'''<br\> | ||
+ | SS envia os dados para o robô para início do jogo;<br\> | ||
+ | SR processa os dados e define sua posição inicial e mapeia as caças do jogo;<br\> | ||
+ | |||
+ | |||
+ | '''Caso de uso:''' Envia dados<br\> | ||
+ | '''Identificador:'''CSU023;<br\> | ||
+ | '''Sumário:'''Com cadastro e autenticação previamente concluídas, o SR tem condições de enviar os dados do jogo ao SS: posição.<br\> | ||
+ | '''Ator primário:''' Sistema Supervisório;<br\> | ||
+ | '''Pré condições:'''<br\> | ||
+ | Robô já ter sido cadastrado;<br\> | ||
+ | O robô já ter se autenticado;<br\> | ||
+ | '''Fluxo Principal:'''<br\> | ||
+ | SS envia os dados para início do jogo;<br\> | ||
+ | SR processa os dados e define sua posição inicial e mapeia as caças do jogo.<br\> | ||
+ | |||
+ | |||
+ | '''Caso de uso:''' Movimenta-se automaticamente<br\> | ||
+ | '''Identificador:''' CSU04;<br\> | ||
+ | '''Sumário:'''Uma vez definido como operação automática, o algoritmo de busca das caças, anteriormente declaradas através de coordenadas, é executado, tendo como fonte de informação os sensores do robô - luminosidade (cor) e ultrassônico(distância), além de contar com os motores para deslocamento;<br\> | ||
+ | '''Atores primários:''' Sensores, Motores;<br\> | ||
+ | '''Pré condições:'''<br\> | ||
+ | Ter recebido os dados com sucesso;<br\> | ||
+ | Posição inicial correta (0,0 ou 20,20);<br\> | ||
+ | '''Fluxo Principal:'''<br\> | ||
+ | Acionar sensores;<br\> | ||
+ | Acionar motores;<br\> | ||
+ | Ao se deparar com uma caça, enviar informação ao SS;<br\> | ||
+ | '''Fluxo de exceção:'''<br\> | ||
+ | Obstáculo próximo (mudar trajetória);<br\> | ||
+ | Se pausar, o robô fica parado esperando o retorno do jogo<br\> | ||
+ | Se terminar o jogo o robô deverá voltar ao ponto inicial;<br\> | ||
+ | Se recebe falha de validação da caça;<br\> | ||
+ | |||
+ | |||
+ | '''Caso de uso:''' Movimenta-se manualmente<br\> | ||
+ | '''Identificador:''' CSU05;<br\> | ||
+ | '''Sumário:''' O controle do robô e envio das informações de caças não ficam a cargo do SR;<br\> | ||
+ | '''Ator primário:''' Sistema Supervisório, Motores;<br\> | ||
+ | '''Pré condições:'''<br\> | ||
+ | Posição inicial correta (0,0 ou 20,20);<br\> | ||
+ | '''Fluxo Principal:'''<br\> | ||
+ | Usuário controla livremente o robô através de uma interface gráfica simplista. <br\> | ||
+ | |||
+ | |||
+ | '''Caso de uso:''' Obtém caça<br\> | ||
+ | '''Identificador:''' CSU06;<br\> | ||
+ | '''Sumário:'''SR informa à SS as caças conquistadas;<br\> | ||
+ | '''Ator primário:''' Sistema Supervisório, Motores;<br\> | ||
+ | '''Pré condições:''' | ||
+ | Robô já ter sido cadastrado;<br\> | ||
+ | O robô já ter se autenticado;<br\> | ||
+ | '''Fluxo Principal:'''<br\> | ||
+ | SS envia os dados para atualização de caça conquistada;<br\> | ||
+ | SS envia os dados para SA<br\> | ||
+ | Caso a caça seja validada, o placar é atualizado<br\> | ||
+ | Robô parte em busca da próxima<br\> | ||
+ | |||
+ | |||
+ | '''Caso de uso:''' Verifica tabuleiro<br\> | ||
+ | '''Identificador:''' CSU07;<br\> | ||
+ | '''Sumário:''' Neste modo a SS envia as informações de caça ao robô;<br\> | ||
+ | '''Ator primário:''' Sistema Supervisório, Motores;<br\> | ||
+ | '''Pré condições:'''<br\> | ||
+ | Robô já ter sido cadastrado;<br\> | ||
+ | O robô já ter se autenticado;<br\> | ||
+ | '''Fluxo Principal:'''<br\> | ||
+ | SS envia os dados para atualização de caça conquistada;<br\> | ||
+ | SR processa os dados e mapeia novas caças do jogo;<br\> | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | {{collapse bottom}} | ||
+ | {{collapse top | Casos de Uso S.S. 08/04/2019}} | ||
+ | |||
+ | |||
+ | |||
+ | '''Caso de uso:'''Verifica Log in | ||
+ | '''Identificador:''' CSU01; | ||
+ | '''Sumário:''' Jogador realiza o procedimento de cadastro, robô recebe o MAC e a cor. | ||
+ | '''Ator primário:'''Jogador; | ||
+ | '''Fluxo Principal:'''<br\> | ||
+ | Jogador realiza o procedimento de cadastro | ||
+ | Robô recebe o MAC e a cor do robô | ||
+ | '''Fluxo de exceção:'''<br\> | ||
+ | Identificação não cadastrada, cadastrar identificação. | ||
+ | |||
+ | |||
+ | '''Caso de uso:''' Recebe ID | ||
+ | '''Identificador:''' CSU02; | ||
+ | '''Sumário:'''Jogador realiza o procedimento de cadastro, robô recebe o MAC e a cor. | ||
+ | '''Ator primário:''' Jogador; | ||
+ | '''Pré condições:'''<br\> | ||
+ | '''Fluxo Principal:'''<br\> | ||
+ | .Jogador realiza o procedimento de cadastro | ||
+ | .Robô recebe o MAC e a cor do robô | ||
+ | '''Fluxo de exceção:'''<br\> | ||
+ | Identificação não cadastrada, cadastrar identificação. | ||
+ | |||
+ | |||
+ | '''Caso de uso:''' Requisita Mac | ||
+ | '''Identificador:''' CSU03; | ||
+ | '''Sumário:''' Jogador realiza o procedimento de cadastro, robô recebe o MAC e a cor. | ||
+ | '''Ator primário:''' SR; | ||
+ | '''Pré condições:'''<br\> | ||
+ | '''Fluxo Principal:'''<br\> | ||
+ | Jogador realiza o procedimento de cadastro | ||
+ | Robô recebe o MAC e a cor do robô | ||
+ | '''Fluxo de exceção:'''<br\> | ||
+ | Identificação não cadastrada, cadastrar identificação. | ||
+ | |||
+ | |||
+ | '''Caso de uso:''' Avisa posição | ||
+ | '''Identificador:''' CSU04; | ||
+ | '''Sumário:''' SR passa a informação de sua posição para o SA, para que se possa atualizar o tabuleiro; | ||
+ | '''Ator primário:''' SR; | ||
+ | '''Pré condições:'''<br\> | ||
+ | Robô já ter sido cadastrado; | ||
+ | O robô já ter se autenticado; | ||
+ | '''Fluxo Principal:'''<br\> | ||
+ | SA recebe os dados de onde o robô está no tabuleiro; | ||
+ | SA atualiza o tabuleiro | ||
+ | |||
+ | |||
+ | '''Caso de uso:''' Atualiza tabuleiro | ||
+ | '''Identificador:''' CSU05; | ||
+ | '''Sumário:''' SA tem conhecimento da posição do robô no tabuleiro; | ||
+ | '''Ator primário:''' SA e SR; | ||
+ | '''Pré condições:'''<br\> | ||
+ | Robô já ter sido cadastrado; | ||
+ | O robô já ter se autenticado; | ||
+ | '''Fluxo Principal:'''<br\> | ||
+ | SA recebe os dados de onde o robô está no tabuleiro; | ||
+ | SA atualiza o tabuleiro | ||
+ | |||
+ | |||
+ | '''Caso de uso:''' Modo Movimentação Automática | ||
+ | '''Identificador:''' CSU06; | ||
+ | '''Sumário:'''SR se utilizar de seu algoritmo de inteligência interno para obter o maior número de caças no melhor prazo de tempo; | ||
+ | '''Ator primário:''' SR; | ||
+ | '''Pré condições:'''<br\> | ||
+ | Jogo ter iniciado; | ||
+ | Modo automático ativado; | ||
+ | Tabuleiro estar atualizado com a localização das caças. | ||
+ | '''Fluxo Principal:'''<br\> | ||
+ | Jogo iniciado em modo automático; | ||
+ | SR recebe informações do tabuleiro das caças; | ||
+ | SR utiliza algoritmo de inteligência para obter as caças. | ||
+ | |||
+ | |||
+ | '''Caso de uso:'''Modo Movimentação Manual | ||
+ | '''Identificador:''' CSU07; | ||
+ | '''Sumário:'''Jogador decide a movimentação do robô; | ||
+ | '''Ator primário:''' Jogador; | ||
+ | '''Pré condições:'''<br\> | ||
+ | Jogo ter iniciado; | ||
+ | Modo manual ativado; | ||
+ | Tabuleiro estar atualizado com a localização das caças. | ||
+ | '''Fluxo Principal:'''<br\> | ||
+ | Jogo iniciado em modo automático; | ||
+ | Jogador verifica a posição das caças; | ||
+ | Jogador guia o robô para obter as caças. | ||
+ | |||
+ | |||
+ | '''Caso de uso:''' Inicia a partida | ||
+ | '''Identificador:''' CSU08; | ||
+ | '''Sumário:''' SA inicia a partida. | ||
+ | '''Ator primário:'''SA; | ||
+ | '''Pré condições:'''<br\> | ||
+ | |||
+ | Robô já ter sido cadastrado; | ||
+ | O robô já ter se autenticado; | ||
+ | '''Fluxo Principal:'''<br\> | ||
+ | SA recebe a informação do cliente externo de que deve iniciar a partida.; | ||
+ | |||
+ | |||
+ | '''Caso de uso:''' Pausa/Reinicia | ||
+ | '''Identificador:''' CSU09; | ||
+ | '''Sumário:''' SA pausa, para ou inicia a partida de acordo com a vontade do jogador ou caso algum robô tenha ganhado.; | ||
+ | '''Ator primário:''' SA; | ||
+ | '''Pré condições:'''<br\> | ||
+ | Robô já ter sido cadastrado; | ||
+ | O robô já ter se autenticado; | ||
+ | '''Fluxo Principal:'''<br\> | ||
+ | Caso o jogador solicite ao árbitro para iniciar a partida ou pausar a partida; | ||
+ | Se o árbitro decidir pausar, O SA comunica ao SS a pausa | ||
+ | O SS para o movimento de todos os robôs e aguarda o sinal para voltar. | ||
+ | Quando recebe o sinal para voltar o jogo continua normalmente. | ||
+ | |||
+ | |||
+ | '''Caso de uso:''' Finaliza a partida | ||
+ | '''Identificador:''' CSU10; | ||
+ | '''Sumário:''' SA finaliza a partida. | ||
+ | '''Ator primário:''' SA; | ||
+ | '''Pré condições:'''<br\> | ||
+ | Robô já ter sido cadastrado; | ||
+ | Robô já ter se autenticado; | ||
+ | '''Fluxo Principal:'''<br\> | ||
+ | SA verifica as caças.; | ||
+ | SA finaliza a partida caso caças sejam válidas. | ||
+ | |||
+ | |||
+ | '''Caso de uso:''' Sorteia caças | ||
+ | '''Identificador:''' CSU11; | ||
+ | '''Sumário:''' SA sorteia as caças, passa para a SS, que envia para SR. | ||
+ | '''Ator primário:''' SA; | ||
+ | '''Pré condições:'''<br\> | ||
+ | Robô já ter sido cadastrado; | ||
+ | O robô já ter se autenticado; | ||
+ | '''Fluxo Principal:'''<br\> | ||
+ | SA sorteia as caças ; | ||
+ | SA envia as posições das caças ao SS ; | ||
+ | SS repassa as posições das caças ao SR. | ||
+ | |||
+ | |||
+ | '''Caso de uso:'''Valida caça (manual) | ||
+ | '''Identificador:''' CSU12; | ||
+ | '''Sumário:'''O jogador deve informar quando pega a caça, para que a SA valide. | ||
+ | '''Ator primário:''' Jogador; | ||
+ | '''Pré condições:'''<br\> | ||
+ | Robô deve estar em cima da caça; | ||
+ | Jogador deve informar que pegou a caça; | ||
+ | SA deve então avaliar a validade da caça. | ||
+ | '''Fluxo Principal:'''<br\> | ||
+ | Jogador acha a caça; | ||
+ | A caça é validada; | ||
+ | A lista de caças é atualizada; | ||
+ | |||
+ | |||
+ | '''Caso de uso:''' Valida caça (automático) | ||
+ | '''Identificador:''' CSU13; | ||
+ | '''Sumário:''' SR a partir do seu algoritmo de inteligência encontra a caça, envia a posição para o SS, que verifica a validade no SA. | ||
+ | '''Ator primário:''' SS; | ||
+ | '''Pré condições:'''<br\> | ||
+ | SR deve ter encontrado uma caça. | ||
+ | '''Fluxo Principal:'''<br\> | ||
+ | Algoritmo de inteligência do SR manda o robô para uma posição onde tem uma caça; | ||
+ | SR manda a localização do robô ao SS; | ||
+ | SS informa ao SA que verifica a validade. | ||
+ | |||
+ | |||
+ | |||
+ | {{collapse bottom}} | ||
== Diagramas: == | == Diagramas: == | ||
Linha 26: | Linha 699: | ||
RF01 O sistema deve permitir criação e gerência de cadastro de um robô. | RF01 O sistema deve permitir criação e gerência de cadastro de um robô. | ||
− | ID, Senha, Cor do robô. | + | ''ID, Senha, Cor do robô.'' |
RF02 O sistema de deve manter um histórico das partidas realizadas. | RF02 O sistema de deve manter um histórico das partidas realizadas. | ||
− | Participantes, Vencedor, duração, pontuação. | + | ''Participantes, Vencedor, duração, pontuação.'' |
RF03 O sistema deve ser capaz de fazer a autenticação dos robôs cadastrados. | RF03 O sistema deve ser capaz de fazer a autenticação dos robôs cadastrados. | ||
− | Busca num banco de dados ID, se a ID estiver lá, verifica se a senha bate com a do banco. | + | ''Busca num banco de dados ID, se a ID estiver lá, verifica se a senha bate com a do banco.'' |
RF04 os robôs devem ser capazes de operar nos modos manual e autônomo. | RF04 os robôs devem ser capazes de operar nos modos manual e autônomo. | ||
− | Troca seria realizada na mesma interface onde faz o cadastro. | + | ''Troca seria realizada na mesma interface onde faz o cadastro.'' |
RF05 O sistema deve validar e contabilizar as caças já encontradas pelo robô. | RF05 O sistema deve validar e contabilizar as caças já encontradas pelo robô. | ||
Linha 44: | Linha 717: | ||
RF06 O sistema deve dar início a partida, sortear os locais das caças e informá-los aos robôs. | RF06 O sistema deve dar início a partida, sortear os locais das caças e informá-los aos robôs. | ||
− | Quantas caças deverão ter? | + | ''Quantas caças deverão ter?'' |
RF07 O sistema deve prover uma interface de monitoramento para o robô em modo autônomo. | RF07 O sistema deve prover uma interface de monitoramento para o robô em modo autônomo. | ||
− | Um mapa mostrando as caças e a posição de cada robô? | + | ''Um mapa mostrando as caças e a posição de cada robô?'' |
RF08 O sistema deve prover uma interface de controle e monitoramento para os robôs em modo manual. | RF08 O sistema deve prover uma interface de controle e monitoramento para os robôs em modo manual. | ||
− | Estender a interface do modo autônomo. | + | ''Estender a interface do modo autônomo.'' |
RF09 O sistema deve permitir que, quando em modo autônomo, o robô execute os movimentos programados a partir do algoritmo implementado. | RF09 O sistema deve permitir que, quando em modo autônomo, o robô execute os movimentos programados a partir do algoritmo implementado. | ||
− | Como assim? | + | ''Como assim?'' |
RF010 O sistema deve permitir pausa e reset da partida. | RF010 O sistema deve permitir pausa e reset da partida. | ||
− | Por onde será feito isso? | + | ''Por onde será feito isso?'' |
RF011 O sistema deve permitir que os resultados do jogo sejam vistos pelos espectadores em tempo real. | RF011 O sistema deve permitir que os resultados do jogo sejam vistos pelos espectadores em tempo real. | ||
− | Será exibido na interface de controle/monitoramento | + | ''Será exibido na interface de controle/monitoramento'' |
RF012 O sistema não deve permitir que os robôs se choquem. | RF012 O sistema não deve permitir que os robôs se choquem. | ||
Linha 74: | Linha 747: | ||
RF015 O sistema deve projetar informações no tabuleiro (Caças ativas, Caças encontradas, e placar) | RF015 O sistema deve projetar informações no tabuleiro (Caças ativas, Caças encontradas, e placar) | ||
− | Requisitos não funcionais | + | ''Requisitos não funcionais'' |
RNF01 A interface do sistema de comunicação com o usuário deve ser intuitiva. | RNF01 A interface do sistema de comunicação com o usuário deve ser intuitiva. | ||
Linha 80: | Linha 753: | ||
RNF02 O tabuleiro será composto por linhas pretas e todos com cor. | RNF02 O tabuleiro será composto por linhas pretas e todos com cor. | ||
− | Todos o que? | + | ''Todos o que?'' |
RNF03 O tabuleiro terá as dimensões definidas (2m x 2m). | RNF03 O tabuleiro terá as dimensões definidas (2m x 2m). | ||
− | Pode ser ajustável? | + | ''Pode ser ajustável?'' |
RNF04 O tabuleiro será composto por 100 quadrados de dimensões: 20cm x 20cm. | RNF04 O tabuleiro será composto por 100 quadrados de dimensões: 20cm x 20cm. | ||
− | Pode ser ajustável?² | + | ''Pode ser ajustável?²'' |
RNF05 O tabuleiro será limitado por uma borda vermelha. | RNF05 O tabuleiro será limitado por uma borda vermelha. | ||
Linha 100: | Linha 773: | ||
{{collapse bottom}} | {{collapse bottom}} | ||
− | {{collapse top | Diagrama de Caso de Uso S.R}} | + | {{collapse top | Diagrama de Caso de Uso S.R 08/04/19}} |
+ | |||
+ | [[Arquivo:sr-diagrama-caso-de-uso2.png]] | ||
+ | |||
+ | {{collapse bottom}} | ||
+ | |||
+ | {{collapse top | Diagrama de Caso de Uso S.S }} | ||
+ | |||
+ | [[Arquivo:ss-diagrama-caso-de-uso-f.png]] | ||
+ | |||
+ | {{collapse bottom}} | ||
+ | |||
+ | {{collapse top | Diagrama de Classe: Mover}} | ||
+ | |||
+ | [[Arquivo:diagrama-classe-mover.png]] | ||
+ | |||
+ | {{collapse bottom}} | ||
+ | |||
+ | {{collapse top | Diagrama de Caso de Uso S.S. 08/04/19 }} | ||
+ | |||
+ | [[Arquivo: ss.png]] | ||
+ | |||
+ | {{collapse bottom}} | ||
+ | |||
+ | {{collapse top | Requisitos funcionais S.S}} | ||
+ | |||
+ | Nome: Verifica Log in | ||
+ | |||
+ | Identificador: CSU01; | ||
+ | |||
+ | Sumário: SA autentica o log in do robô ; | ||
+ | |||
+ | Ator primário: SA; | ||
+ | |||
+ | Precondições: | ||
+ | |||
+ | Fluxo principal: | ||
+ | |||
+ | SA solicita a SS sua identificação; | ||
+ | |||
+ | SS responde com a identificação; | ||
+ | |||
+ | Fluxo de exceção: | ||
+ | |||
+ | Identificação não cadastrada, cadastrar identificação. | ||
+ | |||
+ | |||
+ | Nome: Verifica posição no tabuleiro | ||
+ | |||
+ | Identificador: CSU02; | ||
+ | |||
+ | Sumário: SA tem conhecimento da posição do robô no tabuleiro, assim como ele mesmo ; | ||
+ | |||
+ | Ator primário: SA e SR; | ||
+ | |||
+ | Precondições: | ||
+ | |||
+ | Robô já ter sido cadastrado; | ||
+ | |||
+ | O robô já ter se autenticado; | ||
+ | |||
+ | Fluxo principal: | ||
+ | |||
+ | SA recebe os dados de onde o robô está no tabuleiro; | ||
+ | |||
+ | SR toma conhecimento de sua posição; | ||
+ | |||
+ | Nome: Recebe dados | ||
+ | |||
+ | Identificador: CSU03; | ||
+ | |||
+ | Sumário: SR recebe dados da partida através do SA de início, pausa e fim da partida, validação de caças . | ||
− | + | Ator primário: SR e SA; | |
+ | |||
+ | Precondições: | ||
+ | |||
+ | Robô já ter sido cadastrado; | ||
+ | |||
+ | O robô já ter se autenticado; | ||
+ | |||
+ | Fluxo principal: | ||
+ | |||
+ | SA envia dados de início, pausa e fim da partida (quando um jogador ganha) e valida as caças que o robõ pegou; | ||
+ | |||
+ | SR processa os dados e define sua posição inicial e mapeia as caças do jogo. | ||
+ | |||
+ | |||
+ | Nome: Inicia a partida, sorteia as caças | ||
+ | |||
+ | Identificador: CSU04; | ||
+ | |||
+ | Sumário: SA inicia a partida e sorteia as caças. | ||
+ | |||
+ | Atores primários: SA; | ||
+ | |||
+ | Precondições: | ||
+ | |||
+ | |||
+ | Robô já ter sido cadastrado; | ||
+ | |||
+ | O robô já ter se autenticado; | ||
+ | |||
+ | Fluxo principal: | ||
+ | |||
+ | SA recebe a informação do cliente externo de que deve iniciar a partida, então sorteia as caças.; | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | Nome: Declara vencedor | ||
+ | |||
+ | Identificador: CSU06; | ||
+ | |||
+ | Sumário: SA faz a contagem de caças válidas e declara vencedor. | ||
+ | |||
+ | Ator primário: SA;; | ||
+ | |||
+ | |||
+ | Precondições: | ||
+ | |||
+ | Robô já ter sido cadastrado; | ||
+ | |||
+ | O robô já ter se autenticado; | ||
+ | |||
+ | Fluxo principal: | ||
+ | |||
+ | SA envia dados do robô que obteve o maior número de caças válidas, portanto do o vencedor.; | ||
+ | |||
+ | SA finaliza a partida.. | ||
+ | |||
+ | Nome: Pause/Start | ||
+ | |||
+ | Identificador: CSU07; | ||
+ | |||
+ | Sumário: SA pausa, para ou inicia a partida de acordo com a vontade do cliente externo ou caso algum robô tenha ganhado.; | ||
+ | |||
+ | Ator primário: SA; | ||
+ | |||
+ | Precondições: | ||
+ | |||
+ | Robô já ter sido cadastrado; | ||
+ | |||
+ | O robô já ter se autenticado; | ||
+ | |||
+ | Fluxo principal: | ||
+ | |||
+ | SA verifica se cliente externo deseja iniciar a partida ou pausar a partida; | ||
+ | |||
+ | SA verifica se as caças válidas do robô; | ||
+ | |||
+ | SA verifica ganhador; | ||
+ | |||
+ | SA finaliza a partida.; | ||
{{collapse bottom}} | {{collapse bottom}} | ||
− | {{collapse top | Diagrama de Caso de Uso | + | {{collapse top | Diagrama de Caso de Uso SA 08/04/19}} |
− | [[Arquivo: | + | [[Arquivo: sa.png]] |
{{collapse bottom}} | {{collapse bottom}} | ||
Linha 128: | Linha 952: | ||
*Colocar documentação das APIs usadas* | *Colocar documentação das APIs usadas* | ||
+ | |||
+ | ==Mensagens== | ||
+ | {{collapse top | Mensagens - Sistema do Robô}} | ||
+ | |||
+ | '''Caso de uso''' - Origem - Destino - '''mensagem''' <br\> | ||
+ | '''Autentiticar''' - SS - SR - Identificação do SS + "|" + mensagem "autenticado"<br\> | ||
+ | '''Receber atualização''' - SS - SR - numero de caça + localização das caça, numero de competidores + localização de competidores <br\> | ||
+ | '''Enviar atualização''' - SR - SS - Cor Robô + Localização (linha, coluna) .<br\> | ||
+ | '''Movimentar manual''' - SS - SR - Direção .<br\> | ||
+ | '''Validar caça''' - SR - SS - mensagem que encontrou caça + Cor Robô + Localização (linha, coluna)<br\> | ||
+ | '''Iniciar partida''' - SS - SR - Solicita Localização <br\> | ||
+ | '''Iniciar partida''' - SR - SS - informa Localização <br\> | ||
+ | '''Iniciar partida''' - SS - SR - Modo de uso,numero de caças, numero de competidores + cor do Robô <br\> | ||
+ | '''Iniciar partida''' - SS - SR - numero de caças, Localização das caças <br\> | ||
+ | '''Pausar/continuar''' - SS - SR - mensagem de pausa ou continua <br\> | ||
+ | '''Terminar partida''' - SS - SR - mensagem de fim de jogo <br\> | ||
+ | {{collapse bottom}} | ||
+ | |||
+ | {{collapse top | Mensagens - Sistema Supervisório}} | ||
+ | '''Caso de uso''' - Origem - Destino - '''mensagem''' <br\> | ||
+ | '''Autentiticar ao Robô''' - SS - SR - Identificação do SS + "|" + mensagem "autenticado"<br\> | ||
+ | '''Autentiticar ao Robô''' - SR - SS - MAC do Robô<br\> | ||
+ | '''Enviar atualização''' - SR - SS - Cor Robô + Localização (linha, coluna) .<br\> | ||
+ | '''Enviar atualização''' - SS - SA - Cor Robô + Localização (linha, coluna) .<br\> | ||
+ | '''Validar caça autonoma''' - SR - SS - mensagem que encontrou caça + Cor Robô + Localização (linha, coluna) <br\> | ||
+ | '''Validar caça autonoma''' - SS - SA - mensagem que encontrou caça + Cor Robô + Localização (linha, coluna) <br\> | ||
+ | '''Iniciar partida''' - SS - SR - Solicita Localização <br\> | ||
+ | '''Iniciar partida''' - SR - SS - informa Localização <br\> | ||
+ | '''Iniciar partida''' - SS - SA - informa Localização do Robô <br\> | ||
+ | '''Iniciar partida''' - SA - SS - Modo de uso,numero de caças, numero de competidores + cor do Robô <br\> | ||
+ | '''Iniciar partida''' - SS - SR - Modo de uso,numero de caças, numero de competidores + cor do Robô <br\> | ||
+ | '''Iniciar partida''' - SA - SS - numero de caças, Localização das caças <br\> | ||
+ | '''Iniciar partida''' - SS - SR - numero de caças, Localização das caças <br\> | ||
+ | '''Conectar Robô''' - SS - SA - MAC do Robô<br\> | ||
+ | '''Receber atualização''' - SA - SS - numero de caça + localização das caça, numero de competidores + localização de competidores <br\> | ||
+ | '''Receber atualização''' - SS - SR - numero de caça + localização das caça, numero de competidores + localização de competidores <br\> | ||
+ | '''Pausar/continuar''' - SA - SS - mensagem de pausa ou continua <br\> | ||
+ | '''Pausar/continuar''' - SS - SR - mensagem de pausa ou continua <br\> | ||
+ | '''Declarar Vencedor''' - SA - SS - Vencedor + Cor do Robô vencedor <br\> | ||
+ | '''Terminar partida''' - SA - SS - mensagem de fim de jogo <br\> | ||
+ | '''Terminar partida''' - SS - SR - mensagem de fim de jogo <br\> | ||
+ | '''Movimentar manual''' - J1 - SS - Direção .<br\> | ||
+ | '''Movimentar manual''' - SS - SR - Direção .<br\> | ||
+ | '''Validar caça autonoma''' - J1 - SS - mensagem que encontrou caça + numero da caça + Cor Robô <br\> | ||
+ | '''Validar caça autonoma''' - SS - SA - mensagem que encontrou caça + numero da caça + Cor Robô <br\> | ||
+ | {{collapse bottom}} | ||
+ | {{collapse top | Mensagens - Sistema Arbitrário}} | ||
+ | '''Caso de uso''' - Origem - Destino - '''mensagem''' <br\> | ||
+ | '''Pausar/continuar''' - A1 - SA - mensagem de pausa ou continua <br\> | ||
+ | '''Pausar/continuar''' - SA - SS - mensagem de pausa ou continua <br\> | ||
+ | '''Cadastrar''' - A1 - SA - mensagem add + MAC do robô <br\> | ||
+ | '''Cadastrar''' - SA - DB - mensagem add + MAC do robô <br\> | ||
+ | '''Deletar''' - A1 - SA - mensagem deletar<br\> | ||
+ | '''Deletar''' - SA - DB - requisição da lista de robô <br\> | ||
+ | '''Deletar''' - DB - SA - numero de Robôs cadastrados + lista de Robô <br\> | ||
+ | '''Deletar''' - SA - A1 - numero de Robôs cadastrados + lista de Robô <br\> | ||
+ | '''Deletar''' - A1 - SA - id do robô a ser deletado<br\> | ||
+ | '''Deletar''' - SA - DB - id do robô a ser deletado <br\> | ||
+ | '''Consultar Robô''' - A1 - SA - mensagem consultar robô<br\> | ||
+ | '''Consultar Robô''' - SA - DB - requisição da lista de robô <br\> | ||
+ | '''Consultar Robô''' - DB - SA - numero de Robôs cadastrados + lista de Robô <br\> | ||
+ | '''Consultar Robô''' - SA - A1 - numero de Robôs cadastrados + lista de Robô <br\> | ||
+ | '''Consultar histórico''' - A1 - SA - mensagem consultar Histórico<br\> | ||
+ | '''Consultar histórico''' - SA - DB - requisição da lista de partidas <br\> | ||
+ | '''Consultar histórico''' - DB - SA - numero de partidas + lista de partida(id partida, data, numero de participantes, participantes, vencedor) <br\> | ||
+ | '''Consultar histórico''' - SA - A1 - numero de partidas + lista de partida(id partida, data, numero de participantes, participantes, vencedor) <br\> | ||
+ | '''Iniciar partida''' - A1 - SA - mensagem iniciar partida <br\> | ||
+ | '''Iniciar partida''' - SA - A1 - questiona quantos jogadores <br\> | ||
+ | '''Iniciar partida''' - A1 - SA - numero de jogadores da partida <br\> | ||
+ | '''Iniciar partida''' - SA - A1 - questiona modo de jogo <br\> | ||
+ | '''Iniciar partida''' - A1 - SA - modo de jogo <br\> | ||
+ | '''Iniciar partida''' - SA - A1 - questiona numero de caça <br\> | ||
+ | '''Iniciar partida''' - A1 - SA - numero de caça <br\> | ||
+ | '''Iniciar partida''' - SS - SA - informa Localização do Robô <br\> | ||
+ | '''Iniciar partida''' - SA - SS - Modo de uso,numero de caças, numero de competidores + cor do Robô <br\> | ||
+ | '''Iniciar partida''' - SA - SS - numero de caças, Localização das caças <br\> | ||
+ | '''Terminar partida''' - A1 - SA - mensagem de fim de jogo <br\> | ||
+ | '''Terminar partida''' - SA - SS - mensagem de fim de jogo <br\> | ||
+ | '''Conectar Robô''' - SS - SA - MAC do Robô <br\> | ||
+ | '''Conectar Robô''' - SA - DB - consultar MAC do Robô <br\> | ||
+ | '''Conectar Robô''' - DB - SA - confirma que o Robô está cadastro <br\> | ||
+ | '''Conectar Robô''' - SA - SS - Confirma autentificação <br\> | ||
+ | '''Validar caça ''' - SS - SA - mensagem que encontrou caça + Cor Robô + Localização (linha, coluna) (autônomo)<br\> | ||
+ | '''Validar caça ''' - SS - SA - mensagem que encontrou caça + numero da caça + Cor Robô (manual)<br\> | ||
+ | '''Receber atualização''' - SS - SA - Cor Robô + Localização (linha, coluna) .<br\> | ||
+ | '''Enviar atualização''' - SA - SS - numero de caça + localização das caça, numero de competidores + localização de competidores <br\> | ||
+ | '''Declarar Vencedor''' - SA - SS - Vencedor + Cor do Robô vencedor <br\> | ||
+ | '''Salvar histórico''' - SA - DB - id partida, data, numero de participantes, participantes, vencedor <br\> | ||
+ | {{collapse bottom}} |
Edição atual tal como às 15h13min de 8 de julho de 2019
Alunos:
Suyan M. V. Moura. (suyan.m@aluno.ifsc.edu.br)
Yara Karoline Garcia. (yara.k@aluno.ifsc.edu.br)
Link repositório Git:
https://github.com/SuyKingsleigh/PJI-2
Atualizações:
Cronograma:
Diagramas de Sequência:
Diagramas de Classe:
Casos de Uso:
Caso de uso S.A |
---|
Nome: Verifica tabuleiro Identificador: CSU.SA 01 Sumário: Inicia a conexão entre S.A S.S Ator primário: S.S Fluxo principal: S.S envia ao S.A uma mensagem contendo o nome do robô, cor e senha. S.A válida os dados ou não. Fluxo de exceções: Senha errada o Login errado: Simplesmente envia uma mensagem ao S.S informando-o que não foi possível conectar devido a login e/ou senha errado(s) Nome: Acessa histórico Identificador: CSU.SA 02 Sumário: Envia histórico de partidas ao cliente. Ator primário: S.A. Précondições: CSU.SA 01 Fluxo principal: S.S. solicita histórico de partidas ao S.A. S.A procura em seu banco de dados o histórico daquele cliente Caso tenha algo, envia o histórico, caso contrário informa que não há histórico.
Identificador: CSU.SA 03 Sumário: Inicia a partida, sorteando as caças e informando aos robôs suas posições Ator primário: S.A Fluxo principal: Gera as posições das caças Informa a todos Espera ack de todos para iniciar de fato. Fluxo de exeção Não recebeu ack de todos os robôs Envia novamente.
Nome: Valida caça. Identificador: CSU.SA 04 Sumário: Válida ou não a caça de um robô Ator primário: SA. A partida ter começado (CSU.SA 03) Fluxo principal: Recebe mensagem de caça obtida de algum determinado S.S S.A verifica se realmente aquela caça é válida ou não Caso seja validada, incrementa o placar e atualiza as caças, informado aos outros S.S. Nome: Recebe informações dos robôs. Identificador: CSU.SA 05 Sumário: Recebe dados de movimentação dos robôs. Précondições: CSU.SA 03 Ator primário: S.A. Fluxo principal: S.S informa a posição de seu respectivo robô ao S.A S.A processa a informação S.A informa ao S.S a posição de outros robôs para evitar colisões.
Identificador: CSU.SA 06 Sumário: Finaliza uma partida declarando o vencedor. Ator primário: S.A. Précondições: CSU.SA 03 Fluxo principal: Calcula a pontuação Informa a pontuação aos jogadores. Salva histórico de partida.
Identificador: CSU.SA 07 Sumário: Pausa a partida caso o árbitro decida. Ator primário: S.A. Précondições: CSU.SA 03 Fluxo principal: Envia mensagem de pause para os S.S. Espera ACK Uma vez todos os ACKs recebido, aguarda o recomeço da partida. Recomeça a partida de onde fora pausada. |
Casos de Uso Sistema Arbitrário 08/04/2019 |
---|
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\>
<br\> Caso de uso: Cadastrar <br\> Ator primário: Árbitro<br\> Identificador: UCA02<br\> Sumário: Árbitro solicita o registro do Robô.<br\> Pré condições: O Árbitro deverá saber as informações do Robô.<br\> Fluxo Principal:<br\>
<br\> Caso de uso: Deletar Robô <br\> Ator primário: Árbitro <br\> Identificador: UCA03<br\> Sumário: Árbitro deleta um Robô cadastrado.<br\> Pré condições: O Robô a ser deletado deve estar cadastrado.<br\> Fluxo Principal:<br\>
<br\> Caso de uso: Consultar robôs <br\> Ator primário: Árbitro <br\> Identificador: UCA04<br\> Sumário: Árbitro consulta todos os Robôs cadastrados.<br\> Pré condições: Pelo menos um Robô deve estar cadastrado.<br\> Fluxo Principal:<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 partidas.<br\> Pré condições: Ter ocorrido o término de pelo menos uma partida com um vencedor/empate.<br\> Fluxo Principal:<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: Ter no mínimo dois Robôs cadastrados.<br\> Fluxo Principal:<br\>
<br\> Caso de uso: Terminar Partida<br\> Ator primário: Árbitro <br\> Identificador: UCA07<br\> Sumário: O fim da partida é informado aos Sistema Supervisório.<br\> Pré condições: Declarar Vencedor.<br\> Fluxo Principal:<br\>
Exceção: Árbitro Termina a partida selecionado a opção "Terminar partida" antes do robô vencedor ser anunciado.<br\> <br\> Caso de uso: Conectar Robô <br\> Ator primário: Sistema Supervisório <br\> Identificador: UCA08<br\> Sumário: Sistema Supervisório envia solicitação de conexão para Sistema Arbitrário.<br\> Pré condições: O Robô deve estar autenticado no Sistema Supervisório, o Robô já deve estar cadastrado, partida deve ter sido criada.<br\> Fluxo Principal:<br\>
Exceção: Caso o Robô não tenha sido cadastrado, um cadastro deverá ser efetuado.<br\> <br\> Caso de uso: Validar caça<br\> Ator primário: Sistema Supervisório <br\> Identificador: UCA09<br\> Sumário: Sistema Supervisório 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\>
Exceção: Árbitro não valida a caça.<br\> <br\> Caso de uso: Receber atualização<br\> Ator primário: Sistema Supervisório <br\> Identificador: UCA10<br\> Sumário: Sistema Supervisório informa a localização do Robô.<br\> Pré condições: A partida deve ter sido iniciada.<br\> Fluxo Principal:<br\>
<br\> Caso de uso: Enviar atualização<br\> Ator primário: Sistema Supervisório <br\> Identificador: UCA11<br\> Sumário: Sistema Arbitrário atualiza o Sistema Supervisório referente ao andamento do jogo.<br\> Pré condições: Iniciar Partida.<br\> Fluxo Principal:<br\>
<br\> Caso de uso: Atualizar mapa<br\> Ator primário: <br\> Identificador: UCA12<br\> Sumário: Sistema Arbitrário atualiza as informações do jogo após receber e enviar informações.<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: Sistema Supervisório <br\> Identificador: UCA13<br\> Sumário: O sistema declara o vencedor da partida após a última caça ser localizada.<br\> Pré condições: Validar caça.<br\> Fluxo Principal:<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 declarado, os dados da partida são armazenados.<br\> Pré condições: Declarar Vencedor.<br\> Fluxo Principal:<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\>
<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: Sistema Supervisório <br\> Identificador: UCA<br\> Sumário: O sistema declara o vencedor da partida após a última caça ser localizada.<br\> Pré condições: Validar caça.<br\> Fluxo Principal:<br\>
|
Casos de Uso Sistema Robô 08/04/2019 |
---|
Caso de uso: Start/Stop<br\> Identificador:CSU01;<br\> Sumário: SS recebe as informações de login, envia dados;<br\> Ator primário: S.A.;<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 iniciado e rodando<br\> Fluxo Principal:<br\> O jogo deve ser iniciado<br\> S.A. deve enviar um comando para pausar/restartar para S.S.<br\> S.S. encaminha o pedido para o S.R.<br\> S.R. executa o pedido<br\>
|
Casos de Uso S.S. 08/04/2019 |
---|
Caso de uso:Verifica Log in Identificador: CSU01; Sumário: Jogador realiza o procedimento de cadastro, robô recebe o MAC e a cor. Ator primário:Jogador; Fluxo Principal:<br\> Jogador realiza o procedimento de cadastro Robô recebe o MAC e a cor do robô Fluxo de exceção:<br\> Identificação não cadastrada, cadastrar identificação.
Modo automático ativado; Tabuleiro estar atualizado com a localização das caças. Fluxo Principal:<br\> Jogo iniciado em modo automático; SR recebe informações do tabuleiro das caças; SR utiliza algoritmo de inteligência para obter as caças.
Modo manual ativado; Tabuleiro estar atualizado com a localização das caças. Fluxo Principal:<br\> Jogo iniciado em modo automático; Jogador verifica a posição das caças; Jogador guia o robô para obter as caças.
Robô já ter sido cadastrado; O robô já ter se autenticado; Fluxo Principal:<br\> SA recebe a informação do cliente externo de que deve iniciar a partida.;
Robô já ter se autenticado; Fluxo Principal:<br\> SA verifica as caças.; SA finaliza a partida caso caças sejam válidas.
SA envia as posições das caças ao SS ; SS repassa as posições das caças ao SR.
A caça é validada; A lista de caças é atualizada;
|
Diagramas:
Requisitos funcionais S.R. |
---|
Requisitos funcionais RF01 O sistema deve permitir criação e gerência de cadastro de um robô. ID, Senha, Cor do robô. RF02 O sistema de deve manter um histórico das partidas realizadas. Participantes, Vencedor, duração, pontuação. RF03 O sistema deve ser capaz de fazer a autenticação dos robôs cadastrados. Busca num banco de dados ID, se a ID estiver lá, verifica se a senha bate com a do banco. RF04 os robôs devem ser capazes de operar nos modos manual e autônomo. Troca seria realizada na mesma interface onde faz o cadastro. RF05 O sistema deve validar e contabilizar as caças já encontradas pelo robô. RF06 O sistema deve dar início a partida, sortear os locais das caças e informá-los aos robôs. Quantas caças deverão ter? RF07 O sistema deve prover uma interface de monitoramento para o robô em modo autônomo. Um mapa mostrando as caças e a posição de cada robô? RF08 O sistema deve prover uma interface de controle e monitoramento para os robôs em modo manual. Estender a interface do modo autônomo. RF09 O sistema deve permitir que, quando em modo autônomo, o robô execute os movimentos programados a partir do algoritmo implementado. Como assim? RF010 O sistema deve permitir pausa e reset da partida. Por onde será feito isso? RF011 O sistema deve permitir que os resultados do jogo sejam vistos pelos espectadores em tempo real. Será exibido na interface de controle/monitoramento RF012 O sistema não deve permitir que os robôs se choquem. RF013 O sistema deve declarar um vencedor assim que todas as caças forem encontradas. RF014 O sistema pode ter N competidores * RF015 O sistema deve projetar informações no tabuleiro (Caças ativas, Caças encontradas, e placar) Requisitos não funcionais RNF01 A interface do sistema de comunicação com o usuário deve ser intuitiva. RNF02 O tabuleiro será composto por linhas pretas e todos com cor. Todos o que? RNF03 O tabuleiro terá as dimensões definidas (2m x 2m). Pode ser ajustável? RNF04 O tabuleiro será composto por 100 quadrados de dimensões: 20cm x 20cm. Pode ser ajustável?² RNF05 O tabuleiro será limitado por uma borda vermelha. RNF06 O placar mostrado aos usuários deve ser de fácil identificação. RNF07 O robô deve ter uma cor para identificação.
|
Requisitos funcionais S.S |
---|
Nome: Verifica Log in Identificador: CSU01; Sumário: SA autentica o log in do robô ; Ator primário: SA; Precondições: Fluxo principal: SA solicita a SS sua identificação; SS responde com a identificação; Fluxo de exceção: Identificação não cadastrada, cadastrar identificação.
Identificador: CSU02; Sumário: SA tem conhecimento da posição do robô no tabuleiro, assim como ele mesmo ; Ator primário: SA e SR; Precondições: Robô já ter sido cadastrado; O robô já ter se autenticado; Fluxo principal: SA recebe os dados de onde o robô está no tabuleiro; SR toma conhecimento de sua posição; Nome: Recebe dados Identificador: CSU03; Sumário: SR recebe dados da partida através do SA de início, pausa e fim da partida, validação de caças . Ator primário: SR e SA; Precondições: Robô já ter sido cadastrado; O robô já ter se autenticado; Fluxo principal: SA envia dados de início, pausa e fim da partida (quando um jogador ganha) e valida as caças que o robõ pegou; SR processa os dados e define sua posição inicial e mapeia as caças do jogo.
Identificador: CSU04; Sumário: SA inicia a partida e sorteia as caças. Atores primários: SA; Precondições:
O robô já ter se autenticado; Fluxo principal: SA recebe a informação do cliente externo de que deve iniciar a partida, então sorteia as caças.;
Identificador: CSU06; Sumário: SA faz a contagem de caças válidas e declara vencedor. Ator primário: SA;;
Robô já ter sido cadastrado; O robô já ter se autenticado; Fluxo principal: SA envia dados do robô que obteve o maior número de caças válidas, portanto do o vencedor.; SA finaliza a partida.. Nome: Pause/Start Identificador: CSU07; Sumário: SA pausa, para ou inicia a partida de acordo com a vontade do cliente externo ou caso algum robô tenha ganhado.; Ator primário: SA; Precondições: Robô já ter sido cadastrado; O robô já ter se autenticado; Fluxo principal: SA verifica se cliente externo deseja iniciar a partida ou pausar a partida; SA verifica se as caças válidas do robô; SA verifica ganhador; SA finaliza a partida.; |
Requisitos:
Relatório de testes:
Conteúdo das Aulas:
25/02/2019 - Apresentação de seminário |
---|
Links úteis:
Página da disciplina: https://wiki.sj.ifsc.edu.br/index.php/PJI2-EngTel_(p%C3%A1gina)
- Colocar documentação das APIs usadas*
Mensagens
Mensagens - Sistema do Robô |
---|
Caso de uso - Origem - Destino - mensagem <br\> Autentiticar - SS - SR - Identificação do SS + "|" + mensagem "autenticado"<br\> Receber atualização - SS - SR - numero de caça + localização das caça, numero de competidores + localização de competidores <br\> Enviar atualização - SR - SS - Cor Robô + Localização (linha, coluna) .<br\> Movimentar manual - SS - SR - Direção .<br\> Validar caça - SR - SS - mensagem que encontrou caça + Cor Robô + Localização (linha, coluna)<br\> Iniciar partida - SS - SR - Solicita Localização <br\> Iniciar partida - SR - SS - informa Localização <br\> Iniciar partida - SS - SR - Modo de uso,numero de caças, numero de competidores + cor do Robô <br\> Iniciar partida - SS - SR - numero de caças, Localização das caças <br\> Pausar/continuar - SS - SR - mensagem de pausa ou continua <br\> Terminar partida - SS - SR - mensagem de fim de jogo <br\> |
Mensagens - Sistema Supervisório |
---|
Caso de uso - Origem - Destino - mensagem <br\> Autentiticar ao Robô - SS - SR - Identificação do SS + "|" + mensagem "autenticado"<br\> Autentiticar ao Robô - SR - SS - MAC do Robô<br\> Enviar atualização - SR - SS - Cor Robô + Localização (linha, coluna) .<br\> Enviar atualização - SS - SA - Cor Robô + Localização (linha, coluna) .<br\> Validar caça autonoma - SR - SS - mensagem que encontrou caça + Cor Robô + Localização (linha, coluna) <br\> Validar caça autonoma - SS - SA - mensagem que encontrou caça + Cor Robô + Localização (linha, coluna) <br\> Iniciar partida - SS - SR - Solicita Localização <br\> Iniciar partida - SR - SS - informa Localização <br\> Iniciar partida - SS - SA - informa Localização do Robô <br\> Iniciar partida - SA - SS - Modo de uso,numero de caças, numero de competidores + cor do Robô <br\> Iniciar partida - SS - SR - Modo de uso,numero de caças, numero de competidores + cor do Robô <br\> Iniciar partida - SA - SS - numero de caças, Localização das caças <br\> Iniciar partida - SS - SR - numero de caças, Localização das caças <br\> Conectar Robô - SS - SA - MAC do Robô<br\> Receber atualização - SA - SS - numero de caça + localização das caça, numero de competidores + localização de competidores <br\> Receber atualização - SS - SR - numero de caça + localização das caça, numero de competidores + localização de competidores <br\> Pausar/continuar - SA - SS - mensagem de pausa ou continua <br\> Pausar/continuar - SS - SR - mensagem de pausa ou continua <br\> Declarar Vencedor - SA - SS - Vencedor + Cor do Robô vencedor <br\> Terminar partida - SA - SS - mensagem de fim de jogo <br\> Terminar partida - SS - SR - mensagem de fim de jogo <br\> Movimentar manual - J1 - SS - Direção .<br\> Movimentar manual - SS - SR - Direção .<br\> Validar caça autonoma - J1 - SS - mensagem que encontrou caça + numero da caça + Cor Robô <br\> Validar caça autonoma - SS - SA - mensagem que encontrou caça + numero da caça + Cor Robô <br\> |
Mensagens - Sistema Arbitrário |
---|
Caso de uso - Origem - Destino - mensagem <br\> Pausar/continuar - A1 - SA - mensagem de pausa ou continua <br\> Pausar/continuar - SA - SS - mensagem de pausa ou continua <br\> Cadastrar - A1 - SA - mensagem add + MAC do robô <br\> Cadastrar - SA - DB - mensagem add + MAC do robô <br\> Deletar - A1 - SA - mensagem deletar<br\> Deletar - SA - DB - requisição da lista de robô <br\> Deletar - DB - SA - numero de Robôs cadastrados + lista de Robô <br\> Deletar - SA - A1 - numero de Robôs cadastrados + lista de Robô <br\> Deletar - A1 - SA - id do robô a ser deletado<br\> Deletar - SA - DB - id do robô a ser deletado <br\> Consultar Robô - A1 - SA - mensagem consultar robô<br\> Consultar Robô - SA - DB - requisição da lista de robô <br\> Consultar Robô - DB - SA - numero de Robôs cadastrados + lista de Robô <br\> Consultar Robô - SA - A1 - numero de Robôs cadastrados + lista de Robô <br\> Consultar histórico - A1 - SA - mensagem consultar Histórico<br\> Consultar histórico - SA - DB - requisição da lista de partidas <br\> Consultar histórico - DB - SA - numero de partidas + lista de partida(id partida, data, numero de participantes, participantes, vencedor) <br\> Consultar histórico - SA - A1 - numero de partidas + lista de partida(id partida, data, numero de participantes, participantes, vencedor) <br\> Iniciar partida - A1 - SA - mensagem iniciar partida <br\> Iniciar partida - SA - A1 - questiona quantos jogadores <br\> Iniciar partida - A1 - SA - numero de jogadores da partida <br\> Iniciar partida - SA - A1 - questiona modo de jogo <br\> Iniciar partida - A1 - SA - modo de jogo <br\> Iniciar partida - SA - A1 - questiona numero de caça <br\> Iniciar partida - A1 - SA - numero de caça <br\> Iniciar partida - SS - SA - informa Localização do Robô <br\> Iniciar partida - SA - SS - Modo de uso,numero de caças, numero de competidores + cor do Robô <br\> Iniciar partida - SA - SS - numero de caças, Localização das caças <br\> Terminar partida - A1 - SA - mensagem de fim de jogo <br\> Terminar partida - SA - SS - mensagem de fim de jogo <br\> Conectar Robô - SS - SA - MAC do Robô <br\> Conectar Robô - SA - DB - consultar MAC do Robô <br\> Conectar Robô - DB - SA - confirma que o Robô está cadastro <br\> Conectar Robô - SA - SS - Confirma autentificação <br\> Validar caça - SS - SA - mensagem que encontrou caça + Cor Robô + Localização (linha, coluna) (autônomo)<br\> Validar caça - SS - SA - mensagem que encontrou caça + numero da caça + Cor Robô (manual)<br\> Receber atualização - SS - SA - Cor Robô + Localização (linha, coluna) .<br\> Enviar atualização - SA - SS - numero de caça + localização das caça, numero de competidores + localização de competidores <br\> Declarar Vencedor - SA - SS - Vencedor + Cor do Robô vencedor <br\> Salvar histórico - SA - DB - id partida, data, numero de participantes, participantes, vencedor <br\> |