Mudanças entre as edições de "Grupo2-PJI2-2019-1"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 598: Linha 598:
 
*O Sistema Arbitrário confirma que o Robô está conectado. <br\>
 
*O Sistema Arbitrário confirma que o Robô está conectado. <br\>
  
'''Caso de uso:''' Receber dados de Monitoramento<br\>
+
'''Caso de uso:''' Enviar Atualização<br\>
 
'''Ator primário:''' SR<br\>
 
'''Ator primário:''' SR<br\>
 
'''Identificador:''' UCS03<br\>
 
'''Identificador:''' UCS03<br\>
'''Sumário:''' Recebe dados de localização do SR em modo autônomo.<br\>
+
'''Sumário:''' Envia dados de localização do SR em modo autônomo.<br\>
 
'''Pré condições:''' Jogo deve ter sido iniciado.<br\>
 
'''Pré condições:''' Jogo deve ter sido iniciado.<br\>
 
'''Fluxo Principal:'''<br\>
 
'''Fluxo Principal:'''<br\>
*SS envia a sua localização para o SS.<br\>
+
*SR envia a sua localização para o SS.<br\>
 
*SS transmite os dados de localização para o SA.<br\>
 
*SS transmite os dados de localização para o SA.<br\>
  
'''Caso de uso:''' Enviar Atualização <br\>
+
'''Caso de uso:''' Receber Atualização <br\>
 
'''Ator primário:''' SA<br\>
 
'''Ator primário:''' SA<br\>
 
'''Identificador:''' UCS04<br\>
 
'''Identificador:''' UCS04<br\>
'''Sumário:''' Envia dados de localização dos competidores e locais das caças para o SR.<br\>
+
'''Sumário:''' SA envia dados de localização dos competidores e locais das caças para o SR.<br\>
 
'''Pré condições:''' Jogo deve ter sido iniciado.<br\>
 
'''Pré condições:''' Jogo deve ter sido iniciado.<br\>
 
'''Fluxo Principal:'''<br\>
 
'''Fluxo Principal:'''<br\>
 
*SA envia a localização dos competidores e locais de caça para o SS.<br\>
 
*SA envia a localização dos competidores e locais de caça para o SS.<br\>
 
*SS transmite os dados de localização para o SR.<br\>
 
*SS transmite os dados de localização para o SR.<br\>
 +
Exceção: Em modo Manual as informações de localização não serão transmitidas
  
 
'''Caso de uso:'''Validar caça Autônomo<br\>
 
'''Caso de uso:'''Validar caça Autônomo<br\>
Linha 666: Linha 667:
 
*Jogador envia comandos na interface.<br\>
 
*Jogador envia comandos na interface.<br\>
 
*SS envia comando de movimentação para SR.<br\>
 
*SS envia comando de movimentação para SR.<br\>
 +
 +
'''Caso de uso:''' Declarar Vencedor<br\>
 +
'''Ator primário:''' SA<br\>
 +
'''Identificador:''' UCS10<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 ou Receber Atualização<br\>
 +
'''Fluxo Principal:'''<br\>
 +
SA informa ao SS que um dos Robôs encontrou a ultima caça.<br\>
 +
 +
'''Caso de uso:''' Terminar Partida<br\>
 +
'''Ator primário:''' SA<br\>
 +
'''Identificador:''' UCS10<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 a partida acabou.<br\>
 +
Exceção: Árbitro Termina a partida selecionando clicando na opção "Terminar partida".
  
 
{{collapse bottom}}
 
{{collapse bottom}}

Edição das 17h14min de 6 de abril de 2019

Membros do grupo

  • Adonis Andreas Marinos - adonis.marinos97@gmail.com
  • Daniel Cabral Correa - daniel.liboos@gmail.com

Repositório Git

https://github.com/Danehko/ProjetoIntegradorII.git

Cronograma

Diário de projeto

18/02/2019 - Iniciando o projeto

Para a aula de 25/02/2019, apresentação sobre:

  • Classe e Diagrama de classes (relacionamentos)
  • Herança, classes abstratas e interfaces
  • Polimorfismo
  • Usar os diagramas do Grupo 2018-2, mostrando erros e acertos.
25/02/2019 - Apresentação de seminário
04/03/2019 - Recesso Carnaval
11/03/2019 - Analisar diagrama de Caso de Uso
Requisitos funcionais

