Documento de Modelagem de Estados
Introdução
Este documento descreve a modelagem de estados para o aplicativo de delivery HungryHub, abrangendo os estados principais e suas transições para os Usuários, Lojistas, e Entregadores. Este modelo auxilia no entendimento e na estruturação das funcionalidades do sistema.
Metodologia
- Identificação de Classes Relevantes: As principais classes com comportamentos dependentes de estados foram analisadas.
- Definição de Estados: Foram definidos os estados relevantes para cada classe.
- Mapeamento de Transições: Especificamos os eventos e condições que acionam transições entre estados.
- Criação do Diagrama: Os diagramas foram criados para representar os estados e fluxos visualmente.
- Validação: Revisão pelos membros do time para garantir a consistência e alinhamento com os requisitos.
Escopo do Projeto
O projeto HungryHub é um aplicativo de delivery que conecta usuários, restaurantes e entregadores. Os principais atores do sistema são:
- Usuários: Realizam pedidos, acompanham entregas, e avaliam serviços.
- Lojistas: Recebem, preparam e gerenciam pedidos.
- Entregadores: Coletam e entregam pedidos aos usuários.
Diagramas de Estados
Visão Geral
Abaixo está o diagrama consolidado que representa os estados e transições do sistema para os três atores principais:
Autores: Bruno Araújo, Wolfgang Friedrich Stein,Kauan de Torres Eiras, Leonardo Sobrinho de Aguiar
Estados e Transições por Atores
1. Usuário
Estados
- Fazendo Login: Usuário insere credenciais para acessar o sistema.
- Logado: Usuário autenticado, com acesso ao aplicativo.
- Realizando Pedido: Seleção de itens do cardápio.
- Aguardando Confirmação: Pedido enviado e aguardando resposta do lojista.
- Pedido Confirmado: Pedido aceito pelo lojista.
- Rastreando Pedido: Pedido em rota para entrega.
- Pedido Concluído: Pedido entregue ao usuário.
- Editando Dados do Usuário: Usuário altera informações pessoais.
- Editando Informações de Pagamento: Atualização de métodos de pagamento.
- Editando Endereço: Modificação ou inclusão de endereços.
- Gerenciando Favoritos: Adição ou remoção de produtos da lista de favoritos.
Tabela 01 - Transições
Estado Atual | Evento/Condição | Próximo Estado | Mensagem/Erro |
---|---|---|---|
Inativo | Inserção de credenciais válidas | Logado | - |
Fazendo Login | Inserção de credenciais inválidas | Fazendo Login | "Credenciais inválidas" |
Logado | Início de um pedido | Realizando Pedido | - |
Realizando Pedido | Pedido enviado com sucesso | Aguardando Confirmação | - |
Aguardando Confirmação | Pedido aceito pelo lojista | Pedido Confirmado | - |
Pedido Confirmado | Entregador aceitou o pedido | Rastreando Pedido | - |
Rastreando Pedido | Pedido entregue | Pedido Concluído | - |
Editando Dados do Usuário | Dados válidos inseridos | Logado | - |
Editando Dados do Usuário | Dados inválidos inseridos | Editando Dados do Usuário | "Erro nos dados" |
Autores: Bruno Araújo, Wolfgang Friedrich Stein
2. Lojista
Estados
- Inativo: Restaurante não está logado no sistema.
- Logado: Lojista autenticado, com acesso ao aplicativo.
- Recebendo Pedidos: Restaurante habilitado para receber pedidos.
- Processando Pedido: Pedido está sendo preparado.
- Pedido Pronto: Pedido está pronto para entrega.
- Gerenciando Cardápio: Adição, edição ou remoção de itens do cardápio.
Tabela 02 - Transições
Estado Atual | Evento/Condição | Próximo Estado | Mensagem/Erro |
---|---|---|---|
Inativo | Inserção de credenciais válidas | Logado | - |
Logado | Habilitação para receber pedidos | Recebendo Pedidos | - |
Recebendo Pedidos | Pedido aceito pelo lojista | Processando Pedido | - |
Processando Pedido | Pedido finalizado | Pedido Pronto | - |
Pedido Pronto | Pedido coletado pelo entregador | Recebendo Pedidos | - |
Gerenciando Cardápio | Item atualizado com sucesso | Gerenciando Cardápio | - |
Gerenciando Cardápio | Erro ao atualizar item | Gerenciando Cardápio | "Erro ao salvar item" |
Autores: Bruno Araújo, Wolfgang Friedrich Stein
3. Entregador
Estados
- Offline: Entregador não está disponível.
- Disponível: Entregador logado e pronto para aceitar pedidos.
- A Caminho do Restaurante: Pedido aceito e entregador está a caminho do restaurante.
- Pedido em Entrega: Pedido sendo transportado para o cliente.
- Entrega Concluída: Pedido entregue ao cliente.
- Gerenciando Rota: Entregador rastreia a rota no mapa.
Tabela 03 - Transições
Estado Atual | Evento/Condição | Próximo Estado | Mensagem/Erro |
---|---|---|---|
Offline | Login realizado | Disponível | - |
Disponível | Pedido aceito | A Caminho do Restaurante | - |
A Caminho do Restaurante | Chegou ao restaurante | Pedido em Entrega | - |
Pedido em Entrega | Pedido entregue | Entrega Concluída | - |
Pedido em Entrega | Falha na entrega | Pedido em Entrega | "Erro na entrega" |
Autores: Bruno Araújo, Wolfgang Friedrich Stein
Referências
- Lucidchart. O que é um Diagrama de Máquina de Estados UML. Disponível em: Lucidchart.
- Linguagem de Modelagem Unificada: Em Português. Acesso em: 26 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 | 26/11/2024 | Criação do documento e adição de introdução, metodologia, escopo, definição de estados e referências | Leonardo Aguiar | Felipe Amorim de Araújo | 28/11/2024 |
1.1 | 26/11/2024 | Atualização da documentação e correções | Bruno Araújo | Felipe Amorim de Araújo | 28/11/2024 |
1.2 | 28/11/2024 | Refatoramento da documentação e correções | Bruno Araújo | Felipe Amorim de Araújo | 28/11/2024 |