Mudanças entre as edições de "Guilherme Anderson-PJI2-2020-1"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 22: Linha 22:
 
* RNF.03 - O software desenvolvido para a estação Raspberry deve ser modular, prevendo futuras melhorias incrementais, como a compatibilidade com outros sensores;
 
* RNF.03 - O software desenvolvido para a estação Raspberry deve ser modular, prevendo futuras melhorias incrementais, como a compatibilidade com outros sensores;
  
==Casos de uso==
+
==Casos de uso
<span style="font-size: 16.24px; font-weight: bold;"></span>
+
==
 +
<span style="font-size: 16.24px; font-weight: bold;">Caso de uso: Registrar sensor</span><br  />Ator primário: Administrador.
 +
 
 +
 
 +
Ator secundário: Sensor.
 +
 
 +
 
 +
Sistema: Estação Metereológica
  
  
<span style="font-size: 16.24px; font-weight: bold;">Caso de uso: Registrar sensor</span><br  />Ator primário: usuário.<br  />
 
 
Fluxo principal:
 
Fluxo principal:
* O usuário faz a conexão física do sensor na placa da Raspberry Pi.
+
* O Administrador faz a instalação física do sensor na placa da Raspberry Pi.
* O usuário envia uma requisição HTTP contendo os dados do sensor a ser registrado;
+
* O Administrador envia uma requisição HTTP contendo os dados do sensor a ser registrado para a Estação Metereológica;
* O sistema responde o usuário uma mensagem HTTP de sucesso;
+
* O sistema configura e ativa o sensor e responde ao Administrador uma mensagem HTTP de sucesso;
  
 
====Caso de uso: Remover sensor====
 
====Caso de uso: Remover sensor====
Ator primário: usuário
+
Ator primário: Administrador
 +
Ator secundário: Sensor.
 +
 
 +
 
 +
Sistema: Estação Metereológica
  
  
 
Fluxo principal:
 
Fluxo principal:
* O usuário envia uma requisição HTTP contendo o identificador do sensor a ser removido.
+
* O Administrador envia uma requisição HTTP contendo o identificador do sensor a ser removido.
* O sistema responde o usuário uma mensagem HTTP de sucesso.
+
* O sistema remove o sensor de seus registros e rotinas e responde o Administrador uma mensagem HTTP de sucesso.
* O usuário faz desconexão física do sensor na placa da Raspberry Pi.
+
* O Administrador faz desconexão física do sensor na placa da Raspberry Pi
  
 
====Caso de uso: Alterar registro<br  />====
 
====Caso de uso: Alterar registro<br  />====
Ator primário: usuário<br  />
+
Ator primário: Usuário
 +
 
 +
 
 +
 
 +
 
 +
 
 +
Atores secundários: Broker e Sensor.
 +
 
 +
 
 +
Sistema: Estação Metereológica
 +
 
 +
 
 
Fluxo principal:
 
Fluxo principal:
* O usuário envia uma requisição HTTP contendo os dados do sensor a ser atualizado;
+
 
* O sistema responde o usuário uma mensagem HTTP de sucesso;
+
* O usuário envia uma requisição HTTP contendo os dados do sensor a ser atualizado para o Broker;
 +
* O Broker executa suas rotinas internas de enfileiramento e roteamento e repassa a requisição para o sistema.
 +
* O sistema configura o sensor e responde o usuário uma mensagem HTTP de sucesso através do Broker;
  
 
====Caso de uso: Requisitar dados<br  />====
 
====Caso de uso: Requisitar dados<br  />====
Ator primário: usuário.<br  />
+
 
 +
 
 +
Ator primário: Usuário
 +
 
 +
 
 +
 
 +
 
 +
 
 +
Atores secundários: Broker e Sensor.
 +
 
 +
 
 +
Sistema: Estação Metereológica
 +
 
 +
 
 
Fluxo principal:
 
Fluxo principal:
* O usuário envia uma requisição HTTP contendo o identificador do sensor que deseja-se obter as leituras;
+
* O usuário envia uma requisição HTTP contendo os dados do sensor a ser lido para o Broker;
* O sistema responde o usuário com uma mensagem HTTP contendo as leituras solicitadas;
+
* O Broker executa suas rotinas internas de enfileiramento e roteamento e repassa a requisição para o sistema.
 +
* O sistema lê o sensor e responde o usuário uma mensagem HTTP de sucesso através do Broker;
  
 
====Caso de uso: Notificação<br  />====
 
