🚀 Capítulo 10: Prática de Diagrama de Classes (Tema: Vingadores)
NOTE
Este capítulo utiliza a temática de Vingadores para consolidar os conceitos. Vamos modelar a equipe mais poderosa da Terra!
1. 🎯 Objetivo da Aula
Aplicar os conceitos de Classes, Atributos, Métodos, Herança, Associação e Composição em um cenário prático completo no Draw.io.
2. 🏢 O Cenário Prático (Seu Desafio)
Nick Fury pediu para você modelar o sistema de gerenciamento dos Vingadores para a SHIELD. As regras são:
- Temos uma classe base chamada
Heroi(comnomeecodinome). HomemDeFerroeThorsão subclasses deHeroi.- O
HomemDeFerropossui umaArmadura(Se o Homem de Ferro morrer, a armadura é guardada/destruída com ele - Composição). - Temos a classe
Equipe(Os Vingadores). UmaEquipepossui muitos (1..*)Herois. Se a equipe acabar, os heróis continuam existindo (Agregação).
Seu desafio é desenhar esse diagrama completo no Draw.io!
3. 🧠 Fundamentos: A Teoria Traduzida
Este capítulo fecha o Módulo 2. Vamos revisar os símbolos que você deve usar:
- Classe: Retângulo com 3 divisões.
- Herança: Seta com triângulo branco apontando para a classe mãe (
Heroi). - Composição: Losango preto do lado do “Todo” (
HomemDeFerro). - Agregação: Losango branco do lado do “Todo” (
Equipe).
4. 📖 Exemplo Guiado: Passo a Passo no Draw.io
- Crie as classes:
Heroi,HomemDeFerro,Thor,ArmaduraeEquipe. - Ligue
HomemDeFerroeThoraHeroicom a seta de herança. - Ligue
ArmaduraaHomemDeFerrocom a linha de Composição (losango preto no Homem de Ferro). - Ligue
HeroiaEquipecom a linha de Agregação (losango branco na Equipe) e coloque a multiplicidade1..*perto deHeroi.
5. 🛠️ Prática Obrigatória 1: O Sistema da SHIELD
Siga as instruções e crie o diagrama completo no Draw.io.
- Adicione atributos e métodos coerentes em cada classe (ex:
atacar()emHeroi,voar()emHomemDeFerro). - Exporte o diagrama como imagem.
6. 🛠️ Prática Obrigatória 2: Justificativa de Relacionamento
Por que a relação entre Equipe e Heroi é uma Agregação (losango branco) e não uma Composição (losango preto)? O que aconteceria com o Thor se os Vingadores fossem desfeitos e a relação fosse Composição?
7. 📤 Instruções de Entrega (GitHub Desktop + Microsoft Teams)
- Faça o Commit: No GitHub Desktop, digite a mensagem (ex:
Finaliza Capítulo 10 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_10_pratica_classes.md
│ └── codigos/
│ └── cap10/
│ └── diagramas_vingadores.png9. 💡 Checkpoint de Lógica
Se quisermos que a classe Heroi não possa ser instanciada diretamente (ou seja, não podemos criar um objeto apenas “Heroi”, ele tem que ser obrigatoriamente um Homem de Ferro ou Thor), que tipo de classe ela deve ser?
10. 🔥 Desafio de Fixação
Adicione a classe Inimigo e crie uma associação simples chamada combate entre Heroi e Inimigo.
11. 🔑 Gabarito de Código/Fórmulas
Resposta da Prática 2: É agregação porque os heróis continuam existindo mesmo se a equipe acabar. Se fosse composição, a destruição da equipe implicaria na destruição (morte) de todos os heróis vinculados a ela!