Grupo3-PJI2-2018-2: mudanças entre as edições
(95 revisões intermediárias por 3 usuários não estão sendo mostradas) | |||
Linha 8: | Linha 8: | ||
== Página da Disciplina == | == Página da Disciplina == | ||
[https://wiki.sj.ifsc.edu.br/index.php/PJI2-EngTel_(p%C3%A1gina) PJI2018-2] | [https://wiki.sj.ifsc.edu.br/index.php/PJI2-EngTel_(p%C3%A1gina) PJI2018-2] | ||
== Repositório GIT: == | |||
https://github.com/viniciusluzsouza/pji2 | |||
== Diagramas == | == Diagramas == | ||
Linha 15: | Linha 18: | ||
{{Collapse top | Caso de uso e descrição}} | {{Collapse top | Caso de uso e descrição}} | ||
[[Arquivo: | {{Collapse top | SR}} | ||
[[Arquivo:Diagramasrv4.jpeg|center|Diagrama UC - SR]] | |||
Linha 96: | Linha 100: | ||
Fluxo de exceção: | Fluxo de exceção: | ||
# Alterar rota devido à distância do obstáculo; | # Alterar rota devido à distância do obstáculo; | ||
{{Collapse bottom | SR}} | |||
{{Collapse top| SS}} | |||
[[Arquivo:Diagramassv2.jpeg|center|Diagrama UC - SS]] | |||
'''Nome: Cadastrar robô''' | |||
Identificador: CSU01; | |||
Sumário: Trata-se da inserção de novo robô no sistema, ou seja, o SA envia a solicitação ao SS, que trata do cadastro de um novo robô através de seus identificadores: cor e MAC address; | |||
Ator primário: Sistema Auditório; | |||
Precondições: | |||
#Robô já ter acesso à rede; | |||
Fluxo principal: | |||
#SA informa o cadastro do robô com determinados identificadores; | |||
#SS confirma os identificadores com o SR; | |||
Fluxos de exceção: | |||
#Em caso de divergência nas informações passadas pelo SA e as respondidas pelo SR, o robô não é autorizado a participar do jogo, ou seja, o cadastro não acontece; | |||
'''Nome: Solicitar status''' | |||
Identificador: CSU02; | |||
Sumário: Verificar se os robôs cadastrados ainda estão disponíveis; | |||
Ator primário: Sistema Auditório; | |||
Precondições: | |||
#Robô já ter sido cadastrado; | |||
Fluxo principal: | |||
#De tempo em tempo o SA envia uma solicitação ao SS de cada robô para verificar o status do mesmo (poll), caso não haja uma partida em andamento; | |||
#SS responde à solicitação (por exemplo: ICMP); | |||
Fluxos de exceção: | |||
#Caso não haja resposta, o SA conclui que o robô se desconectou; | |||
'''Nome: Configurar jogo''' | |||
Identificador: CSU03; | |||
Sumário: SA informa ao SS de cada robô o modo de jogo e as informações pertinentes a cada modo; | |||
Atores primários: Sistema Auditório; | |||
Precondições: | |||
# Robô já ter sido cadastrado e autenticado; | |||
Fluxo principal: | |||
# Definir modo de jogo dos robôs; | |||
# Passar informações como coordenadas de caças, posição inicial, etc; | |||
'''Nome: Interface''' | |||
Identificador: CSU04; | |||
Sumário: Interface para o usuário final; | |||
Ator primário: Usuário; | |||
Fluxo principal: | |||
# Realizar movimentação do robô caso a configuração de jogo definida pelo SA seja manual; | |||
# Acompanhar o estado da partida se em modo autônomo; | |||
{{Collapse bottom| SS}} | |||
{{Collapse bottom| Caso de uso e descrição}} | {{Collapse bottom| Caso de uso e descrição}} | ||
{{Collapse top | Classes}} | {{Collapse top | Classes}} | ||
{{Collapse top| Sensores}} | |||
[[Arquivo:EV3_Motor_UML.jpg|800px|thumb|center|Diagrama de Classe - Motor]] | [[Arquivo:EV3_Motor_UML.jpg|800px|thumb|center|Diagrama de Classe - Motor]] | ||
[[Arquivo:EV3_Sensor_UML.jpg|800px|thumb|center|Diagrama de Classe - Sensor]] | [[Arquivo:EV3_Sensor_UML.jpg|800px|thumb|center|Diagrama de Classe - Sensor]] | ||
[[Arquivo: | {{Collapse bottom| Sensores}} | ||
{{Collapse top| SR}} | |||
[[Arquivo:PJI2_Diagrama_0309_v6.jpg|800px|thumb|center|Diagrama de Classe - SR]] | |||
{{Collapse bottom| SR}} | |||
{{collapse top | SS}} | |||
[[Arquivo:ClassesSSv2.jpg|800px|thumb|center|Diagrama Classes - SS]] | |||
{{collapse bottom | SS}} | |||
{{collapse bottom | Classes}} | {{collapse bottom | Classes}} | ||
{{collapse top | Sequência}} | {{collapse top | Sequência}} | ||
[[Arquivo: | {{Collapse top| SR}} | ||
[[Arquivo:SS_vs_SR_v3.jpg|800px|thumb|center|Diagrama de Sequência - SS vs SR]] | |||
{{Collapse bottom| SR}} | |||
{{Collapse top| SS}} | |||
[[Arquivo:SequenciaSS1v3.jpg|800px|thumb|center|Diagrama de Sequência - SS]] | |||
{{Collapse bottom| SS}} | |||
{{collapse bottom | Sequência}} | {{collapse bottom | Sequência}} | ||
Linha 584: | Linha 672: | ||
{{Collapse bottom | Aula 4}} | {{Collapse bottom | Aula 4}} | ||
===== 27/8/18 ===== | ===== 27/8/18 e 3/9/18 ===== | ||
{{Collapse top | Aula 5}} | {{Collapse top | Aula 5 / Aula 6}} | ||
Discussão sobre o diagrama de classes - sistema robô: | Discussão sobre o diagrama de classes - sistema robô: | ||
Linha 623: | Linha 711: | ||
|- | |- | ||
| SS || SR || Start match | | SS || SR || Start match | ||
|- | |||
| SS || SR || Start position | |||
|- | |- | ||
| SS || SR || Resume match | | SS || SR || Resume match | ||
Linha 642: | Linha 732: | ||
|} | |} | ||
{{Collapse bottom| | {{Collapse bottom| Tabela SS vs SR}} | ||
{{Collapse top| Sequencia SS vs SR}} | {{Collapse top| Sequencia SS vs SR}} | ||
[[Arquivo:SS_vs_SR.jpg|800px|thumb|center|Diagrama de Sequência - SR vs SR]] | [[Arquivo:SS_vs_SR.jpg|800px|thumb|center|Diagrama de Sequência - SR vs SR]] | ||
Linha 648: | Linha 738: | ||
{{Collapse top| Ajustes diagrama UC - SR}} | {{Collapse top| Ajustes diagrama UC - SR}} | ||
[[Arquivo: | [[Arquivo:Diagramasrv3.png|800px|thumb|center|Versão antiga]] | ||
{{Collapse bottom| | [[Arquivo:Diagramasrv4.jpeg|800px|thumb|center|Nova versão]] | ||
{{Collapse bottom| Ajustes diagrama UC - SR}} | |||
{{Collapse top| Ajustes diagrama classe - SR}} | |||
[[Arquivo:PJI2_Diagrama_0309.jpg|800px|thumb|center|Versão antiga]] | |||
[[Arquivo:PJI2_Diagrama_0309_v5.jpg|800px|thumb|center|Nova versão]] | |||
{{Collapse bottom| Ajustes diagrama UC - SR}} | |||
{{Collapse top| Ajustes diagrama de sequência}} | |||
[[Arquivo:SS_vs_SR.jpg|800px|thumb|center|Versão antiga]] | |||
[[Arquivo:SS_vs_SR_v3.jpg|800px|thumb|center|Nova versão]] | |||
{{Collapse bottom| Ajustes diagrama de sequência}} | |||
{{Collapse bottom | Aula 5 / Aula 6}} | |||
===== 17/9/18 ===== | |||
{{Collapse top | Aula 7}} | |||
[[Arquivo:Cronograma_grupo3.png|800px|thumb|center|Gráfico de Gantt]] | |||
{{Collapse bottom | Aula 7}} | |||
===== 24/9/18 ===== | |||
{{Collapse top | Aula 8}} | |||
{{Collapse top | Diagrama UC}} | |||
[[Arquivo:Diagramassv2.jpeg|800px|thumb|center|Diagrama UC - SS]] | |||
'''Nome: Cadastrar robô''' | |||
Identificador: CSU01; | |||
Sumário: Trata-se da inserção de novo robô no sistema, ou seja, o SA envia a solicitação ao SS, que trata do cadastro de um novo robô através de seus identificadores: cor e MAC address; | |||
Ator primário: Sistema Auditório; | |||
Precondições: | |||
#Robô já ter acesso à rede; | |||
Fluxo principal: | |||
#SA informa o cadastro do robô com determinados identificadores; | |||
#SS confirma os identificadores com o SR; | |||
Fluxos de exceção: | |||
#Em caso de divergência nas informações passadas pelo SA e as respondidas pelo SR, o robô não é autorizado a participar do jogo, ou seja, o cadastro não acontece; | |||
'''Nome: Solicitar status''' | |||
Identificador: CSU02; | |||
Sumário: Verificar se os robôs cadastrados ainda estão disponíveis; | |||
Ator primário: Sistema Auditório; | |||
Precondições: | |||
#Robô já ter sido cadastrado; | |||
Fluxo principal: | |||
#De tempo em tempo o SA envia uma solicitação ao SS de cada robô para verificar o status do mesmo (poll), caso não haja uma partida em andamento; | |||
#SS responde à solicitação (por exemplo: ICMP); | |||
Fluxos de exceção: | |||
#Caso não haja resposta, o SA conclui que o robô se desconectou; | |||
'''Nome: Configurar jogo''' | |||
Identificador: CSU03; | |||
Sumário: SA informa ao SS de cada robô o modo de jogo e as informações pertinentes a cada modo; | |||
Atores primários: Sistema Auditório; | |||
Precondições: | |||
# Robô já ter sido cadastrado e autenticado; | |||
Fluxo principal: | |||
# Definir modo de jogo dos robôs; | |||
# Passar informações como coordenadas de caças, posição inicial, etc; | |||
'''Nome: Interface''' | |||
Identificador: CSU04; | |||
Sumário: Interface para o usuário final; | |||
Ator primário: Usuário; | |||
Fluxo principal: | |||
# Realizar movimentação do robô caso a configuração de jogo definida pelo SA seja manual; | |||
# Acompanhar o estado da partida se em modo autônomo; | |||
{{Collapse bottom | Diagrama UC}} | |||
{{Collapse top | Diagrama Classes}} | |||
[[Arquivo:ClassesSSv2.jpg|800px|thumb|center|Diagrama Classes - SS]] | |||
{{Collapse bottom | Diagrama Classes}} | |||
{{Collapse top | Diagrama Sequencias}} | |||
[[Arquivo:SequenciaSS1v1.jpg|800px|thumb|center|Diagrama Sequencias - SS]] | |||
{{Collapse bottom| Diagrama Sequencias}} | |||
{{Collapse top| Tabela SA vs SS}} | |||
{| border=1 | |||
|- | |||
| '''From''' || '''To''' || '''Message''' | |||
|- | |||
| SS || SA || ACK | |||
|- | |||
| SS || SA || validaCacas | |||
|- | |||
| SS || SA || enviaID | |||
|- | |||
| SS || SA || coordFutura | |||
|- | |||
| SS || SA || coordAtual | |||
|- | |||
| SA || SS || poll | |||
|- | |||
| SA || SS || cadastraRobo | |||
|- | |||
| SA || SS || inicia | |||
|- | |||
| SA || SS || pausa | |||
|- | |||
| SA || SS || fimJogo | |||
|- | |||
| SA || SS || atualizaCacas | |||
|- | |||
| SA || SS || atualizaAdversarios | |||
|- | |||
| SA || SS || atualizaPlacar | |||
|- | |||
| SS || SR || Get ID | |||
|- | |||
| SS || SR || Success | |||
|- | |||
| SS || SR || Fail | |||
|- | |||
| SS || SR || Enviar coord. | |||
|- | |||
| SS || SR || Pausa | |||
|- | |||
| SS || SR || Fim | |||
|- | |||
| SS || SR || Mover | |||
|- | |||
| SS || SR || Enviar listas | |||
|- | |||
| SS || SR || Inicio | |||
|- | |||
| SR || SS || ACK | |||
|- | |||
| SR || SS || MAC Address | |||
|- | |||
| SR || SS || Parar | |||
|- | |||
| SR || SS || Atualizar listas | |||
|- | |||
| SR || SS || Movendo (coordenada) | |||
|- | |||
| SR || SS || Coord. alcançada | |||
|- | |||
| SR || SS || Caça encontrada | |||
|- | |||
|} | |||
{{Collapse bottom| Tabela SA vs SS}} | |||
{{Collapse bottom | Aula 8}} | |||
===== 1/10/18 e 8/10/18 ===== | |||
{{Collapse top | Aula 9 / Aula 10}} | |||
{{Collapse top | Novo cronograma}} | |||
[[Arquivo:CronogramaPJI2_grp3.png|800px|thumb|center|Novo cronograma]] | |||
{{Collapse bottom | Novo cronograma}} | |||
{{Collapse top | Ajustes Diagrama Classe SS}} | |||
[[Arquivo:ClassesSSv2.jpg|800px|thumb|center|Versao antiga]] | |||
[[Arquivo:Diagramassv3.jpeg|800px|thumb|center|Versao nova]] | |||
{{Collapse bottom | Ajustes Diagrama Classe SS}} | |||
{{Collapse top| Ajustes Diagrama Classe SR}} | |||
[[Arquivo:PJI2_Diagrama_0309_v5.jpg|800px|thumb|center|Versao antiga]] | |||
[[Arquivo:PJI2_Diagrama_0309_v6.jpg|800px|thumb|center|Versao nova]] | |||
{{Collapse bottom | Ajustes Diagrama Classe SR}} | |||
{{Collapse top| Ajustes Diagrama UC SS}} | |||
[[Arquivo:Diagramassv1.jpeg|800px|thumb|center|Versao antiga]] | |||
[[Arquivo:DiagramaUCssv3.jpeg|800px|thumb|center|Versao nova]] | |||
'''Nome: Cadastrar robô''' | |||
Identificador: CSU01; | |||
Sumário: Trata-se da inserção de novo robô no sistema, ou seja, o SA envia a solicitação ao SS, que trata do cadastro de um novo robô através de seus identificadores: cor e MAC address; | |||
Ator primário: Sistema Auditório; | |||
Precondições: | |||
#Robô já ter acesso à rede; | |||
Fluxo principal: | |||
#SA informa o cadastro do robô com determinados identificadores; | |||
#SS confirma os identificadores com o SR; | |||
Fluxos de exceção: | |||
#Em caso de divergência nas informações passadas pelo SA e as respondidas pelo SR, o robô não é autorizado a participar do jogo, ou seja, o cadastro não acontece; | |||
'''Nome: Solicitar status''' | |||
Identificador: CSU02; | |||
Sumário: Verificar se os robôs cadastrados ainda estão disponíveis; | |||
Ator primário: Sistema Auditório; | |||
Precondições: | |||
#Robô já ter sido cadastrado; | |||
Fluxo principal: | |||
#De tempo em tempo o SA envia uma solicitação ao SS de cada robô para verificar o status do mesmo (poll), caso não haja uma partida em andamento; | |||
#SS responde à solicitação (por exemplo: ICMP); | |||
Fluxos de exceção: | |||
#Caso não haja resposta, o SA conclui que o robô se desconectou; | |||
'''Nome: Configurar jogo''' | |||
Identificador: CSU03; | |||
Sumário: SA informa ao SS de cada robô o modo de jogo e as informações pertinentes a cada modo; | |||
Atores primários: Sistema Auditório; | |||
Precondições: | |||
# Robô já ter sido cadastrado e autenticado; | |||
Fluxo principal: | |||
# Definir modo de jogo dos robôs; | |||
# Passar informações como coordenadas de caças, posição inicial, etc; | |||
'''Nome: Interface''' | |||
Identificador: CSU04; | |||
Sumário: Interface para o usuário final; | |||
Ator primário: Usuário; | |||
Fluxo principal: | |||
# Realizar movimentação do robô caso a configuração de jogo definida pelo SA seja manual; | |||
# Acompanhar o estado da partida se em modo autônomo; | |||
{{Collapse bottom | Ajustes Diagrama UC SS}} | |||
{{Collapse top| Ajustes tabela SA vs SS}} | |||
{| border=1 | |||
|- | |||
| '''From''' || '''To''' || '''Message''' | |||
|- | |||
| SS || SA || ACK | |||
|- | |||
| SS || SA || validaCacas | |||
|- | |||
| SS || SA || enviaID | |||
|- | |||
| SS || SA || coordFutura | |||
|- | |||
| SS || SA || coordAtual | |||
|- | |||
| SA || SS || poll | |||
|- | |||
| SA || SS || cadastraRobo | |||
|- | |||
| SA || SS || inicia | |||
|- | |||
| SA || SS || pausa | |||
|- | |||
| SA || SS || fimJogo | |||
|- | |||
| SA || SS || atualizaCacas | |||
|- | |||
| SA || SS || atualizaAdversarios | |||
|- | |||
| SA || SS || atualizaPlacar | |||
|- | |||
| SS || SR || Solicita ID | |||
|- | |||
| SS || SR || Sucesso | |||
|- | |||
| SS || SR || Falha | |||
|- | |||
| SS || SR || Enviar coord. | |||
|- | |||
| SS || SR || Pausa | |||
|- | |||
| SS || SR || Fim | |||
|- | |||
| SS || SR || Mover | |||
|- | |||
| SS || SR || Enviar listas | |||
|- | |||
| SS || SR || Inicio | |||
|- | |||
| SR || SS || ACK | |||
|- | |||
| SR || SS || MAC Address | |||
|- | |||
| SR || SS || Parar | |||
|- | |||
| SR || SS || Atualizar listas | |||
|- | |||
| SR || SS || Movendo (coordenada) | |||
|- | |||
| SR || SS || Coord. alcançada | |||
|- | |||
| SR || SS || Caça encontrada | |||
|- | |||
|} | |||
{{Collapse bottom| Ajustes tabela SA vs SS}} | |||
{{Collapse top | Ajustes Sequência SS}} | |||
[[Arquivo:SequenciaSS1v1.jpg|800px|thumb|center|Versao antiga]] | |||
[[Arquivo:SequenciaSS1v3.jpg|800px|thumb|center|Versao nova]] | |||
{{Collapse bottom | Ajustes Sequência SS}} | |||
{{Collapse bottom | Aula 9 / Aula 10}} | |||
===== 29/10/18 ===== | |||
{{Collapse top | Aula 11, 12 e 13}} | |||
{{Collapse top | Ajustes Diagrama Classe SS}} | |||
[[Arquivo:Diagramassv3.jpeg|800px|thumb|center|Versao antiga]] | |||
[[Arquivo:Diagramassv4.jpeg|800px|thumb|center|Versao nova]] | |||
{{Collapse bottom | Ajustes Diagrama Classe SS}} | |||
{{Collapse top| Ajustes tabela SA vs SS}} | |||
{| border=1 | |||
|- | |||
| '''From''' || '''To''' || '''Message''' | |||
|- | |||
| SS || SA || ACK | |||
|- | |||
| SS || SA || validaCacas | |||
|- | |||
| SS || SA || enviaID | |||
|- | |||
| SS || SA || coordFutura | |||
|- | |||
| SS || SA || coordAtual | |||
|- | |||
| SA || SS || poll | |||
|- | |||
| SA || SS || cadastraRobo | |||
|- | |||
| SA || SS || inicia | |||
|- | |||
| SA || SS || pausa | |||
|- | |||
| SA || SS || fimJogo | |||
|- | |||
| SA || SS || atualizaCacas | |||
|- | |||
| SA || SS || atualizaAdversarios | |||
|- | |||
| SA || SS || atualizaPlacar | |||
|- | |||
| SA || SS || solicitaID | |||
|- | |||
| SA || SS || solicitaHistorico | |||
|- | |||
| SA || SS || valicaCaca | |||
|- | |||
| SA || SS || atualizaMapa | |||
|- | |||
| SS || SR || solicitaID | |||
|- | |||
| SS || SR || sucesso | |||
|- | |||
| SS || SR || falha | |||
|- | |||
| SS || SR || Enviar coord. | |||
|- | |||
| SS || SR || pausa | |||
|- | |||
| SS || SR || fim | |||
|- | |||
| SS || SR || mover | |||
|- | |||
| SS || SR || enviarListas | |||
|- | |||
| SS || SR || inicio | |||
|- | |||
| SR || SS || ACK | |||
|- | |||
| SR || SS || macAddress | |||
|- | |||
| SR || SS || enviaID | |||
|- | |||
| SR || SS || validaCaca | |||
|- | |||
| SR || SS || paradaEmergencia | |||
|- | |||
| SR || SS || movendoPara | |||
|- | |||
| SR || SS || enviaHistorico | |||
|- | |||
| SR || SS || coordAlcancada | |||
|- | |||
| SR || SS || cacaEncontrada | |||
|- | |||
|} | |||
{{Collapse bottom| Ajustes tabela SA vs SS}} | |||
{{Collapse bottom | Aula 11, 12 e 13}} | |||
===== 5/11/18 ===== | |||
{{Collapse top | Aula 14 - Projeto do SA}} | |||
{{Collapse top | Diagrama UC}} | |||
[[Arquivo:DiagramaucSAv4.jpeg|800px|thumb|center|Diagrama UC SA]] | |||
'''Nome: Cadastra robô''' | |||
Identificador: CSU01; | |||
Sumário: Cadastro de novo robô através de informações como ID (MAC addres) e cor; | |||
Ator primário: Árbitro; | |||
Precondições: | |||
#Cor do robô ou grupo; | |||
#Conhecimento do MAC; | |||
Fluxo principal: | |||
#Jogador informa os dados para cadastro; | |||
#SA verifica em sua base e, se estiver tudo correto, o robô é cadastrado; | |||
Fluxos de exceção: | |||
#Robô já cadastrado; | |||
'''Nome: Autentica Robô''' | |||
Identificador: CSU02; | |||
Sumário: Após o cadastro completo, o SS de cada robô/grupo deve se autenticar no SA de modo a estar apto para participar das partidas; | |||
Ator primário: Sistema Supervisório; | |||
Precondições: | |||
#Robô já ter sido cadastrado; | |||
Fluxo principal: | |||
#SS envia os dados para autenticação (ID e cor); | |||
#SA processa os dados, faz uma consulta interna e permite a participação do robô; | |||
Fluxos de exceção: | |||
#Robô não cadastrado ou dados incorretos; | |||
'''Nome: Novo jogo''' | |||
Identificador: CSU03; | |||
Sumário: Nesta parte é configurado e iniciado o jogo pelo árbitro, onde o mesmo define o modo de jogo, além de internamente o SA sortear as caças e passar todas essas informações aos Sistemas Supervisórios; | |||
Atores primários: Árbitro; | |||
Precondições: | |||
# Robôs cadastrados; | |||
# Participantes autenticados; | |||
Fluxo principal: | |||
# Sortear caças; | |||
# Definir modo de jogo; | |||
# Definir a posição inicial dos robôs; | |||
# Enviar todas as informações aos SSs; | |||
'''Nome: Movendo para''' | |||
Identificador: CSU04; | |||
Sumário: A cada movimento realizado pelo robô, o SS do mesmo informa ao SA sua trajetória; | |||
Ator primário: Sistema Supervisório; | |||
Fluxo principal: | |||
# Informar o SA através de coordenadas qual o seu destino (parcial); | |||
Fluxo de exceção: | |||
# Alterar rota devido a possível conflito; | |||
'''Nome: Pausa''' | |||
Identificador: CSU05; | |||
Sumário: Solicitação de pausa enviada a cada robô/equipe; | |||
Ator primário: Árbitro; | |||
Fluxo principal: | |||
# Informar cada equipe sobre a parada; | |||
# Robôs concluem movimentos em andamento e entram no estado de pausa; | |||
'''Nome: Continua''' | |||
Identificador: CSU06; | |||
Sumário: Enviar alerta de retomada do jogo às equipes; | |||
Ator primário: Árbitro; | |||
Fluxo principal: | |||
# Informar os grupos sobre a retomada do jogo; | |||
'''Nome: Status''' | |||
Identificador: CSU07; | |||
Sumário: Acompanhamento do estado da partida; | |||
Ator primário: Árbitro; | |||
Fluxo principal: | |||
# Consultar SS a respeito da posição atual, futura, etc.; | |||
# Exibir placar e coordenadas dos robôs; | |||
'''Nome: Consulta histórico''' | |||
Identificador: CSU08; | |||
Sumário: Armazena em banco o histórico dos robôs: caças e movimentos efetuados; | |||
Ator primário: Árbitro; | |||
Fluxo principal: | |||
# Persistir dados enviados pelo SS informando movimento; | |||
# Persistir dados enviados pelo SS informando caça encontrada; | |||
{{Collapse bottom | Diagrama UC}} | |||
{{Collapse top | Tabela de mensagens}} | |||
As mensagens trocadas entre SA e SS e vice-versa utilizam o formato JSON. A tabela a seguir define o código e os parâmetros das mensagens trocadas. | |||
O código das mensagens deve ser passado através do parâmetro "cmd" no JSON, conforme exemplo a seguir: | |||
Ex.: supondo que o SA está mandando a mensagem CadastraRobo para o SS, a mensagem deve ir no seguinte formato: | |||
{ "cmd": 1000, "cor": 1, "nome": "Grupo3" } | |||
'''Observações :''' | |||
- O tipo 'dic' indica um dicionário. | |||
- O tipo 'list' indica uma lsta. | |||
{{Collapse bottom | Aula | {| border=1 | ||
|- | |||
| '''From''' || '''To''' || '''Message''' || '''Código''' || '''Parâmetros''' || '''Observações''' | |||
|- | |||
| SA || SS || CadastraRobo || 1000 || "cor": int, "nome": string || | |||
|- | |||
| SA || SS || SolicitaID || 1001 || || | |||
|- | |||
| SA || SS || SolicitaHistorico || 1002 || || | |||
|- | |||
| SA || SS || SolicitaStatus || 1003 || || | |||
|- | |||
| SA || SS || NovoJogo || 1100 || "modo_jogo": int, "x": int, "y": int, "cacas": list || "x" e "y" indicam a posicao inicial<br>"cacas" deve conter uma lista de dicionarios, que indicam as posicoes das cacas. Ex.: [{'x': 5, 'y': 3}, {'x': 1, 'y': 2}]<br>"cacas" só é obrigatorio para modo de jogo automatico<br>No parâmetro "modo_jogo, utiliza-se 1 para manual e 2 para automatico | |||
|- | |||
| SA || SS || Pausa || 1101 || || | |||
|- | |||
| SA || SS || Continua || 1102 || || | |||
|- | |||
| SA || SS || FimJogo || 1103 || || | |||
|- | |||
| SA || SS || AtualizaMapa || 1200 || "cacas": list, "posicao_adversario": dic || "posicao_adversario" deve conter um dicionario com os valores "x" e "y" do adversario | |||
|- | |||
| SA || SS || ValidacaoCaca || 2000 || "ack": int, "x": int, "y": int || "ack" deve conter 1 para caca validada e 0 para caca invalidada<br>"x" e "y" só devem ser passados caso a caca seja invalidada | |||
|- | |||
| <br> || <br> || <br> || <br> || <br> || <br> | |||
|- | |||
| SS || SA || MovendoPara || 1000 || "x": int, "y": int || | |||
|- | |||
| SS || SA || PosicaoAtual || 1001 || "x": int, "y": int || | |||
|- | |||
| SS || SA || ValidaCaca || 1002 || "x": int, "y": int || | |||
|- | |||
| SS || SA || ObstaculoEncontrado || 1003 || || | |||
|- | |||
| SS || SA || SolicitaID_RESP || 2000 || "cor": int, "nome": string, "mac": string || | |||
|- | |||
| SS || SA || SolicitaHistorico_RESP || 2002 || "historico": list || | |||
|- | |||
| SS || SA || SolicitaStatus_RESP || 2003 || || | |||
|- | |||
| <br> || <br> || <br> || <br> || <br> || <br> | |||
|- | |||
|} | |||
{{Collapse bottom | Tabela de mensagens}} | |||
{{Collapse top | Diagrama de classe}} | |||
[[Arquivo:ClasseSA.jpeg|800px|thumb|center|Diagrama Classe SA]] | |||
{{Collapse bottom | Diagrama de classe}} | |||
{{Collapse top | Diagrama de sequência}} | |||
[[Arquivo:SequenciaSAv2.jpeg|800px|thumb|center|Diagrama sequência SA]] | |||
{{Collapse bottom | Diagrama de sequência}} | |||
{{Collapse bottom | Aula 14 - Projeto do SA}} | |||
== Bibliografia == | == Bibliografia == | ||
* BEZERRA, Eduardo. Princípios de análise e projetos de sistemas com UML, 2002. Rio de Janeiro. Editora Campus LTDA. | * BEZERRA, Eduardo. Princípios de análise e projetos de sistemas com UML, 2002. Rio de Janeiro. Editora Campus LTDA. |
Edição atual tal como às 22h04min de 18 de novembro de 2018
1 Projeto Integrador II
Alunos: João Leonardo Martins (joao.lm@aluno.ifsc.edu.br) e Vinícius Luz (vinicius.ls@aluno.ifsc.edu.br)
1.1 Objetivo Geral
Implantar tradicional caça de robôs para buscar determinados itens através de coordenadas.
1.2 Página da Disciplina
1.3 Repositório GIT:
https://github.com/viniciusluzsouza/pji2
1.4 Diagramas
Classes |
---|
1.5 Requisitos
Funcionais |
---|
|
Não funcionais |
---|
|
1.6 Diário das Aulas
1.6.1 30/7/18
Aula 1 |
---|
- Definição do grupo; - Aula expositiva; - Organização das tarefas através da ferramenta Trello; |
1.6.2 6/8/18
Aula 2 | |||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
- Efetuada a leitura da documentação do EV3-Python: apesar do bot já possuir o linux instalado, estudamos como seria a implementação do mesmo; - Início da montagem do robô: encontramos algumas dificuldades pois o equipamento estava completamente desmontado, com isso, até entendermos que a montagem seria basicamente livre, sofremos um pouco na idealização do EV3; - Alinhamento sobre comunicação com o robô: ficou definido que vamos utilizar um adaptador wi-fi no mesmo, sendo assim, um terceiro equipamento se fez necessário, uma vez que a o EV3 não conecta na rede do Instituto; - Alguns exemplos de implementação foram observados na documentação do EV3, conforme pode ser obtido através destes links: Exemplos Motor e Exemplos Sensor - Diagrama Geral do Projeto: ![]()
|
1.6.3 13/8/18
Aula 3 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
Levantamentos sobre discussões em sala
Alteração da definição do diagrama geral do projeto.
1.6.1 Ajustes no Diagrama UC do SR
|
1.6.1.1 20/8/18
1.6.1.2 27/8/18 e 3/9/18
Aula 5 / Aula 6 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Discussão sobre o diagrama de classes - sistema robô:
|
1.6.1.3 17/9/18
1.6.1.4 24/9/18
Aula 8 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
1.6.1.5 1/10/18 e 8/10/18
Aula 9 / Aula 10 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
1.6.1.6 29/10/18
Aula 11, 12 e 13 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
1.6.1.7 5/11/18
Aula 14 - Projeto do SA | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
1.7 Bibliografia
- BEZERRA, Eduardo. Princípios de análise e projetos de sistemas com UML, 2002. Rio de Janeiro. Editora Campus LTDA.