Pular para conteúdo

Arquitetura

Introdução

Este documento apresenta as principais características da arquitetura do software da armadilha inteligente DengBuster, destacando seus componentes e as interações entre eles.

Arquitetura de Software

A figura 1 evidencia a arquitetura do software em questão:

Diagrama de Arquitetura do Produto de Software

Figura 1 – Arquitetura do Produto de Software. Fonte: Autor.

Na imagem, fica evidente o uso das seguintes tecnologias:

  • Flask: O Flask é um framework WSGI leve para aplicações web[^1]. Ele é conhecido por sua simplicidade e facilidade de uso, sendo uma ótima opção para desenvolvedores que desejam criar aplicativos da web pequenos a médios de forma eficiente[^2]. A aplicação web construída com Flask segue uma arquitetura inspirada no modelo MVC, facilitando a separação entre lógica de apresentação (dashboard), controle e acesso aos dados da armadilha.

  • Raspberry Pi: Raspberry Pi é o nome de uma linha de placas de computador de baixo custo voltada para projetos de sistemas embarcados. Essas placas funcionam como um computador, podendo ser ligadas a monitor, teclado e mouse, e ter um sistema operacional com interface gráfica, funcionando como um computador pessoal[^3]. Seu foco é realizar o processamento dos sinais recebidos através dos sensores.

  • MySql: MySql é uma linguagem responsável pela administração de um sistema de banco de dados.

  • Python: Python é uma linguagem de programação de fácil uso, multiparadigmas que atualmente está na versão 3.13[^5], utilizada para programar a solução.


Metas e Restrições Arquiteturais

Este tópico elenca as metas arquiteturais com a finalidade de atender aos requisitos exigidos, além disso, descreve as restrições para a escolha do design.

Metas

As metas definem os princípios que guiam as escolhas do projeto. Dentre elas, pode-se citar:

  • Usabilidade: Deve garantir com que o usuário possa, de maneira rápida, compreender os dados encontrados;
  • Velocidade: O algoritmo embarcado deve realizar suas atividades em um período menor que 2 segundos;
  • Paralelismo: O dashboard deve atualizar seus dados em tempo real;
  • Precisão: O algoritmo de detecção deve ter uma precisão maior que 90%;
  • Evitar perda de dados: A integração deve ocorrer de tal maneira que reduza ou elimine a perda de dados.

Restrições

As restrições delimitam as escolhas de software e estabelecem limites a serem seguidos. Pode-se citar:

  • Baixo Custo: Deve-se buscar um menor custo possível, gastando apenas com componentes extremamente necessários;
  • Limitações de Hardware: O software embarcado deve realizar suas operações dentro das restrições do hardware;
  • Integração Simples: O dashboard precisa se integrar facilmente com o software embarcado.

Casos de Uso

Os casos de uso evidenciam como o sistema atende às interações entre os atores e suas funcionalidades. Desta maneira, as tabelas a seguir descrevem cada caso de uso do sistema:

Caso de Uso: Cadastro de Localização para uma armadilha cadastrada

Campo Descrição
Ator Primário Usuário
Descrição Permite ao usuário cadastrar uma nova localização para uma armadilha no sistema, capturando informações como localização.
Pré-condições Usuário com computador, armadilha funcionando e conexão com a internet.
Fluxo Principal 1. O usuário adiciona uma localização para a máquina no mapa.
2. O usuário acessa a localização.
Fluxo Alternativo Se falhar na coleta de informações (ex.: sem internet), exibe erro ao usuário.
Pós-condições Armadilha cadastrada e visível no dashboard.
Requisitos Especiais Informações claras do local, funcionamento da armadilha.

Tabela 1: Caso de uso de registro de armadilha
Fonte: Autor


Caso de Uso: Registro de Captura

Campo Descrição
Ator Primário Sistema
Descrição Sistema detecta captura de mosquito e notifica o dashboard do usuário.
Pré-condições Armadilha funcionando e comunicação com o dashboard ativa.
Fluxo Principal 1. Sistema detecta captura.
2. Envia notificação via MQTT.
3. Dashboard exibe o evento.
Fluxo Alternativo Se falhar o envio, armazena o evento em uma fila para retransmissão futura.
Pós-condições Usuário notificado sobre a captura.
Requisitos Especiais Persistência da informação em caso de falha de comunicação.

Tabela 2: Caso de uso de envio de informação
Fonte: Autor


Diagrama de Sequência

O diagrama de sequência ilustrado na figura 2, representa a ordem e o fluxo das interações entre os sistemas ao longo do tempo, destacando como a comunicação e a transferência de dados ocorrem de maneira organizada. No contexto do DengBuster, o diagrama descreve a relação entre o Usuário, que realiza ações através do Dashboard, a Armadilha, que coleta os dados do ambiente, e a Base de Dados, que armazena e disponibiliza essas informações.

Figura 2: Diagrama de sequência. Diagrama de sequência

Referências bibliográficas

[^1]: FLASK. Bem-vindo ao Flask — Documentação do Flask (3.1.x). Disponível em: https://flask.palletsprojects.com/en/stable/. Acesso em: 24 abr 2025.
[^2]: HABBEMA, Hugo. Brincando com o Flask - Hugo Habbema. Medium, 28 Nov 2024. Disponível em: https://medium.com/@habbema/brincando-com-o-flask-e0c1a0562726. Acesso em: 24 abr 2025.
[^3]: ASSUNCAO, Arthur. Quer brincar com a Raspberry? Aprenda os primeiros passos com a Raspberry Pi 3. Medium, 2 Mar 2020. Disponível em: https://arthurnassuncao.medium.com/quer-brincar-com-a-raspberry-aprenda-os-primeiros-passos-com-a-raspberry-pi-3-614b5d8956f3. Acesso em: 24 abr 2025.
[^4]: ONLYOFFICE. O que é um arquivo CSV e como abri-lo? Disponível em: https://www.onlyoffice.com/blog/pt-br/2023/11/csv. Acesso em: 24 abr 2025.
[^5]: PYTHON. What’s New In Python 3.13. Disponível em: https://docs.python.org/3/whatsnew/3.13.html. Acesso em: 25 abr 2025.


Histórico de Versão

Versão Descrição Data Responsável
1.0 Criação do documento 24/04/2025 Arthur Trindade
1.1 Adição do diagrama de sequência 26/04/2025 Christian Hirsch
1.2 Adição da Arquitetura de Software 27/04/2025 Kauã Vinícius
1.3 Correção dos paths das imagens 01/05/2025 Christian Hirsch
1.4 Ajuste do histórico e mkdocs 01/05/2025 Christian Hirsch
1.5 Padronização 02/05/2025 Miguel Moreira
2.0 Ajustes documentação 17/07/2025 Breno Lucena e Breno Cordeiro
---