RF01 O sistema deve permitir criação e gerência de cadastro de um robô.<br\> RF02 O sistema de deve manter um histórico das partidas realizadas.<br\> RF03 O sistema deve ser capaz de fazer a autenticação dos robôs cadastrados.<br\> RF04 Os robôs devem ser capazes de operar nos modos manual e autônomo.<br\> RF05 O sistema deve validar e contabilizar as caças já encontradas pelo robô.<br\> RF06 O sistema deve dar início a partida, sortear os locais das caças e informá-los aos robôs.<br\> RF07 O sistema deve prover uma interface de monitoramento para o robô em modo autônomo.<br\> RF08 O sistema deve prover uma interface de controle e monitoramento para o robôs em modo manual.<br\> RF09 O sistema deve permitir que, quando em modo autônomo, o robô execute os movimentos programados a partir do algoritmo implementado.<br\> RF10 O sistema deve permitir pausa e reset da partida.<br\> RF11 O sistema deve permitir que os resultados do jogo sejam vistos pelos espectadores em tempo real.<br\> RF12 O sistema não deve permitir que os robôs se choquem.<br\> RF13 O sistema deve declarar um vencedor assim que todas as caças forem encontradas.<br\> RF14 O sistema pode ter 2 ou n competidores *.<br\> RF15 O sistema deve projetar informações no tabuleiro (Caças ativas, Caças encontradas, e placar) *.<br\> RF16 Os robôs devem ser capazes de informar suas coordenadas a cada movimento.(Grupo2_2018-2).<br\> RF17 Antes de iniciar a partida, o sistema deve verificar a posição atual dos robôs .(Grupo3_2018-2).<br\>

Requisitos não funcionais

RNF01 A interface do sistema de comunicação com o usuário deve ser intuitiva.<br\> RNF02 O tabuleiro será composto por linhas pretas e todos com cor.<br\> RNF03 O tabuleiro terá as dimensões definidas (2m x 2m).<br\> RNF04 O tabuleiro será composto por 100 quadrados de dimensões: 20cm x 20cm.<br\> RNF05 O tabuleiro será limitado por uma borda vermelha.<br\> RNF06 O placar mostrado aos usuários deve ser de fácil identificação.<br\> RNF07 O robô deve ter uma cor para identificação.<br\>

Casos de Uso SR

Caso de uso: Autenticar <br\> Ator primário: Sistema Supervisório <br\> Identificador: UCR01<br\> Sumário: O SS solicita o identificador do robô e atribui uma cor ao mesmo. <br\> Pré condições: O Sistema do Robô deve ser ligado. <br\> Fluxo Principal: <br\>

  • O Sistema Supervisório conecta ao Sistema do Robô via Bluetooth. <br\>
  • O SR informa seu endereço MAC. <br\>
  • O SS associa ao MAC uma cor. <br\>

Caso de uso: Sistema Anti colisão<br\> Ator primário: Sensor ultrassônico<br\> Identificador: UCR02 <br\> Sumário: Evitar colisões com outros robôs e obstáculos<br\> Pré condições: O Sistema do Robô deve estar em movimento e deverá existir algum Robô ou obstáculo em sua rota.<br\> Fluxo Principal:<br\>

  • Sensor ultrassônico detecta um obstáculo.<br\>
  • O SR para de se movimentar.<br\>
  • Pós-condições: Robô solicita ao SS uma nova rota.<br\>

Caso de uso: Movimento<br\> Ator primário: Sistema Supervisório<br\> Identificador: UCR03<br\> Sumário: SR recebe as ordens de deslocamento do SS.<br\> Pré condições: O Robô deve estar autenticado no SS.<br\> Fluxo Principal: <br\>

  • SS envia comando de movimento para o SR. <br\>
  • Sensor de cor verifica a presença de linha. <br\>
  • SR se desloca conforme o comando do SS e aguarda próximo comando. <br\>

Caso de uso: Encontrar linha/intersecção <br\> Ator primário: Sensor de cor <br\> Identificador: UCR04<br\> Sumário: Indicará se o robô poderá seguir na direção desejada.<br\> Pré condições: Robô deve ter recebido comando de movimento do SS.<br\> Fluxo Principal:<br\>

  • Sensor de cor identifica a linha ou intersecção.<br\>
  • Sensor autoriza movimento do SR.<br\>

