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