🚀 Capítulo 03: Casos de Uso - Relacionamentos (Tema: Matrix)
NOTE
Este capítulo utiliza a temática de Matrix para explicar os relacionamentos de Include e Extend. Na Matrix, certas ações exigem que outras aconteçam obrigatoriamente!
1. 🎯 Objetivo da Aula
Compreender e aplicar os relacionamentos de Include (Inclusão) e Extend (Extensão) em diagramas de casos de uso.
2. 🏢 O Cenário Prático (Seu Desafio)
Você está na Nabucodonosor programando o simulador de treinamento. Para que Neo possa “Lutar Kung Fu”, ele precisa primeiro “Fazer Upload de Habilidade”. Além disso, se ele estiver em perigo real, ele pode precisar “Desviar de Balas” (uma ação especial). Seu desafio é modelar essas regras no Draw.io usando as flechas corretas!
3. 🧠 Fundamentos: A Teoria Traduzida
Nem todos os casos de uso são isolados. Às vezes, um caso de uso depende de outro. Na UML, usamos dois relacionamentos principais para isso:
🧩 1. Include (Inclusão) - OBRIGATÓRIO
Significa que um caso de uso chama obrigatoriamente outro para funcionar. O fluxo não acontece sem ele.
- Seta: Tracejada apontando para o caso de uso incluído, com o texto
<<include>>. - Exemplo na Matrix: “Fazer Ligação do Orelhão” inclui “Estar Conectado na Matrix”. (Não dá para ligar sem estar conectado!).
🔀 2. Extend (Extensão) - OPCIONAL / CONDICIONAL
Significa que um caso de uso pode adicionar comportamento a outro, mas apenas sob certas condições ou se o usuário quiser.
- Seta: Tracejada apontando para o caso de uso base, com o texto
<<extend>>. - Exemplo na Matrix: “Combate com Agente” pode ser estendido por “Desviar de Balas”. (Você só desvia de balas se o agente atirar!).
4. 📖 Exemplo Guiado: Desenhando no Draw.io
- No Draw.io, crie duas elipses:
Fazer LogineRealizar Compra. - Como
Realizar Compraexige que você esteja logado, use a linha tracejada com seta apontando deRealizar CompraparaFazer Login. - Adicione o texto
<<include>>na linha.
5. 🛠️ Prática Obrigatória 1: Modelando o Treinamento do Neo
No Draw.io, crie o seguinte diagrama:
- Ator:
Neo. - Casos de Uso:
Treinar Combate,Fazer Upload de Habilidade,Ativar Modo Foco. - Crie uma relação de Include de
Treinar CombateparaFazer Upload de Habilidade(É obrigatório ter a habilidade). - Crie uma relação de Extend de
Ativar Modo FocoparaTreinar Combate(Ele só ativa o foco se a luta estiver difícil). - Exporte o diagrama como imagem.
6. 🛠️ Prática Obrigatória 2: Identificando a Relação
Diga se a relação abaixo é um Include ou um Extend:
“Para o caso de uso Sacar Dinheiro no caixa eletrônico, o sistema precisa Validar Senha.”
7. 📤 Instruções de Entrega (GitHub Desktop + Microsoft Teams)
- Faça o Commit: No GitHub Desktop, digite a mensagem (ex:
Finaliza Capítulo 03 UML) e clique em Commit to main. - Envie para a Nuvem (Push): Clique em Push origin.
8. 📂 Estrutura de Pastas
extra_guia_de_modelagem_uml/
├── capitulos/
│ ├── capitulo_03_relacoes.md
│ └── codigos/
│ └── cap03/
│ └── treinamento_neo.png9. 💡 Checkpoint de Lógica
Se a seta do <<include>> apontar para o lado errado (do incluído para o base), o que acontece com o sentido da leitura do diagrama?
10. 🔥 Desafio de Fixação
Pesquise o que é o relacionamento de Generalização (Herança) entre casos de uso.
11. 🔑 Gabarito de Código/Fórmulas
Resposta da Prática 2: É um Include! Você não consegue sacar dinheiro sem validar a senha primeiro, o processo é obrigatório.