Exceção: Caso não encontre ou esteja para sair do tabuleiro (Vermelho), o movimento não será autorizado e ele aguardará outro comando.<br\> Caso de uso: Monitorar<br\> Ator primário: Sistema Supervisório<br\> Identificador: UCR05<br\> Sumário: Recebe dados de localização do SR.<br\> Pré condições: SR precisa ter feito algum movimento.<br\> Fluxo Principal:<br\>

  • SR envia a sua localização para o SS após realizar um comando de movimento.<br\>
Diagrama de caso de uso SR
Diagrama de Caso de uso SR
18/03/2019 - Emenda feriado São José
25/03/2019 - Casos de Uso SS
Correção casos de Uso SR

Caso de uso: Movimento ----- EXCLUIDO<br\> Novos casos de uso:<br\> Caso de uso: Receber informação<br\> . Ator primário: SS<br\> Identificador: UCR03<br\> Sumário: SS envia informações(início a partida,locais das caças, entre outros) para o SR<br\> Pré condições: O Robô deve estar autenticado no SS.<br\> Fluxo Principal:<br\>

  • SS envia os dados para o SR.<br\>
  • SR processa os dados.<br\>

Caso de uso: Movimentar manual<br\> Ator primário: SS<br\> Identificador: UCR06<br\> Sumário: SS envia uma ordem que o SR entrará em modo manual<br\> Pré condições: O Robô deve estar autenticado no SS.<br\> Fluxo Principal: <br\>

  • SS envia comando de movimento para o SR. <br\>
  • Sensor de cor verifica a presença de linha. <br\>
  • SR se desloca conforme o comando do SS e aguarda próximo comando.<br\>

Caso de uso: Movimentar autônomo<br\> Ator primário: SS<br\> Identificador: UCR07<br\> Sumário: SS envia uma ordem que o SR entrará em modo autônomo<br\> <br\> Pré condições: O Robô deve estar autenticado no SS.<br\> Fluxo Principal: <br\>

  • SS envia comando informando ao SR para operar no modo autônomo. <br\>
  • SR espera o início da partida. <br\>
  • SR Começa a operar a partir de um algoritmo. (O algoritmo ficará no SR ou SS) <br\>
  • Sensor de cor verifica a presença de linha. <br\>
  • SR se desloca conforme o algoritmo.<br\>

Caso de uso: Validar caças<br\> Ator primário: SS<br\> Identificador: UCR08<br\> Sumário: SR informa ao SS que localizou umas caças.<br\> Pré condições: O jogo deve ter sido iniciado e o Robô deve estar próxima(uma casa) da caça.<br\> Fluxo Principal: <br\>

  • O Robô chega na casa da caça. <br\>
  • SR envia ao SS uma mensagem informando que localizou a caça. <br\>

Caso de uso: Iniciar<br\> Ator primário: SS<br\> Identificador: UCR09<br\> Sumário: SS informa ao SR que o jogo irá começar, liberando sua movimentação<br\> Pré condições: O Robô deve estar autenticado no SS e o SS deve ter informado o modo de operação do Robô<br\> Fluxo Principal: <br\>

  • SS envia mensagem de inicio de jogo ao SR. <br\>
  • SR se movimenta <br\>

Caso de uso: Pausar<br\> Ator primário: SS<br\> Identificador: UCR10<br\> Sumário: SS informa ao SR que o jogo foi pausado, bloqueando sua movimentação<br\> Pré condições: O jogo deve estar em andamento. <br\> Fluxo Principal: <br\>

  • SS envia mensagem de pausa para SR. <br\>
  • SR para de se movimentar até que venha uma mensagem de continuar o jogo.<br\>
Diagrama de caso de uso SR
Diagrama de Caso de uso SR
Casos de Uso SS

Caso de uso: Autenticar ao Robô<br\> Ator primário: SR <br\> Identificador: UCS01<br\> Sumário: O SS solicita o identificador do robô e atribui uma cor ao mesmo.<br\> Pré condições: O Sistema do Robô deve ser ligado.<br\> Fluxo Principal: <br\>

  • O Sistema Supervisório conecta ao Sistema do Robô. <br\>
  • O SR informa seu endereço MAC. <br\>
  • O SS associa ao MAC a uma cor. <br\>

