Mudanças entre as edições de "Grupo3-PJI2-2018-2"
(29 revisões intermediárias por 3 usuários não estão sendo mostradas) | |||
Linha 1 057: | Linha 1 057: | ||
{{Collapse bottom | Ajustes Sequência SS}} | {{Collapse bottom | Ajustes Sequência SS}} | ||
{{Collapse bottom | Aula 9 / Aula 10}} | {{Collapse bottom | Aula 9 / Aula 10}} | ||
− | ===== | + | ===== 29/10/18 ===== |
− | {{Collapse top | Aula 11}} | + | {{Collapse top | Aula 11, 12 e 13}} |
− | # | + | {{Collapse top | Ajustes Diagrama Classe SS}} |
− | # | + | [[Arquivo:Diagramassv3.jpeg|800px|thumb|center|Versao antiga]] |
− | {{Collapse bottom | Aula | + | [[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. | ||
+ | |||
+ | |||
+ | {| 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
Projeto Integrador II
Alunos: João Leonardo Martins (joao.lm@aluno.ifsc.edu.br) e Vinícius Luz (vinicius.ls@aluno.ifsc.edu.br)
Objetivo Geral
Implantar tradicional caça de robôs para buscar determinados itens através de coordenadas.
Página da Disciplina
Repositório GIT:
https://github.com/viniciusluzsouza/pji2
Diagramas
Caso de uso e descrição | ||||
---|---|---|---|---|
|
Classes |
---|
Requisitos
Funcionais |
---|
|
Não funcionais |
---|
|
Diário das Aulas
30/7/18
Aula 1 |
---|
- Definição do grupo; - Aula expositiva; - Organização das tarefas através da ferramenta Trello; |
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:
|
13/8/18
Aula 3 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
Levantamentos sobre discussões em sala
Alteração da definição do diagrama geral do projeto.
Ajustes no Diagrama UC do SR
|
20/8/18
27/8/18 e 3/9/18
Aula 5 / Aula 6 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Discussão sobre o diagrama de classes - sistema robô:
|
17/9/18
24/9/18
Aula 8 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
1/10/18 e 8/10/18
Aula 9 / Aula 10 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
29/10/18
Aula 11, 12 e 13 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
5/11/18
Aula 14 - Projeto do SA | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Bibliografia
- BEZERRA, Eduardo. Princípios de análise e projetos de sistemas com UML, 2002. Rio de Janeiro. Editora Campus LTDA.