====Caso de uso: Notificação<br  />====
Ator primário: usuário.<br  />
+
 
 +
 
 +
Ator primário: Estação Metereológica
 +
 
 +
 
 +
 
 +
 
 +
 
 +
Atores secundários: Broker, Sensor e Usuário.
 +
 
 +
 
 
Fluxo principal:
 
Fluxo principal:
* O sistema registra uma leitura maior que o valor limite especificado na configuração do sensor.
+
* O sistema identifica um valor fora dos limites configurados para o sensor através de sua rotina interna de leitura.
* Assim que possível o sistema envia uma notificação para o servidor de fila de mensagens;
+
* O sistema envia para o Broker a notificação que deve ser repassada para todos os usuários (broadcast)<br  />
* Assim que possível o servidor de fila de mensagens envia a notificação para o usuário;
+
* O Broker executa suas rotinas internas de enfileiramento e roteamento e repassa a notificação para todos os usuários.
  
 
==Diagrama de casos de uso==
 
==Diagrama de casos de uso==
 
[[Arquivo:Diagramauso.png |center| 800px|600px | Diagrama de casos de uso]]
 
[[Arquivo:Diagramauso.png |center| 800px|600px | Diagrama de casos de uso]]
 +
 +
 +
 +
 +
  
 
==Diagrama de classes==
 
==Diagrama de classes==
 
[[Arquivo:diagramaClasses.png |center| 800px|600px | Diagrama de casos de uso]]
 
[[Arquivo:diagramaClasses.png |center| 800px|600px | Diagrama de casos de uso]]
:::::::::::::::::::::::::::::::: Diagrama de casos de uso
 
  
==Diagrama de Sequência Requisição de Dados==
 
  
[[Arquivo:getUser.png |center| 800px|600px | Diagrama de sequência de leitura de dados do usuário]]
 
  
:::::::::::::::::::::::::::: Diagrama de sequência de leitura de dados do usuário
 
  
 +
==Diagramas de sequência==
 +
[[Arquivo:diagramaClasses.png |center| 800px|600px | Diagrama de casos de uso]]
 +
 +
 +
 +
 +
:
 +
::
 +
:::
 +
::::
 +
:::::
 +
::::::
 +
:::::::
 +
::::::::
 +
:::::::::
 +
::::::::::
 +
:::::::::::
 +
::::::::::::
 +
:::::::::::::
 +
::::::::::::::
 +
:::::::::::::::
 +
::::::::::::::::
 +
:::::::::::::::::
 +
::::::::::::::::::
 +
:::::::::::::::::::
 +
::::::::::::::::::::
 +
:::::::::::::::::::::
 +
::::::::::::::::::::::
 +
:::::::::::::::::::::::
 +
::::::::::::::::::::::::
 +
:::::::::::::::::::::::::
 +
::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: <br  />
 +
 +
:
 +
::
 +
:::
 +
::::
 +
:::::
 +
::::::
 +
:::::::
 +
::::::::
 +
:::::::::
 +
::::::::::
 +
:::::::::::
 +
::::::::::::
 +
:::::::::::::
 +
::::::::::::::
 +
:::::::::::::::
 +
::::::::::::::::
 +
:::::::::::::::::
 +
::::::::::::::::::
 +
:::::::::::::::::::
 +
::::::::::::::::::::
 +
:::::::::::::::::::::
 +
::::::::::::::::::::::
 +
:::::::::::::::::::::::
 +
::::::::::::::::::::::::
 +
:::::::::::::::::::::::::
 +
::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Diagrama de sequência de leitura de dados do usuário
 
==Diagrama de Sequência Requisição de Dados==
 
==Diagrama de Sequência Requisição de Dados==
 
[[Arquivo:GetAdmin.png |center| 800px|600px | Diagrama de sequência de leitura de dados do Administrador]]
 
[[Arquivo:GetAdmin.png |center| 800px|600px | Diagrama de sequência de leitura de dados do Administrador]]
:::::::::::::::::::::::::::: Diagrama de sequência de leitura de dados do Administrador
+
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Diagrama de sequência de leitura de dados do Administrador
  
 
==Diagrama de Sequência de Notificação==
 
==Diagrama de Sequência de Notificação==
 
[[Arquivo:Diagramasequecinanotificacao.png |center| 800px|600px | Diagrama de sequência de notificação]]
 