Caso de uso: Autenticar ao Sistema Arbitrário<br\> Ator primário: SA <br\> Identificador: UCS02<br\> Sumário: O SS envia ao SA a identificação do robô e a cor atribuída ao mesmo.<br\> Pré condições: O Sistema do Robô já deve ter se autenticado com SS <br\> Fluxo Principal: <br\>

  • O Sistema Supervisório se conecta ao Sistema Arbitrário. <br\>
  • O SS envia informações do SR ao SA. <br\>

Caso de uso: Receber dados de Monitoramento<br\> Ator primário: SR<br\> Identificador: UCS03<br\> Sumário: Recebe dados de localização do SR.<br\> Pré condições: Jogo deve ter sido iniciado.<br\> Fluxo Principal:<br\>

  • SS envia a sua localização para o SS.<br\>
  • SS transmite os dados de localização para o SA.<br\>

Caso de uso: Enviar dados de Monitoramento<br\> Ator primário: SA<br\> Identificador: UCS04<br\> Sumário: Envia dados de localização dos competidores e locais das caças para o SR.<br\> Pré condições: Jogo deve ter sido iniciado.<br\> Fluxo Principal:<br\>

  • SA envia a localização dos competidores e locais de caça para o SS.<br\>
  • SS transmite os dados de localização para o SR.<br\>

Caso de uso:Informar caças encontradas<br\> Ator primário: SR<br\> Identificador: UCS05<br\> Sumário: SS informa ao SA que o SR localizou umas caças.<br\> Pré condições: Jogo deve ter sido iniciado.<br\><br\> Fluxo Principal:<br\>

  • SR envia ao SS uma mensagem informando que localizou a caça.<br\>
  • SS envia ao SA uma mensagem informando que SR localizou a caça.<br\>

Caso de uso: Iniciar<br\> Ator primário: SA<br\> Identificador: UCS06<br\> Sumário: SA informa ao SS que o jogo irá começar<br\> Pré condições: O Robô deve estar autenticado no SS.<br\> Fluxo Principal:<br\>

  • SA envia mensagem de inicio de jogo ao SS. <br\>
  • SS envia mensagem de inicio de jogo ao SR.<br\>

Caso de uso: Pausar<br\> Ator primário: SA<br\> Identificador: UCS07<br\> Sumário: SA informa ao SS que o jogo foi pausado.<br\> Pré condições: O jogo deve estar em andamento.<br\> Fluxo Principal:<br\>

  • SA envia mensagem de pausa para SS. <br\>
  • SS envia mensagem de pausa para SR.<br\>
  • SS espera uma mensagem para continuar o jogo.<br\>

Caso de uso: Modo de operação<br\> Ator primário: Jogador<br\> Identificador: UCS08<br\> Sumário: Jogador escolhe o modo de operação do SR<br\> Pré condições: O Robô deve estar autenticado no SS.<br\> Fluxo Principal:<br\>

  • Jogador escolhe modo de operação na interface.<br\>
  • SS informa o modo de jogo ao SR.<br\>

Exceção: Caso seja escolhido o modo manual, SS deve esperar os comandos de deslocamento do Jogador.

Caso de uso: Movimentar<br\> Ator primário: Jogador<br\> Identificador: UCS09<br\> Sumário: Jogador envia os comandos de movimentos para SR.<br\> Pré condições: O Robô deve estar autenticado no SS, o jogo deve ter começado e o modo de jogo deve ter sido selecionado.<br\> Fluxo Principal:<br\>

  • Jogador envia comandos ou escolhe algoritmo(modo autônomo) na interface.<br\>
  • SS envia comando de movimentação para SR.<br\>
Diagrama de caso de uso SS
Diagrama de Caso de uso SS
01/04/2019 - Acompanhamento
Caso de uso SA

Caso de uso: Criar partida<br\> Ator primário: Juiz <br\> Identificador: UCA09<br\> Sumário: Juiz cria partida.<br\> Pré condições:>?.<br\> Fluxo Principal:<br\>

  • Juiz seleciona "criar partida".<br\>
  • SA questiona quantos jogadores realizarão a partida.<br\>
  • Juiz informa o número de jogadores.<br\>
  • SA questiona quantas caças terá no jogo.<br\>
  • Juiz informa o número de caças.<br\>
  • A partida é criada.<br\>

SA aguarda a autenticação dos jogadores.<br\>

