Exercícios: Aula 05 - Especificação de Casos de Uso 📝
Descubra como documentar a interação entre o usuário e o sistema com precisão.
1. Atores de Sistema (Básico 1)
Contexto: Um ator representa um papel, não necessariamente uma pessoa física.
Pergunta: Um banco de dados externo ou um sistema de gateway de pagamento pode ser considerado um Ator em um Diagrama de Casos de Uso? Justifique.
2. O Caminho Feliz (Básico 2)
Contexto: Todo Caso de Uso possui fluxos de execução.
Pergunta: O que caracteriza o Cenário Principal (ou Fluxo Principal) de um Caso de Uso?
3. Gestão de Erros (Intermediário 1)
Contexto: O sistema deve saber o que fazer quando algo sai do planejado (Exceções).
Pergunta: No contexto de uma especificação de Caso de Uso, qual a diferença entre um Fluxo Alternativo e um Fluxo de Exceção?
4. Condicionantes (Intermediário 2)
Contexto: Casos de Uso não acontecem no vácuo; eles têm estados anteriores e posteriores.
Pergunta: Explique a importância de definir as Pós-condições em uma especificação de Caso de Uso. O que acontece se elas não forem atendidas?
5. Desafio: Include vs Extend (Desafio)
Contexto: Muitos analistas iniciantes confundem essas duas relações.
Pergunta: Uma funcionalidade de "Validar Token de Segurança" seria melhor representada como um <<include>> ou um <<extend>> em relação ao Caso de Uso "Realizar Transferência"? Justifique sua escolha técnica.
---
📚 Gabarito e Soluções Comentadas
Gabarito Explicado Respostas e explicações para os exercícios da **Aula 05**. --- ### ✅ 1. Ator vs Pessoa (Básico) **Resposta Sugerida:** Um **Ator** é um papel desempenhado por um usuário ou sistema externo. Uma mesma pessoa pode desempenhar vários papéis (ex: "Maria" pode ser "Vendedora" e "Gerente"). --- ### ✅ 2. Cenários (Básico) **Resposta Sugerida:** * **Cenário Principal:** O caminho feliz, onde tudo dá certo. * **Cenário de Exceção:** Quando algo impede o fluxo (ex: "Senha Incorreta"). --- ### ✅ 3. Pre-condições e Pós-condições (Intermediário) **Explicação:** * **Pré-condição:** O que deve ser verdade antes de começar (ex: "Usuário deve estar logado"). * **Pós-condição:** O estado do sistema após o fim (ex: "Pedido registrado no banco"). --- ### ✅ 4. Use Case Description (Intermediário) **Exemplo de Fluxo:** 1. Ator solicita cancelamento. 2. Sistema valida prazo de 7 dias. 3. [Exceção] Prazo excedido: Sistema notifica erro. 4. Sistema estorna valor. 5. Sistema envia email de confirmação. --- ### ✅ 5. Desafio: Include vs Extend (Desafio) **Resolução Sugerida:** * **Include:** Comportamento obrigatório (ex: "Fazer Login" incluído em "Realizar Compra"). * **Extend:** Comportamento opcional ou condicional (ex: "Aplicar Cupom" estende "Realizar Compra"). * **Dica:** Se o sistema *sempre* faz, use include. Se ele faz *às vezes*, use extend. ---