06 - Levantamento de Requisitos e Caso de Uso¶
Sistema: XXXX*)
1. Identificação dos Stakeholders¶
- Clientes: Pessoas que....
- Restaurantes: Estabelecimentos...
- Entregadores: Responsáveis...
- Administrador: Gerencia....
2. Requisitos Funcionais¶
| ID | Descrição | Prioridade |
|---|---|---|
| RF01 | O cliente... | Alta |
| RF02 | O restaurante... | Média |
| RF03 | O entregador... | Alta |
3. Requisitos Não Funcionais¶
- Performance: O app...
- Segurança: Dados....
- Usabilidade: Interface...
4. Exemplo de Caso de Uso (Exemplo)¶
UC01 - Realizar Pedido¶
- Atores: Cliente, Sistema.
- Pré-condição: Cliente está logado e com localização ativa.
- Fluxo Principal:
- Cliente seleciona um restaurante.
- Cliente adiciona itens ao carrinho.
- Cliente escolhe a forma de pagamento (cartão/PIX).
- Sistema confirma o pedido e notifica o restaurante.
- Fluxos Alternativos:
- FA1: Pagamento recusado → Sistema sugere nova tentativa ou outro método.
- FA2: Restaurante indisponível → Sistema recomenda opções similares.
- Pós-condição: Pedido é registrado e entra na fila de preparo.
5. Protótipo (Exemplo Simplificado)¶
- Tela de Busca: Barra de pesquisa + filtros (vegan, rápido, etc.).
- Carrinho: Resumo dos itens + botão "Finalizar Pedido".
6. Validação¶
- XXXXX XXX: Confirmar se o fluxo de atualização é viável.
- Teste A/B com Clientes: Comparar duas versões...
--
Diagrama de Casos de Uso (Exemplo)¶
Aqui está o diagrama de Caso de Uso (UML) para o cenário de "Realizar Pedido" no aplicativo de delivery, usando PlantUML:
Código PlantUML:¶
Explicação:¶
- Atores:
Cliente: Interage com o sistema para fazer pedidos.Restaurante(Sistema): Recebe notificações de pedidos.-
Entregador: Recebe alertas para coleta/entrega. -
Fluxo Principal (dentro do caso de uso
UC01): -
Selecionar Restaurante → Adicionar Itens → Escolher Pagamento → Confirmar Pedido.
-
Relacionamentos:
<<include>>: "Confirmar Pedido" requer "Notificar Restaurante".-
<<extend>>: Fluxos alternativos (pagamento recusado/restaurante indisponível). -
Notas: Condições do cenário.
Protótipo¶
Aqui está o protótipo de telas do aplicativo de delivery usando Salt (PlantUML), alinhado ao caso de uso anterior:
Código PlantUML (Salt)¶
Telas Prototipadas (Fluxo do Caso de Uso)¶
- Buscar Restaurantes:
- Barra de busca + filtros.
-
Lista de restaurantes com seleção (radio buttons).
-
Cardápio do Restaurante:
- Itens selecionáveis com preços.
-
Botão para adicionar ao carrinho.
-
Carrinho:
- Resumo dos itens + valor total.
-
Ação para prosseguir ao pagamento.
-
Pagamento:
- Opções de pagamento (cartão, PIX, dinheiro).
-
Confirmação do pedido.
-
Confirmação:
- Feedback de sucesso + tempo de entrega.
Como Visualizar¶
- Cole o código em ferramentas como:
- PlantText (suporte a Salt).
- VS Code com extensão PlantUML.
Exemplo de Saída (Estilizada)¶
+------------------------------+
| FastDelivery - Buscar Restaur.|
+------------------------------+
| [🔍 Buscar...] | [Filtros ▼] |
+------------------------------+
| (X) Restaurante A | ⭐ 4.5 |
| () Restaurante B | ⭐ 4.2 |
+------------------------------+
| [Ver Cardápio] | [Voltar] |
+------------------------------+
Personalização¶
- Para adicionar mais telas (ex.: login, acompanhamento de entrega):
### Diagrama de Classe
Aqui está o diagrama de classes conceitual para o sistema de delivery, representando os principais conceitos e seus relacionamentos:
Diagrama de Classes (PlantUML)¶
Explicação:¶
- Classes Principais:
- Cliente: Realiza pedidos e busca restaurantes.
- Restaurante: Oferece itens do cardápio e confirma pedidos.
- Pedido: Agrupa itens, calcula total e rastreia status.
- Item: Produtos individuais do cardápio.
- Entregador: Responsável pela entrega.
-
Pagamento: Processa transações.
-
Relacionamentos:
- Um cliente faz 0 ou N pedidos.
- Um pedido contém 1 ou N itens.
- Um restaurante tem 0 ou N itens no cardápio.
- Cada pedido tem exatamente 1 pagamento.
-
Um pedido pode estar associado a 0 ou 1 entregador.
-
Atributos e Métodos:
- Atributos privados (indicados por
-) e métodos públicos (+). - Exemplo:
Pedido.calcularTotal()soma os preços dos itens.
Adaptações Possíveis:¶
-
Adicionar Herança:
-
Incluir Enums (ex.: status do pedido):