Caso de uso: Iniciar partida<br\> Ator primário: Juiz <br\> Identificador: UCA10<br\> Sumário: Juiz inicia partida.<br\> Pré condições: Partida deve ter sido criada e as vagas de jogadores devem estar todas ocupadas.<br\> Fluxo Principal:<br\>

  • Juiz seleciona "Iniciar partida".<br\>
  • SA sorteia as caças pelo mapa.<br\>
  • SA informa a localização das caças para o SS.<br\>
  • SS informa a localização do SR.<br\>
  • SA informa que a partida foi iniciada a todos os SS após todos terem informado sua localização.<br\>

Caso de uso: Cadastrar <br\> Ator primário: Juiz<br\> Identificador: UCA02<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ô não deve estar cadastrado e o Juiz deve estar próximo.<br\> Fluxo Principal:<br\>

  • Juiz seleciona "Cadastrar Robô"<br\>
  • Juiz envia 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 o Robô foi registrado.<br\>

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

  • Juiz clica na opção "gerenciar 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\>
  • Juiz 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\>

Caso de uso: Selecionar modo de operação <br\> Ator primário: Juiz <br\> Identificador: UCA04<br\> Sumário: Juiz Seleciona o modo de operação da partida.<br\> Pré condições: O Robô deve estar autenticado.<br\> Fluxo Principal:<br\>

  • Juiz clica na opção "Selecionar modo".<br\>
  • SA informa os dois modos de operação.<br\>
  • Juiz escolhe o modo de operação desejado.<br\>
  • SA informa ao SS o modos de operação da partida.<br\>

Caso de uso: Pausar/Continuar <br\> Ator primário: Juiz <br\> Identificador: UCA05<br\> Sumário: Juiz pausa ou continua a partida.<br\> Pré condições: Partida deve estar em andamento.<br\> Fluxo Principal:<br\>

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

Caso de uso: Validar caça<br\> Ator primário: SS <br\> Identificador: UCA07<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 encontrou uma caça.<br\>
  • SA informa ao Juiz que o SS encontrou uma caça.<br\>
  • Juiz 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 a caça.<br\>

Exceção: Juiz não valida a caça.<br\>

Caso de uso: Declarar Vencedor<br\> Ator primário: SS <br\> Identificador: UCA08<br\> Sumário: O sistema declara o fim da partida após a ultima caça ser localizada.<br\> Pré condições: Partida deve ter iniciado e o Robô deve ter encontrado a ultima caça.<br\> Fluxo Principal:<br\>

  • SS informa ao SA que encontrou uma caça.<br\>
  • SA informa ao Juiz que o SS encontrou uma caça.<br\>
  • Juiz 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 identifica o Robô com mais caças.<br\>
  • SA informa a todos os SS que um dos Robôs encontrou a ultima caça.<br\>
  • SA informa a todos os SS qual Robô é o vencedor.
  • O jogo acaba.<br\>
  • SA informa os dados da partida para o Banco de Dados
  • Banco de Dados confirma o armazenamento.

Caso de uso: Atualizar coordenadas<br\> Ator primário: SS <br\> Identificador: UCA11<br\> Sumário: SS informa a localização do SR.<br\> Pré condições: Partida deve ter sido iniciada e o Robô deve ter efetuado um movimento.<br\> Fluxo Principal:<br\>

  • Juiz seleciona "Iniciar partida".<br\>
  • SS informa a localização do SR.<br\>
  • SA atualiza a localização do SR.<br\>

<br\>

Caso de uso: Conectar <br\> Ator primário: SS <br\> Identificador: UCA01<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\>

Requisitos Faltantes:<br\> RF11 O sistema deve permitir que os resultados do jogo sejam vistos pelos espectadores em tempo real.<br\> RF15 O sistema deve projetar informações no tabuleiro (Caças ativas, Caças encontradas, e placar) *.<br\>

08/04/2019 -
15/04/2019 -
22/04/2019 -
29/04/2019 -
06/05/2019 -
13/05/2019 -
20/05/2019 -
27/05/2019 -
03/06/2019 -
10/06/2019 -
17/06/2019 -
24/06/2019 -
01/07/2019 -
08/07/2019 -

Levantamento de requisitos

Requisitos funcionais

