Mudanças entre as edições de "Grupo2-PJI2-2019-1"
(143 revisões intermediárias por 3 usuários não estão sendo mostradas) | |||
Linha 2: | Linha 2: | ||
*Adonis Andreas Marinos - adonis.marinos97@gmail.com | *Adonis Andreas Marinos - adonis.marinos97@gmail.com | ||
*Daniel Cabral Correa - daniel.liboos@gmail.com | *Daniel Cabral Correa - daniel.liboos@gmail.com | ||
− | |||
==Repositório Git== | ==Repositório Git== | ||
https://github.com/Danehko/ProjetoIntegradorII.git | https://github.com/Danehko/ProjetoIntegradorII.git | ||
+ | |||
+ | https://github.com/Danehko/PJI2/ | ||
+ | |||
+ | O segundo repositório tem o código final | ||
==Cronograma== | ==Cronograma== | ||
==Diário de projeto== | ==Diário de projeto== | ||
+ | |||
{{collapse top | 18/02/2019 - Iniciando o projeto}} | {{collapse top | 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. | ||
+ | {{collapse bottom}} | ||
+ | |||
+ | {{collapse top | 25/02/2019 - Apresentação de seminário}} | ||
+ | *[[Media:seminario-grupo2-2019-1.pdf|Slides Seminário]] | ||
+ | {{collapse bottom}} | ||
+ | |||
+ | {{collapse top | 04/03/2019 - Recesso Carnaval}} | ||
+ | {{collapse bottom}} | ||
+ | |||
+ | {{collapse top | 11/03/2019 - Analisar diagrama de Caso de Uso}} | ||
+ | {{collapse top |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\> | ||
+ | {{collapse bottom}} | ||
+ | |||
+ | {{collapse top | 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\> | ||
+ | {{collapse bottom}} | ||
+ | |||
+ | {{collapse top | 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\> | ||
+ | {{collapse bottom}} | ||
+ | {{collapse top | Diagrama de caso de uso SR}} | ||
+ | [[Arquivo:diagramacdu.png.jpeg|center|Diagrama de Caso de uso SR]] | ||
+ | {{collapse bottom}} | ||
+ | {{collapse bottom}} | ||
+ | |||
+ | {{collapse top | 18/03/2019 - Emenda feriado São José}} | ||
+ | {{collapse bottom}} | ||
+ | |||
+ | {{collapse top | 25/03/2019 - Casos de Uso SS}} | ||
+ | {{collapse top | 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\> | ||
+ | |||
+ | {{collapse bottom}} | ||
+ | {{collapse top | Diagrama de caso de uso SR}} | ||
+ | [[Arquivo:diagramacduv2.png.jpeg|center|Diagrama de Caso de uso SR]] | ||
+ | {{collapse bottom}} | ||
+ | {{collapse top | 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\> | ||
+ | {{collapse bottom}} | ||
+ | |||
+ | {{collapse top | Diagrama de caso de uso SS}} | ||
+ | [[Arquivo:diagramacsuss.png.jpeg|center|Diagrama de Caso de uso SS]] | ||
+ | {{collapse bottom}} | ||
+ | {{collapse bottom}} | ||
+ | |||
+ | {{collapse top | 01/04/2019 - Acompanhamento}} | ||
+ | {{collapse top |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\>https://github.com/Danehko/PJI2/ | ||
+ | *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\> | ||
+ | {{collapse bottom}} | ||
+ | {{collapse bottom}} | ||
+ | |||
+ | {{collapse top | 22/04/2019 - Cronograma}} | ||
+ | [[Arquivo:cronogramagr1912.jpeg|center|Cronograma Projeto]] | ||
+ | {{collapse bottom}} | ||
+ | |||
+ | {{collapse top | 08/07/2019 - Diagramas}} | ||
+ | Diagrama de Classe SR: | ||
+ | [[Arquivo:diagramaSRFinal.png|center|Diagrama de Classe SR Final]] | ||
+ | |||
+ | Diagrama de Classe SS: | ||
+ | [[Arquivo:diagramaSSFinal.png|center|Diagrama de Classe SS Final]] | ||
{{collapse bottom}} | {{collapse bottom}} | ||
==Levantamento de requisitos== | ==Levantamento de requisitos== | ||
+ | {{collapse top |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\> | ||
+ | {{collapse bottom}} | ||
+ | {{collapse top | 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\> | ||
+ | {{collapse bottom}} | ||
==Sistema do Robô== | ==Sistema do Robô== | ||
+ | {{collapse top | Casos de Uso Sistema do Robô}} | ||
+ | '''Caso de uso:''' Sistema Anti colisão<br\> | ||
+ | '''Ator primário:''' Sensor ultrassônico<br\> | ||
+ | '''Identificador:''' UCR01<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 Sistema do Robô para de se movimentar.<br\> | ||
+ | *Pós-condições: Robô solicita ao Sistema Supervisório uma nova rota.<br\> | ||
+ | <br\> | ||
+ | '''Caso de uso:''' Encontrar linha/intersecção <br\> | ||
+ | '''Ator primário:''' Sensor de cor <br\> | ||
+ | '''Identificador:''' UCR02<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 Sistema Supervisório.<br\> | ||
+ | '''Fluxo Principal:'''<br\> | ||
+ | *Sensor de cor identifica a linha ou intersecção.<br\> | ||
+ | *Sensor autoriza movimento do Sistema do Robô.<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\> | ||
+ | <br\> | ||
+ | '''Caso de uso:''' Autenticar <br\> | ||
+ | '''Ator primário:''' Sistema Supervisório <br\> | ||
+ | '''Identificador:''' UCR03<br\> | ||
+ | '''Sumário:''' O Sistema Supervisório 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\> | ||
+ | <br\> | ||
+ | '''Caso de uso:''' Receber Atualização<br\> . | ||
+ | '''Ator primário:''' Sistema Supervisório<br\> | ||
+ | '''Identificador:''' UCR03<br\> | ||
+ | '''Sumário:''' Sistema Supervisório envia informações(locais das caças, entre outros) para o Sistema do Robô.<br\> | ||
+ | '''Pré condições:''' O Robô deve estar autenticado no Sistema Supervisório.<br\> | ||
+ | '''Fluxo Principal:'''<br\> | ||
+ | * Sistema Supervisório envia envia a localização dos competidores e locais de caça para o Sistema do Robô.<br\> | ||
+ | * Sistema do Robô processa os dados.<br\> | ||
+ | <br\> | ||
+ | '''Caso de uso:''' Enviar Atualização<br\> | ||
+ | '''Ator primário:''' Sistema Supervisório<br\> | ||
+ | '''Identificador:''' UCR05<br\> | ||
+ | '''Sumário:''' Recebe dados de localização do Sistema do Robô.<br\> | ||
+ | '''Pré condições:''' Sistema do Robô precisa ter feito algum movimento.<br\> | ||
+ | '''Fluxo Principal:'''<br\> | ||
+ | *Sistema do Robô envia a sua localização para o Sistema Supervisório após realizar um comando de movimento.<br\> | ||
+ | <br\> | ||
+ | '''Caso de uso:''' Movimentar manual<br\> | ||
+ | '''Ator primário:''' Sistema Supervisório<br\> | ||
+ | '''Identificador:''' UCR06<br\> | ||
+ | '''Sumário:''' Sistema Supervisório envia uma ordem de movimento.<br\> | ||
+ | '''Pré condições:''' O Robô deve estar autenticado no Sistema Supervisório.<br\> | ||
+ | '''Fluxo Principal:''' <br\> | ||
+ | *Sistema Supervisório envia comando de movimento para o Sistema do Robô. <br\> | ||
+ | *Sensor de cor verifica a presença de linha. <br\> | ||
+ | *Sistema do Robô se desloca conforme o comando do Sistema Supervisório e aguarda próximo comando.<br\> | ||
+ | <br\> | ||
+ | '''Caso de uso:''' Movimentar autônomo<br\> | ||
+ | '''Ator primário:''' Sistema Supervisório<br\> | ||
+ | '''Identificador:''' UCR07<br\> | ||
+ | '''Sumário:''' Sistema Supervisório envia uma ordem que o Sistema do Robô entrará em modo autônomo.<br\> | ||
+ | '''Pré condições:''' Iniciar partida.<br\> | ||
+ | '''Fluxo Principal:''' <br\> | ||
+ | *Sistema Supervisório informa o Sistema do Robô para operar no modo autônomo. <br\> | ||
+ | *Sistema do Robô Começa a operar a partir de um algoritmo. (O algoritmo ficará no Sistema do Robô).<br\> | ||
+ | *Sensor de cor verifica a presença de linha. <br\> | ||
+ | *Sistema do Robô se desloca conforme o algoritmo.<br\> | ||
+ | <br\> | ||
+ | '''Caso de uso:''' Validar caças<br\> | ||
+ | '''Ator primário:''' Sistema Supervisório<br\> | ||
+ | '''Identificador:''' UCR08<br\> | ||
+ | '''Sumário:''' Sistema do Robô informa ao Sistema Supervisório 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\> | ||
+ | *Sistema do Robô envia ao Sistema Supervisório uma mensagem informando que localizou a caça. <br\> | ||
+ | <br\> | ||
+ | '''Caso de uso:''' Iniciar partida<br\> | ||
+ | '''Ator primário:''' Sistema Supervisório<br\> | ||
+ | '''Identificador:''' UCR09<br\> | ||
+ | '''Sumário:''' Sistema Supervisório informa ao Sistema do Robô que o jogo irá começar, liberando sua movimentação.<br\> | ||
+ | '''Pré condições:''' O Robô deve estar autenticado no Sistema Supervisório e o Sistema Supervisório deve ter informado o modo de operação do Robô.<br\> | ||
+ | '''Fluxo Principal:''' <br\> | ||
+ | *Sistema Supervisório pergunta ao Robô sua localização. <br\> | ||
+ | *Sistema do Robô informa a localização para o Sistema Supervisório. <br\> | ||
+ | *Sistema Supervisório informa o modo de jogo, quantas caças, quantos jogadores terão na partida e a cor para o Sistema do Robô. <br\> | ||
+ | *A partida é criada. <br\> | ||
+ | *Sistema Supervisório informa a localização das caças para o Sistema do Robô. <br\> | ||
+ | <br\> | ||
+ | '''Caso de uso:''' Pausar/Continuar <br\> | ||
+ | '''Ator primário:''' Sistema Supervisório<br\> | ||
+ | '''Identificador:''' UCR10<br\> | ||
+ | '''Sumário:''' Sistema Supervisório informa ao Sistema do Robô que o jogo foi pausado/continuado, bloqueando/desbloqueando sua movimentação.<br\> | ||
+ | '''Pré condições:''' O jogo deve estar em andamento/pausado. <br\> | ||
+ | '''Fluxo Principal:''' <br\> | ||
+ | *Sistema Supervisório envia mensagem de pausa;continua para Sistema do Robô. <br\> | ||
+ | *Sistema do Robô para de se movimentar até que venha uma mensagem de continuar o jogo.<br\> | ||
+ | <br\> | ||
+ | '''Caso de uso:''' Terminar Partida<br\> | ||
+ | '''Ator primário:''' Sistema Supervisório<br\> | ||
+ | '''Identificador:''' UCR11<br\> | ||
+ | '''Sumário:''' O fim da partida é informado aos Sistema do Robô..<br\> | ||
+ | '''Pré condições:''' O jogo deve estar em andamento.<br\> | ||
+ | '''Fluxo Principal:'''<br\> | ||
+ | *Sistema Supervisório informa ao Sistema do Robô que a partida acabou.<br\> | ||
+ | {{collapse bottom}} | ||
+ | {{collapse top | Diagrama de caso de uso Sistema do Robô}} | ||
+ | [[Arquivo:diagramaUCRobo.png|center|Diagrama de Caso de uso Sistema do Robô]] | ||
+ | {{collapse bottom}} | ||
+ | {{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 | Diagrama de Classe}} | ||
+ | [[Arquivo:classe.png|center|Diagrama de Classe]] | ||
+ | {{collapse bottom}} | ||
==Sistema Supervisório== | ==Sistema Supervisório== | ||
+ | {{collapse top | Casos de Uso Sistema Supervisório}} | ||
+ | '''Caso de uso:''' Autenticar ao Robô<br\> | ||
+ | '''Ator primário:''' Sistema do Robô <br\> | ||
+ | '''Identificador:''' UCS01<br\> | ||
+ | '''Sumário:''' O Sistema Supervisório se conecta ao robô.<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\> | ||
+ | <br\> | ||
+ | '''Caso de uso:''' Enviar Atualização<br\> | ||
+ | '''Ator primário:''' Sistema do Robô<br\> | ||
+ | '''Identificador:''' UCS02<br\> | ||
+ | '''Sumário:''' Envia dados de localização do Sistema do Robô em modo autônomo.<br\> | ||
+ | '''Pré condições:''' Jogo deve ter sido iniciado.<br\> | ||
+ | '''Fluxo Principal:'''<br\> | ||
+ | *Sistema do Robô envia a sua localização para o Sistema Supervisório.<br\> | ||
+ | *Sistema Supervisório transmite os dados de localização para o Sistema Arbitrário.<br\> | ||
+ | <br\> | ||
+ | '''Caso de uso:'''Validar caça Autônomo<br\> | ||
+ | '''Ator primário:''' Sistema do Robô<br\> | ||
+ | '''Identificador:''' UCS03<br\> | ||
+ | '''Sumário:''' Sistema Supervisório informa ao Sistema Arbitrário que o Sistema do Robô localizou umas caças.<br\> | ||
+ | '''Pré condições:''' Jogo deve ter sido iniciado e o Robô deve estar em cima da caça.<br\> | ||
+ | '''Fluxo Principal:'''<br\> | ||
+ | *Sistema do Robô envia ao Sistema Supervisório uma mensagem informando que localizou a caça.<br\> | ||
+ | *Sistema Supervisório envia ao Sistema Arbitrário uma mensagem informando que Robô localizou a caça.<br\> | ||
+ | *Sistema Arbitrário informa ao Sistema Supervisório que ele encontrou uma caça.<br\> | ||
+ | <br\> | ||
+ | '''Caso de uso:''' Iniciar partida.<br\> | ||
+ | '''Ator primário:''' Sistema Arbitrário<br\> | ||
+ | '''Identificador:''' UCS04<br\> | ||
+ | '''Sumário:''' Sistema Arbitrário informa ao Sistema Supervisório que o jogo irá começar.<br\> | ||
+ | '''Pré condições:''' Conectar Robô.<br\> | ||
+ | '''Fluxo Principal:'''<br\> | ||
+ | *Sistema Arbitrário aguarda a conexão dos Sistema Supervisório. <br\> | ||
+ | *Sistema Supervisório pergunta ao Robô sua localização. <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\> | ||
+ | *Sistema Supervisório informa a localização das caças para o Sistema do Robô. <br\> | ||
+ | <br\> | ||
+ | '''Caso de uso:''' Conectar Robô<br\> | ||
+ | '''Ator primário:''' Sistema Arbitrário <br\> | ||
+ | '''Identificador:''' UCS05<br\> | ||
+ | '''Sumário:''' O Sistema Supervisório envia ao Sistema Arbitrário 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 Sistema Supervisório <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\> | ||
+ | <br\> | ||
+ | '''Caso de uso:''' Receber Atualização <br\> | ||
+ | '''Ator primário:''' Sistema Arbitrário<br\> | ||
+ | '''Identificador:''' UCS06<br\> | ||
+ | '''Sumário:''' Sistema Arbitrário envia dados de localização dos competidores e locais das caças para o Sistema do Robô.<br\> | ||
+ | '''Pré condições:''' Jogo deve ter sido iniciado.<br\> | ||
+ | '''Fluxo Principal:'''<br\> | ||
+ | *Sistema Arbitrário envia a localização dos competidores e locais de caça para o Sistema Supervisório.<br\> | ||
+ | *Sistema Supervisório transmite os dados de localização para o Sistema do Robô.<br\> | ||
+ | Exceção: Em modo Manual as informações de localização não serão transmitidas<br\> | ||
+ | <br\> | ||
+ | '''Caso de uso:''' Pausar/Continuar<br\> | ||
+ | '''Ator primário:''' Sistema Arbitrário<br\> | ||
+ | '''Identificador:''' UCS07<br\> | ||
+ | '''Sumário:''' Sistema Arbitrário informa ao Sistema Supervisório que o jogo foi pausado.<br\> | ||
+ | '''Pré condições:''' O jogo deve estar em andamento.<br\> | ||
+ | '''Fluxo Principal:'''<br\> | ||
+ | *Sistema Arbitrário envia mensagem de pausa para Sistema Supervisório. <br\> | ||
+ | *Sistema Supervisório envia mensagem de pausa para Sistema do Robô.<br\> | ||
+ | *Sistema Supervisório espera uma mensagem para continuar o jogo.<br\> | ||
+ | <br\> | ||
+ | '''Caso de uso:''' Declarar Vencedor<br\> | ||
+ | '''Ator primário:''' Sistema Arbitrário<br\> | ||
+ | '''Identificador:''' UCS08<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 ou Receber Atualização.<br\> | ||
+ | '''Fluxo Principal:'''<br\> | ||
+ | *Sistema Arbitrário informa ao Sistema Supervisório que um dos Robôs encontrou a última caça.<br\> | ||
+ | <br\> | ||
+ | '''Caso de uso:''' Terminar Partida<br\> | ||
+ | '''Ator primário:''' Sistema Arbitrário<br\> | ||
+ | '''Identificador:''' UCS09<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 Sistema Supervisório que a partida acabou.<br\> | ||
+ | *Sistema Supervisório informa ao Sistema do Robô que a partida acabou.<br\> | ||
+ | <br\> | ||
+ | '''Caso de uso:'''Validar caça Manual<br\> | ||
+ | '''Ator primário:''' Jogador<br\> | ||
+ | '''Identificador:''' UCS10<br\> | ||
+ | '''Sumário:''' Sistema Supervisório informa ao Sistema Arbitrário que o Jogador localizou umas das 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\> | ||
+ | *Sistema Supervisório envia ao Sistema Arbitrário uma mensagem informando que Robô localizou a caça.<br\> | ||
+ | *Sistema Arbitrário informa ao Sistema Supervisório que ele encontrou uma caça.<br\> | ||
+ | <br\> | ||
+ | '''Caso de uso:''' Movimentar Manual<br\> | ||
+ | '''Ator primário:''' Jogador<br\> | ||
+ | '''Identificador:''' UCS11<br\> | ||
+ | '''Sumário:''' Jogador envia os comandos de movimentos para Sistema do Robô.<br\> | ||
+ | '''Pré condições:''' O Robô deve estar autenticado no Sistema Supervisório, 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\> | ||
+ | *Sistema Supervisório envia comando de movimentação para Sistema do Robô.<br\> | ||
+ | <br\> | ||
+ | {{collapse bottom}} | ||
+ | |||
+ | {{collapse top | Diagrama de caso de uso Sistema Supervisório}} | ||
+ | [[Arquivo:diagramaCUSupervisorio.png.jpeg|center|Diagrama de Caso de uso Sistema Supervisório]] | ||
+ | {{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}} | ||
==Sistema de Auditoria== | ==Sistema de Auditoria== | ||
+ | {{collapse top | Casos de Uso Sistema Arbitrário}} | ||
+ | |||
+ | '''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\> | ||
+ | <br\> | ||
+ | {{collapse bottom}} | ||
+ | |||
+ | {{collapse top | Diagrama de caso de uso Sistema Arbitrário}} | ||
+ | [[Arquivo:DiagramaSA159.png]] | ||
+ | {{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}} | ||
+ | |||
+ | ==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 14h57min de 8 de julho 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
https://github.com/Danehko/PJI2/
O segundo repositório tem o código final
Cronograma
Diário de projeto
18/02/2019 - Iniciando o projeto |
---|
Para a aula de 25/02/2019, apresentação sobre:
|
25/02/2019 - Apresentação de seminário |
---|
04/03/2019 - Recesso Carnaval |
---|
11/03/2019 - Analisar diagrama de Caso de Uso | ||||||
---|---|---|---|---|---|---|
|
18/03/2019 - Emenda feriado São José |
---|
25/03/2019 - Casos de Uso SS | ||||
---|---|---|---|---|
|
01/04/2019 - Acompanhamento | ||
---|---|---|
|
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 Sistema do Robô |
---|
Caso de uso: Sistema Anti colisão<br\> Ator primário: Sensor ultrassônico<br\> Identificador: UCR01<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\>
<br\> Caso de uso: Encontrar linha/intersecção <br\> Ator primário: Sensor de cor <br\> Identificador: UCR02<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 Sistema Supervisório.<br\> Fluxo Principal:<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\> <br\> Caso de uso: Autenticar <br\> Ator primário: Sistema Supervisório <br\> Identificador: UCR03<br\> Sumário: O Sistema Supervisório 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\>
<br\> Caso de uso: Receber Atualização<br\> . Ator primário: Sistema Supervisório<br\> Identificador: UCR03<br\> Sumário: Sistema Supervisório envia informações(locais das caças, entre outros) para o Sistema do Robô.<br\> Pré condições: O Robô deve estar autenticado no Sistema Supervisório.<br\> Fluxo Principal:<br\>
<br\> Caso de uso: Enviar Atualização<br\> Ator primário: Sistema Supervisório<br\> Identificador: UCR05<br\> Sumário: Recebe dados de localização do Sistema do Robô.<br\> Pré condições: Sistema do Robô precisa ter feito algum movimento.<br\> Fluxo Principal:<br\>
<br\> Caso de uso: Movimentar manual<br\> Ator primário: Sistema Supervisório<br\> Identificador: UCR06<br\> Sumário: Sistema Supervisório envia uma ordem de movimento.<br\> Pré condições: O Robô deve estar autenticado no Sistema Supervisório.<br\> Fluxo Principal: <br\>
<br\> Caso de uso: Movimentar autônomo<br\> Ator primário: Sistema Supervisório<br\> Identificador: UCR07<br\> Sumário: Sistema Supervisório envia uma ordem que o Sistema do Robô entrará em modo autônomo.<br\> Pré condições: Iniciar partida.<br\> Fluxo Principal: <br\>
<br\> Caso de uso: Validar caças<br\> Ator primário: Sistema Supervisório<br\> Identificador: UCR08<br\> Sumário: Sistema do Robô informa ao Sistema Supervisório 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\>
<br\> Caso de uso: Iniciar partida<br\> Ator primário: Sistema Supervisório<br\> Identificador: UCR09<br\> Sumário: Sistema Supervisório informa ao Sistema do Robô que o jogo irá começar, liberando sua movimentação.<br\> Pré condições: O Robô deve estar autenticado no Sistema Supervisório e o Sistema Supervisório deve ter informado o modo de operação do Robô.<br\> Fluxo Principal: <br\>
<br\> Caso de uso: Pausar/Continuar <br\> Ator primário: Sistema Supervisório<br\> Identificador: UCR10<br\> Sumário: Sistema Supervisório informa ao Sistema do Robô que o jogo foi pausado/continuado, bloqueando/desbloqueando sua movimentação.<br\> Pré condições: O jogo deve estar em andamento/pausado. <br\> Fluxo Principal: <br\>
<br\> Caso de uso: Terminar Partida<br\> Ator primário: Sistema Supervisório<br\> Identificador: UCR11<br\> Sumário: O fim da partida é informado aos Sistema do Robô..<br\> Pré condições: O jogo deve estar em andamento.<br\> Fluxo Principal:<br\>
|
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\> |
Sistema Supervisório
Casos de Uso Sistema Supervisório |
---|
Caso de uso: Autenticar ao Robô<br\> Ator primário: Sistema do Robô <br\> Identificador: UCS01<br\> Sumário: O Sistema Supervisório se conecta ao robô.<br\> Pré condições: O Sistema do Robô deve ser ligado.<br\> Fluxo Principal: <br\>
<br\> Caso de uso: Enviar Atualização<br\> Ator primário: Sistema do Robô<br\> Identificador: UCS02<br\> Sumário: Envia dados de localização do Sistema do Robô em modo autônomo.<br\> Pré condições: Jogo deve ter sido iniciado.<br\> Fluxo Principal:<br\>
<br\> Caso de uso:Validar caça Autônomo<br\> Ator primário: Sistema do Robô<br\> Identificador: UCS03<br\> Sumário: Sistema Supervisório informa ao Sistema Arbitrário que o Sistema do Robô localizou umas caças.<br\> Pré condições: Jogo deve ter sido iniciado e o Robô deve estar em cima da caça.<br\> Fluxo Principal:<br\>
<br\> Caso de uso: Iniciar partida.<br\> Ator primário: Sistema Arbitrário<br\> Identificador: UCS04<br\> Sumário: Sistema Arbitrário informa ao Sistema Supervisório que o jogo irá começar.<br\> Pré condições: Conectar Robô.<br\> Fluxo Principal:<br\>
<br\> Caso de uso: Conectar Robô<br\> Ator primário: Sistema Arbitrário <br\> Identificador: UCS05<br\> Sumário: O Sistema Supervisório envia ao Sistema Arbitrário 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 Sistema Supervisório <br\> Fluxo Principal: <br\>
<br\> Caso de uso: Receber Atualização <br\> Ator primário: Sistema Arbitrário<br\> Identificador: UCS06<br\> Sumário: Sistema Arbitrário envia dados de localização dos competidores e locais das caças para o Sistema do Robô.<br\> Pré condições: Jogo deve ter sido iniciado.<br\> Fluxo Principal:<br\>
Exceção: Em modo Manual as informações de localização não serão transmitidas<br\> <br\> Caso de uso: Pausar/Continuar<br\> Ator primário: Sistema Arbitrário<br\> Identificador: UCS07<br\> Sumário: Sistema Arbitrário informa ao Sistema Supervisório que o jogo foi pausado.<br\> Pré condições: O jogo deve estar em andamento.<br\> Fluxo Principal:<br\>
<br\> Caso de uso: Declarar Vencedor<br\> Ator primário: Sistema Arbitrário<br\> Identificador: UCS08<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 ou Receber Atualização.<br\> Fluxo Principal:<br\>
<br\> Caso de uso: Terminar Partida<br\> Ator primário: Sistema Arbitrário<br\> Identificador: UCS09<br\> Sumário: O fim da partida é informado aos Sistema Supervisório..<br\> Pré condições: Declarar Vencedor.<br\> Fluxo Principal:<br\>
<br\> Caso de uso:Validar caça Manual<br\> Ator primário: Jogador<br\> Identificador: UCS10<br\> Sumário: Sistema Supervisório informa ao Sistema Arbitrário que o Jogador localizou umas das 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\>
<br\> Caso de uso: Movimentar Manual<br\> Ator primário: Jogador<br\> Identificador: UCS11<br\> Sumário: Jogador envia os comandos de movimentos para Sistema do Robô.<br\> Pré condições: O Robô deve estar autenticado no Sistema Supervisório, o jogo deve ter começado e o modo de jogo deve ter sido selecionado.<br\> Fluxo Principal:<br\>
<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\> |
Sistema de Auditoria
Casos de Uso Sistema Arbitrário |
---|
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\>
<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\> |
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\> |