Ir para o conteúdo

Diagrama de Componentes (Arquitetura Front-end)

Introdução

Este documento apresenta o diagrama de componentes desenvolvido para a aplicação HungryHub, mapeando a arquitetura front-end do sistema. O diagrama foi elaborado seguindo práticas estabelecidas de design de componentes para aplicações React conforme Munro [1], visando facilitar o entendimento das relações entre diferentes partes da interface, desde a navegação principal até componentes reutilizáveis. Esta visualização arquitetural serve como referência e apoio para a equipe desenvolver o projeto.

Metodologia

A construção do diagrama de componentes seguiu uma abordagem estratégica e fundamentada na análise do contexto das tecnologias envolvidas no projeto HungryHub. Considerando que a aplicação foi construída utilizando o framework React, optamos por mapear a arquitetura front-end por meio de um diagrama de componentes. Essa escolha se baseia na natureza modular e reutilizável do React, que facilita a composição de interfaces complexas por meio de pequenos blocos funcionais chamados componentes.

Objetivos

O diagrama foi desenvolvido com o objetivo de proporcionar uma visão clara das interações entre as diversas partes da interface, desde a navegação principal até componentes reutilizáveis. Ao optar por essa abordagem, buscamos não apenas representar a arquitetura de maneira estruturada, mas também garantir que a equipe tenha um entendimento aprofundado da separação de responsabilidades, da reutilização de código e das dependências entre os diferentes elementos da interface.

Adicionalmente, ao mapear a arquitetura dessa forma, conseguimos destacar potenciais áreas de refatoração, identificar dependências críticas e analisar o impacto de mudanças na aplicação, o que ajuda a garantir que o sistema permaneça escalável, de fácil manutenção e eficiente ao longo do desenvolvimento.

Abordagem

Para garantir uma representação clara e coerente, adotamos uma nomenclatura padronizada, dividindo as entidades da arquitetura em cinco tipos principais: Páginas, Componentes, Modais, Contextos e Dependências. Cada categoria foi cuidadosamente escolhida com base nas melhores práticas do desenvolvimento em React, onde a modularização e a separação de preocupações são princípios chave. A representação visual de cada tipo de entidade segue padrões que ajudam a ilustrar suas funções e suas interações com outros elementos, o que facilita a compreensão das relações dinâmicas entre os diferentes componentes.

Tipo de Entidade Descrição Exemplo
Página Representa uma rota individual da interface, que pode agregar outros componentes e modais exemplo-pagina
Componente Bloco reutilizável de interface, responsável por renderizar partes específicas da aplicação. Pode ser funcional ou de classe, e encapsula lógica e apresentação. exemplo-modal
Modal Janela sobreposta à interface principal usada para exibir informações ou interações temporárias sem navegar para outra página exemplo-componente
Contexto Ferramenta para gerenciar estado global ou compartilhado entre vários componentes, permitindo comunicação eficiente sem passar props manualmente exemplo-contexto
Dependência Representa uma relação de dependência entre duas entidades indicada pela direção da seta, ou seja, uma entidade depende ou importa uma outra entidade exemplo-dependencia

Rastreabilidade

Além disso, este documento apresenta rastreabilidade com a baseline desenvolvida para o projeto, garantindo que as decisões de arquitetura estejam alinhadas com os requisitos e as metas estabelecidas no início do desenvolvimento. Também é importante destacar que o diagrama de componentes está integrado com o protótipo desenvolvido, proporcionando uma correspondência direta entre a arquitetura proposta e a interface visual do sistema

Diagramas

Para melhor visualização, o diagrama foi divido em seções que individualizam partes da interface que estão mais relacionadas ou próximas entre si. Cada uma dessas sessões e seus autores podem ser encontradas a seguir:

1. Seção Login-Home-Notificações

!imagem da seção de login-home-notificações

Autores: Felipe Amorim de Araújo, Leonardo Sobrinho de Aguiar, Guilherme Westphall de Queiroz

2. Seção Pesquisa-Detalhes

!imagem da seção de pesquisa-detalhes

Autores: Felipe Amorim de Araújo, Leonardo Sobrinho de Aguiar, Guilherme Westphall de Queiroz

3. Seção Pedidos

!imagem da seção de favoritos

Autores: Felipe Amorim de Araújo, Guilherme Silva Dutra

4. Seção Favoritos

!imagem da seção de favoritos

Autores: Felipe Amorim de Araújo, Guilherme Silva Dutra

5. Seção Carrinho-Pagamento

!imagem da seção de carrinho-pagamento

Autores: Felipe Amorim de Araújo, Kallyne Macedo Passos, Guilherme Silva Dutra

5. Seção Perfil

!imagem da seção de perfil

Autores: Felipe Amorim de Araújo, Kauan de Torres Eiras

Referências

  1. MUNRO, Michael. Front-end component design principles. Engineering at CarsGuide, 7 dez. 2016. Disponível em: https://engineering.carsguide.com.au/front-end-component-design-principles-55c5963998c9. Acesso em: 16 nov. 2024.

Histórico de Versão

Versão Data da alteração Comentário Autor(es) Revisor(es) Data de revisão
1.0 24/11/2024 Criação do documento e adição da tabela de metodologia, imagens do diagrama e autorias Felipe Amorim de Araújo Kallyne Macedo Passos, Júlio Roberto da Silva Neto 27/11/2024
1.1 27/11/2024 Detalhamento da introdução e da metodologia Kallyne Macedo Passos Júlio Roberto da Silva Neto 28/11/2024