RF01 O sistema deve permitir criação e gerência de cadastro de um robô.<br\> RF02 O sistema de deve manter um histórico das partidas realizadas.<br\> RF03 O sistema deve ser capaz de fazer a autenticação dos robôs cadastrados.<br\> RF04 Os robôs devem ser capazes de operar nos modos manual e autônomo.<br\> RF05 O sistema deve validar e contabilizar as caças já encontradas pelo robô.<br\> RF06 O sistema deve dar início a partida, sortear os locais das caças e informá-los aos robôs.<br\> RF07 O sistema deve prover uma interface de monitoramento para o robô em modo autônomo.<br\> RF08 O sistema deve prover uma interface de controle e monitoramento para o robôs em modo manual.<br\> RF09 O sistema deve permitir que, quando em modo autônomo, o robô execute os movimentos programados a partir do algoritmo implementado.<br\> RF10 O sistema deve permitir pausa e reset da partida.<br\> RF11 O sistema deve permitir que os resultados do jogo sejam vistos pelos espectadores em tempo real.<br\> RF12 O sistema não deve permitir que os robôs se choquem.<br\> RF13 O sistema deve declarar um vencedor assim que todas as caças forem encontradas.<br\> RF14 O sistema pode ter 2 ou n competidores *.<br\> RF15 O sistema deve projetar informações no tabuleiro (Caças ativas, Caças encontradas, e placar) *.<br\> RF16 Os robôs devem ser capazes de informar suas coordenadas a cada movimento.(Grupo2_2018-2).<br\> RF17 Antes de iniciar a partida, o sistema deve verificar a posição atual dos robôs .(Grupo3_2018-2).<br\> RF18 O Modo autônomo deve ser implementado dentro do Sistem do Robô.<br\>

Requisitos não funcionais

RNF01 A interface do sistema de comunicação com o usuário deve ser intuitiva.<br\> RNF02 O tabuleiro será composto por linhas pretas e todos com cor.<br\> RNF03 O tabuleiro terá as dimensões definidas (2m x 2m).<br\> RNF04 O tabuleiro será composto por 100 quadrados de dimensões: 20cm x 20cm.<br\> RNF05 O tabuleiro será limitado por uma borda vermelha.<br\> RNF06 O placar mostrado aos usuários deve ser de fácil identificação.<br\> RNF07 O robô deve ter uma cor para identificação.<br\>

Sistema do Robô

Casos de Uso SR

Caso de uso: Autenticar <br\> Ator primário: Sistema Supervisório <br\> Identificador: UCR01<br\> Sumário: O SS solicita o identificador do robô e atribui uma cor ao mesmo. <br\> Pré condições: O Sistema do Robô deve ser ligado. <br\> Fluxo Principal: <br\>

  • O Sistema Supervisório conecta ao Sistema do Robô via Bluetooth. <br\>
  • O SR informa seu endereço MAC. <br\>
  • O SS associa ao MAC uma cor. <br\>

Caso de uso: Sistema Anti colisão<br\> Ator primário: Sensor ultrassônico<br\> Identificador: UCR02 <br\> Sumário: Evitar colisões com outros robôs e obstáculos<br\> Pré condições: O Sistema do Robô deve estar em movimento e deverá existir algum Robô ou obstáculo em sua rota.<br\> Fluxo Principal:<br\>

  • Sensor ultrassônico detecta um obstáculo.<br\>
  • O SR para de se movimentar.<br\>
  • Pós-condições: Robô solicita ao SS uma nova rota.<br\>

Caso de uso: Receber informação<br\> . Ator primário: SS<br\> Identificador: UCR03<br\> Sumário: SS envia informações(início a partida,locais das caças, entre outros) para o SR<br\> Pré condições: O Robô deve estar autenticado no SS.<br\> Fluxo Principal:<br\>

  • SS envia os dados para o SR.<br\>
  • SR processa os dados.<br\>

Caso de uso: Encontrar linha/intersecção <br\> Ator primário: Sensor de cor <br\> Identificador: UCR04<br\> Sumário: Indicará se o robô poderá seguir na direção desejada.<br\> Pré condições: Robô deve ter recebido comando de movimento do SS.<br\> Fluxo Principal:<br\>

  • Sensor de cor identifica a linha ou intersecção.<br\>
  • Sensor autoriza movimento do SR.<br\>

Exceção: Caso não encontre ou esteja para sair do tabuleiro (Vermelho), o movimento não será autorizado e ele aguardará outro comando.<br\>