[[Arquivo:Diagramasequecinanotificacao.png |center| 800px|600px | Diagrama de sequência de notificação]]
:::::::::::::::::::::::::::::::: Diagrama de sequência de notificação
+
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 +
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Diagrama de sequência de notificação

Edição das 15h00min de 19 de setembro de 2020

Responsaveis

  • Anderson Gaspar, e-mail: andersongasparm@gmail.com
  • Guilherme Lopes Roque, email: guilherme.lroque@gmail.com

Levantamento de Requisitos

Funcionais:

  • RF.01 O sistema deve possuir uma estação Raspberry que servirá como gerenciador de sensores.
  • RF.02 O sistema deve permitir a instalação e remoção física de sensores da estação;
  • RF.03 O sistema deve possuir uma API Rest para servir de interface do usuário com o sistema;
  • RF.04 O sistema deve possuir um servidor de fila de mensagens para as notificações.
  • RF.05 O sistema deve permitir a configuração valores limites de leitura dos sensores para gatilho das notificações da estação.
  • RF.06 O sistema deve permitir a configuração do tempo do ciclo de leitura dos sensores;
  • RF.06 O sistema suportar inicialmente os seguintes sensores:
  1. HDC1080
  2. BMP180
  3. DHT11
  4. Presença PIR

Não funcionais:

  • RNF.01 - O usuário deve estar conectado à Internet para receber as notificações geradas pelo sistema
  • RNF.02 - O usuário deve estar no mesmo enlace de rede para acessar o sistema;
  • RNF.03 - O software desenvolvido para a estação Raspberry deve ser modular, prevendo futuras melhorias incrementais, como a compatibilidade com outros sensores;

==Casos de uso == Caso de uso: Registrar sensor
Ator primário: Administrador.


Ator secundário: Sensor.


Sistema: Estação Metereológica


Fluxo principal:

  • O Administrador faz a instalação física do sensor na placa da Raspberry Pi.
  • O Administrador envia uma requisição HTTP contendo os dados do sensor a ser registrado para a Estação Metereológica;
  • O sistema configura e ativa o sensor e responde ao Administrador uma mensagem HTTP de sucesso;

Caso de uso: Remover sensor

Ator primário: Administrador Ator secundário: Sensor.


Sistema: Estação Metereológica


Fluxo principal:

  • O Administrador envia uma requisição HTTP contendo o identificador do sensor a ser removido.
  • O sistema remove o sensor de seus registros e rotinas e responde o Administrador uma mensagem HTTP de sucesso.
  • O Administrador faz desconexão física do sensor na placa da Raspberry Pi

Caso de uso: Alterar registro

Ator primário: Usuário



Atores secundários: Broker e Sensor.


Sistema: Estação Metereológica


Fluxo principal:

  • O usuário envia uma requisição HTTP contendo os dados do sensor a ser atualizado para o Broker;
  • O Broker executa suas rotinas internas de enfileiramento e roteamento e repassa a requisição para o sistema.
  • O sistema configura o sensor e responde o usuário uma mensagem HTTP de sucesso através do Broker;

Caso de uso: Requisitar dados

Ator primário: Usuário



Atores secundários: Broker e Sensor.


Sistema: Estação Metereológica


Fluxo principal:

  • O usuário envia uma requisição HTTP contendo os dados do sensor a ser lido para o Broker;
  • O Broker executa suas rotinas internas de enfileiramento e roteamento e repassa a requisição para o sistema.
  • O sistema lê o sensor e responde o usuário uma mensagem HTTP de sucesso através do Broker;

Caso de uso: Notificação

Ator primário: Estação Metereológica



Atores secundários: Broker, Sensor e Usuário.


Fluxo principal:

  • O sistema identifica um valor fora dos limites configurados para o sensor através de sua rotina interna de leitura.
  • O sistema envia para o Broker a notificação que deve ser repassada para todos os usuários (broadcast)
  • O Broker executa suas rotinas internas de enfileiramento e roteamento e repassa a notificação para todos os usuários.

Diagrama de casos de uso

Diagrama de casos de uso




Diagrama de classes

Diagrama de casos de uso



Diagramas de sequência

Diagrama de casos de uso




Diagrama de sequência de leitura de dados do usuário

Diagrama de Sequência Requisição de Dados

Diagrama de sequência de leitura de dados do Administrador
Diagrama de sequência de leitura de dados do Administrador

Diagrama de Sequência de Notificação

Diagrama de sequência de notificação
Diagrama de sequência de notificação