🚀 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

  1. No Draw.io, crie duas elipses: Fazer Login e Realizar Compra.
  2. Como Realizar Compra exige que você esteja logado, use a linha tracejada com seta apontando de Realizar Compra para Fazer Login.
  3. 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 Combate para Fazer Upload de Habilidade (É obrigatório ter a habilidade).
  • Crie uma relação de Extend de Ativar Modo Foco para Treinar 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)

  1. Faça o Commit: No GitHub Desktop, digite a mensagem (ex: Finaliza Capítulo 03 UML) e clique em Commit to main.
  2. 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.png

9. 💡 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.


Capitulo Anterior | Proximo Capitulo