Caso de uso: Monitorar<br\> Ator primário: Sistema Supervisório<br\> Identificador: UCR05<br\> Sumário: Recebe dados de localização do SR.<br\> Pré condições: SR precisa ter feito algum movimento.<br\> Fluxo Principal:<br\>

  • SR envia a sua localização para o SS após realizar um comando de movimento.<br\>

Caso de uso: Movimentar manual<br\> Ator primário: SS<br\> Identificador: UCR06<br\> Sumário: SS envia uma ordem que o SR entrará em modo manual<br\> Pré condições: O Robô deve estar autenticado no SS.<br\> Fluxo Principal: <br\>

  • SS envia comando de movimento para o SR. <br\>
  • Sensor de cor verifica a presença de linha. <br\>
  • SR se desloca conforme o comando do SS e aguarda próximo comando.<br\>

Caso de uso: Movimentar autônomo<br\> Ator primário: SS<br\> Identificador: UCR07<br\> Sumário: SS envia uma ordem que o SR entrará em modo autônomo<br\> <br\> Pré condições: O Robô deve estar autenticado no SS.<br\> Fluxo Principal: <br\>

  • SS envia comando informando ao SR para operar no modo autônomo. <br\>
  • SR espera o início da partida. <br\>
  • SR Começa a operar a partir de um algoritmo. (O algoritmo ficará no SR ou SS) <br\>
  • Sensor de cor verifica a presença de linha. <br\>
  • SR se desloca conforme o algoritmo.<br\>

Caso de uso: Validar caças<br\> Ator primário: SS<br\> Identificador: UCR08<br\> Sumário: SR informa ao SS que localizou umas caças.<br\> Pré condições: O jogo deve ter sido iniciado e o Robô deve estar próxima(uma casa) da caça.<br\> Fluxo Principal: <br\>

  • O Robô chega na casa da caça. <br\>
  • SR envia ao SS uma mensagem informando que localizou a caça. <br\>

Caso de uso: Iniciar<br\> Ator primário: SS<br\> Identificador: UCR09<br\> Sumário: SS informa ao SR que o jogo irá começar, liberando sua movimentação<br\> Pré condições: O Robô deve estar autenticado no SS e o SS deve ter informado o modo de operação do Robô<br\> Fluxo Principal: <br\>

  • SS envia mensagem de inicio de jogo ao SR. <br\>
  • SR se movimenta <br\>

Caso de uso: Pausar<br\> Ator primário: SS<br\> Identificador: UCR10<br\> Sumário: SS informa ao SR que o jogo foi pausado, bloqueando sua movimentação<br\> Pré condições: O jogo deve estar em andamento. <br\> Fluxo Principal: <br\>

  • SS envia mensagem de pausa para SR. <br\>
  • SR para de se movimentar até que venha uma mensagem de continuar o jogo.<br\>
Diagrama de caso de uso SR
Diagrama de Caso de uso SR

Sistema Supervisório

Casos de Uso SS

Caso de uso: Autenticar ao Robô<br\> Ator primário: SR <br\> Identificador: UCS01<br\> Sumário: O SS solicita o identificador do robô e atribui uma cor ao mesmo.<br\> Pré condições: O Sistema do Robô deve ser ligado.<br\> Fluxo Principal: <br\>

  • O Sistema Supervisório conecta ao Sistema do Robô. <br\>
  • O SR informa seu endereço MAC. <br\>
  • O SS associa ao MAC a uma cor. <br\>

Caso de uso: Conectar Robô<br\> Ator primário: SA <br\> Identificador: UCS02<br\> Sumário: O SS envia ao SA a identificação do robô e a cor atribuída ao mesmo.<br\> Pré condições: O Sistema do Robô já deve ter se autenticado com SS <br\> Fluxo Principal: <br\>

  • O Sistema Supervisório se conecta ao Sistema Arbitrário. <br\>
  • O Sistema Arbitrário confirma que o Robô está conectado. <br\>

Caso de uso: Enviar Atualização<br\> Ator primário: SR<br\> Identificador: UCS03<br\> Sumário: Envia dados de localização do SR em modo autônomo.<br\> Pré condições: Jogo deve ter sido iniciado.<br\> Fluxo Principal:<br\>

  • SR envia a sua localização para o SS.<br\>
  • SS transmite os dados de localização para o SA.<br\>

