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

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 11: Linha 11:
  
 
== Atualizações: ==
 
== Atualizações: ==
 +
 +
== Casos de Uso: ==
 +
 +
 +
{{collapse top | Caso de uso S.A}}
 +
'''Nome: Verifica tabuleiro'''
 +
 +
Identificador: CSU.SA 01
 +
 +
Sumário: Inicia a conexão entre S.A S.S
 +
 +
Ator primário: S.S
 +
 +
Fluxo principal:
 +
 +
S.S envia ao S.A uma mensagem contendo o nome do robô, cor e senha.
 +
 +
S.A válida os dados ou não.
 +
 +
Fluxo de exceções:
 +
 +
Senha errada o Login errado:
 +
 +
Simplesmente envia uma mensagem ao S.S informando-o que não foi possível conectar devido a login e/ou senha errado(s)
 +
 +
'''Nome: Acessa histórico
 +
'''
 +
 +
Identificador: CSU.SA 02
 +
 +
Sumário: Envia histórico de partidas ao cliente.
 +
 +
Ator primário: S.A.
 +
 +
Précondições:
 +
 +
CSU.SA 01
 +
 +
Fluxo principal:
 +
 +
S.S. solicita histórico de partidas ao S.A.
 +
 +
S.A procura em seu banco de dados o histórico daquele cliente
 +
 +
Caso tenha algo, envia o histórico, caso contrário informa que não há histórico. 
 +
 +
 +
'''Nome: Inicia partida.
 +
'''
 +
 +
Identificador: CSU.SA 03
 +
 +
Sumário: Inicia a partida, sorteando as caças e informando aos robôs suas posições
 +
 +
Ator primário: S.A
 +
 +
Fluxo principal:
 +
 +
Gera as posições das caças
 +
 +
Informa a todos
 +
 +
Espera ack de todos para iniciar de fato.
 +
 +
Fluxo de exeção
 +
 +
Não recebeu ack de todos os robôs
 +
 +
Envia novamente.
 +
 +
 +
 +
'''Nome: Valida caça.
 +
 +
'''
 +
Identificador: CSU.SA 04
 +
 +
Sumário: Válida ou não a caça de um robô
 +
 +
Ator primário: SA.
 +
 +
A partida ter começado (CSU.SA 03)
 +
 +
Fluxo principal:
 +
 +
Recebe mensagem de caça obtida de algum determinado S.S
 +
 +
S.A verifica se realmente aquela caça é válida ou não
 +
 +
Caso seja validada, incrementa o placar e atualiza as caças, informado aos outros S.S.
 +
 +
Nome: Recebe informações dos robôs.
 +
 +
Identificador: CSU.SA 05
 +
 +
Sumário: Recebe dados de movimentação dos robôs.
 +
 +
Précondições: CSU.SA 03
 +
 +
Ator primário: S.A.
 +
 +
Fluxo principal:
 +
 +
S.S informa a posição de seu respectivo robô ao S.A
 +
 +
S.A processa a informação
 +
 +
S.A informa ao S.S a posição de outros robôs para evitar colisões.
 +
 +
 +
'''Nome: Declara vencedor'''
 +
 +
Identificador: CSU.SA 06
 +
 +
Sumário: Finaliza uma partida declarando o vencedor.
 +
 +
Ator primário: S.A.
 +
 +
Précondições: CSU.SA 03
 +
 +
Fluxo principal:
 +
 +
Calcula a pontuação
 +
 +
Informa a pontuação aos jogadores.
 +
 +
Salva histórico de partida.
 +
 +
 +
 +
 +
 +
 +
'''Nome: Pausa'''
 +
 +
Identificador: CSU.SA 07
 +
 +
Sumário: Pausa a partida caso o árbitro decida.
 +
 +
Ator primário: S.A.
 +
 +
Précondições: CSU.SA 03
 +
 +
Fluxo principal:
 +
 +
Envia mensagem de pause para os S.S.
 +
 +
Espera ACK
 +
 +
Uma vez todos os ACKs recebido, aguarda o recomeço da partida.
 +
 +
Recomeça a partida de onde fora pausada.
 +
 +
 +
 +
 +
{{collapse bottom}}
 +
  
 
== Diagramas: ==
 
== Diagramas: ==

Edição das 17h31min de 31 de março de 2019

Alunos:

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

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

Link repositório Git:

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


Atualizações:

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.




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

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


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.;

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*