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
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
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
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.
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.
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 |