Caso de uso: Receber Atualização <br\> Ator primário: SA<br\> Identificador: UCS04<br\> Sumário: SA envia dados de localização dos competidores e locais das caças para o SR.<br\> Pré condições: Jogo deve ter sido iniciado.<br\> Fluxo Principal:<br\>

  • SA envia a localização dos competidores e locais de caça para o SS.<br\>
  • SS transmite os dados de localização para o SR.<br\>

Exceção: Em modo Manual as informações de localização não serão transmitidas

Caso de uso:Validar caça Autônomo<br\> Ator primário: SR<br\> Identificador: UCS05<br\> Sumário: SS informa ao SA que o SR localizou umas caças.<br\> Pré condições: Jogo deve ter sido iniciado e o Robô deve estar em cima da caça.<br\><br\> Fluxo Principal:<br\>

  • SR envia ao SS uma mensagem informando que localizou a caça.<br\>
  • SS envia ao SA uma mensagem informando que Robô localizou a caça.<br\>
  • SA informa ao SS que ele encontrou uma caça.

Caso de uso:Validar caça Manual<br\> Ator primário: Jogador<br\> Identificador: UCS06<br\> Sumário: SS informa ao SA que o Jogador localizou umas caças.<br\> Pré condições: Jogo deve ter sido iniciado e o Robô deve estar em cima da caça.<br\><br\> Fluxo Principal:<br\>

  • Jogador clica na opção "Validar caça".<br\>
  • SS envia ao SA uma mensagem informando que Robô localizou a caça.<br\>
  • SA informa ao SS que ele encontrou uma caça.

Caso de uso: Iniciar<br\> Ator primário: SA<br\> Identificador: UCS07<br\> Sumário: SA informa ao SS que o jogo irá começar<br\> Pré condições: Conectar Robô.<br\> Fluxo Principal:<br\>

  • SA aguarda a conexão dos SS.
  • 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\>

Caso de uso: Pausar/Continuar<br\> Ator primário: SA<br\> Identificador: UCS08<br\> Sumário: SA informa ao SS que o jogo foi pausado.<br\> Pré condições: O jogo deve estar em andamento.<br\> Fluxo Principal:<br\>

  • SA envia mensagem de pausa para SS. <br\>
  • SS envia mensagem de pausa para SR.<br\>
  • SS espera uma mensagem para continuar o jogo.<br\>

Caso de uso: Movimentar Manual<br\> Ator primário: Jogador<br\> Identificador: UCS09<br\> Sumário: Jogador envia os comandos de movimentos para SR.<br\> Pré condições: O Robô deve estar autenticado no SS, o jogo deve ter começado e o modo de jogo deve ter sido selecionado.<br\> Fluxo Principal:<br\>

  • Jogador envia comandos na interface.<br\>
  • SS envia comando de movimentação para SR.<br\>

Caso de uso: Declarar Vencedor<br\> Ator primário: SA<br\> Identificador: UCS10<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 ou Receber Atualização<br\> Fluxo Principal:<br\> SA informa ao SS que um dos Robôs encontrou a ultima caça.<br\>

Caso de uso: Terminar Partida<br\> Ator primário: SA<br\> Identificador: UCS10<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 a partida acabou.<br\> Exceção: Árbitro Termina a partida selecionando clicando na opção "Terminar partida".

Diagrama de caso de uso SS
Diagrama de Caso de uso SS

Sistema de Auditoria

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 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 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\>
  • SA solicita ao Banco de dados os Robôs cadastrados.<br\>
  • Banco de dados envia uma lista de robôs ao SA.<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ô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\>
  • SA solicita ao Banco de dados todos os Robôs cadastrados.<br\>
  • Banco de dados envia uma lista de robôs ao SA.<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 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\>
  • 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: Ter no mínimo dois Robôs cadastrados.<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 conexã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 Robô esta 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: 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 Robô.<br\> Pré condições: A partida deve ter sido iniciada.<br\> Fluxo Principal:<br\>

  • SS envia a localização do Robô ao SA<br\>

<br\> Caso de uso: Enviar atualização<br\> Ator primário: SS <br\> Identificador: UCA10<br\> Sumário: SA atualiza o SS referente ao andamento do jogo.<br\> Pré condições: Iniciar Partida.<br\> Fluxo Principal:<br\>

  • SA envia as informações referentes ao jogo para o SS (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: UCA11<br\> Sumário: SA 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\>

  • SA 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: 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 declarado, 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\>

Diagrama de caso de uso SA

DiagramaSA159.png