Pular para conteúdo

Arquitetura de Software

1. Introdução

Este documento detalha a arquitetura de software do sistema, seus componentes principais e a interação entre eles.

O projeto MeuNorte visa auxiliar a mobilidade e acessibilidade de pessoas com deficiência visual por meio de uma solução tecnológica composta por hardware e software. Ele integra uma bengala inteligente com sensores, comunicação por Bluetooth, um aplicativo mobile e uma interface com a nuvem para funções adicionais.

2. Desenvolvimento

2.1 Componentes e Fluxos

Esta seção apresenta os principais componentes arquiteturais do sistema, detalhando sua função e interação.

2.1.1 Hardware (Bengala Inteligente)

A bengala inteligente é o dispositivo físico que auxilia o usuário, integrando os seguintes componentes:

Tabela 1: Componentes no Sistema

Componente Função
Sensor de Distância Ultrassônico HC-SR04 Mede a distância de obstáculos (2cm a 4m).
Vibracall 1027 e Pulseira Vibratória Fornecem feedback tátil para alertar o usuário.
Buzzer e Botões Geram alertas sonoros e permitem interação básica com o sistema.
Microcontrolador ESP32 Responsável pela coleta de dados dos sensores e comunicação com o aplicativo mobile via Bluetooth.

Fonte: Autoria Própria

2.1.2 Comunicação Bluetooth

  • ESP32 ↔ Aplicativo Mobile: Estabelece a conexão para transmitir dados em tempo real sobre obstáculos detectados e receber comandos do usuário.

2.1.3 Aplicativo Mobile

O aplicativo mobile é a interface principal do usuário. Suas funcionalidades incluem: - Gerenciar os dados recebidos da bengala. - Fornecer feedback multimodal (vibração e áudio) ao usuário. - Sincronizar informações com a nuvem para armazenamento e processamento adicionais. - Desenvolvido em React Native, garantindo compatibilidade com aplicações mobile.

2.1.4 Nuvem

A infraestrutura na nuvem amplia as funcionalidades do sistema, com os seguintes componentes: - FastAPI: Proporciona uma API REST para comunicação entre o aplicativo e os serviços na nuvem. - Google Maps API: Oferece recursos de localização, rotas e navegação. - Banco de Dados (SQLAlchemy): Garante armazenamento seguro e eficiente das informações, implementando ORM para manipulação estruturada dos dados.


2.2 Metas e Restrições Arquiteturais

Metas

  • Garantir comunicação estável e eficiente entre hardware e aplicativo mobile.
  • Proporcionar feedback responsivo ao usuário em tempo real.
  • Oferecer integração fluida entre o aplicativo e serviços baseados na nuvem.
  • Assegurar a escalabilidade do sistema para atender futuras melhorias ou expansão de funcionalidades.

Restrições

  • Dependência de conexão Bluetooth estável para o funcionamento adequado.
  • Necessidade de acesso à internet para sincronização de dados com a nuvem.
  • Limitação no alcance e precisão dos sensores ultrassônicos em ambientes com obstáculos muito pequenos ou materiais específicos (vidro ou superfícies absorventes de som).
  • Restrições de autonomia da bateria para uso prolongado da bengala.

2.3 Diagrama de Arquitetura de Software

A imagem abaixo apresenta uma visão geral da arquitetura do sistema:

Imagem 1: Arquitetura de Software

Arquitetura de Software

Fonte: Autoria Própria.


2.4 Tecnologias

A tabela a seguir descreve as principais tecnologias empregadas no desenvolvimento do sistema MeuNorte:

Tabela 2: Tecnologias no Sistema

Tecnologia Descrição Uso no Sistema
React Native Biblioteca JavaScript para construção de aplicativos móveis multiplataforma. Desenvolvimento do aplicativo mobile.
FastAPI Framework em Python para criação de APIs RESTful de alto desempenho. Backend para comunicação entre aplicativo e nuvem.
SQLAlchemy Biblioteca ORM para manipulação de banco de dados em Python. Gerenciamento e armazenamento de dados na nuvem.
Google Maps API API para integração de serviços de localização, rotas e navegação. Suporte a funcionalidades baseadas em geolocalização.
Firebase Plataforma de desenvolvimento de aplicativos com serviços em nuvem. Sincronização e autenticação de usuários no sistema.

Fonte: Autoria Própria

Obs:. O login não será essencial para o funcionamento do aplicativo. Tendo em vista que seria apenas caso o usuário queira relatar obstáculos no maps (para comunidade).


2.4 Diagrama de Componentes

O diagrama de componentes detalha como os subsistemas interagem por meio de interfaces específicas. Ele descreve os módulos principais (hardware, mobile, nuvem) e seus componentes. O diagrama completo, disponível no arquivo Diagrama de Componentes, pode ser acessado para uma explicação aprofundada sobre as dependências e conexões entre os componentes. A imagem do diagrama pode ser observada abaixo:

Imagem 2: Diagrama de Componentes

Diagrama de Componentes

Fonte: Autoria Própria

Principais Elementos Representados:

  • Interfaces Providas e Requeridas: Comunicação clara entre módulos.
  • Modularidade e Escalabilidade: Garantia de flexibilidade para futuras evoluções.

2.5 Requisitos de Software

Os requisitos do sistema MeuNorte foram definidos após entrevistas com stakeholders e discussões detalhadas. Entre os requisitos funcionais, destacam-se funcionalidades como mapeamento de obstáculos, orientação por rota e conexão com a bengala via Bluetooth. Já os requisitos não funcionais priorizam usabilidade, acessibilidade e simplicidade nos fluxos de usuário.

Para uma explicação completa e detalhada, acesse o documento Requisitos de Software.

3. Conclusão

A solução MeuNorte utiliza uma abordagem modular para integrar hardware, mobile e nuvem, garantindo eficiência e acessibilidade. A combinação de subsistemas com responsabilidades bem definidas e interfaces claras facilita a manutenção, expansão e adaptação do sistema a novas necessidades. A introdução do SQLAlchemy como ferramenta de manipulação de banco de dados na nuvem reforça a segurança e eficiência no tratamento das informações do sistema.

4. Referencial Teórico

  1. Pisani da ArcH. Diagrama de Componentes na prática. Disponível em: https://m.youtube.com/watch?v=yjFpwFZHGtw&pp=ygUXZGlhZ3JhbWEgZGUgY29tcG9uZW50ZXM%3D. Acesso em: 15 nov. 2024.

  2. IBM. Diagrama de Componentes. Disponível em: https://www.ibm.com/docs/pt-br/rsas/7.5.0?topic=services-component-diagrams. Acesso em: 16 nov. 2024.

  3. Documento relacionado: Diagrama de Componentes.

Versionamento

Versão Data Modificação Autor
1.0 24/11/2024 Criação do documento José Luís
1.1 27/11/2024 Adiciona descrições e imagem José Luís, Pedro Vitor & Victor Hugo
1.2 24/11/2024 Corrige posição versionamento José Luís
1.3 30/11/2024 Metas, Restrições e Tecnologias. José Luís
1.4 30/11/2024 Requisitos e formatação José Luís
1.4.1 01/12/2024 Revisão do documento Arthur Sena