Grupo3-PJI2-2019-1

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

Alunos:

Suyan M. V. Moura. (suyan.m@aluno.ifsc.edu.br)

Yara Karoline Garcia. (yara.k@aluno.ifsc.edu.br)

Link repositório Git:

https://github.com/SuyKingsleigh/PJI-2


Atualizações:

Cronograma:

Cronograma-pji2.png

Diagramas de Sequência:

Diagrama de sequência SS 13/05/19

Seqss.jpg


Diagrama de sequência SS 20/05/19

Seqssat.jpg


Diagrama de sequência SA 09/06/19

Dssa.jpg


Diagrama de sequência SS automático 09/06/19

Dsautoss.png

Diagrama de sequência SS manual 09/06/19

Dsmanualss.png

Diagrama de sequência SR 05/07/19

Srdia.png

Diagramas de Classe:

Diagrama de classe SS 13/05/19

Classess.jpg

Diagrama de classe SR 03/06/19

Classesr.jpg

Diagrama de classe SA 09/06/19

Dcesa.png

Diagrama de classe SA 08/07/19

DiagramaSaCompletoFinal.png

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.

Sa-diagrama-caso-de-uso.png

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

Sr-diagrama-caso-de-uso2.png

Diagrama de Caso de Uso S.S

Ss-diagrama-caso-de-uso-f.png

Diagrama de Classe: Mover

Diagrama-classe-mover.png

Diagrama de Caso de Uso S.S. 08/04/19

Ss.png

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

Sa.png

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\>