🚀 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:

  1. Temos uma classe base chamada Heroi (com nome e codinome).
  2. HomemDeFerro e Thor são subclasses de Heroi.
  3. O HomemDeFerro possui uma Armadura (Se o Homem de Ferro morrer, a armadura é guardada/destruída com ele - Composição).
  4. Temos a classe Equipe (Os Vingadores). Uma Equipe possui 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

  1. Crie as classes: Heroi, HomemDeFerro, Thor, Armadura e Equipe.
  2. Ligue HomemDeFerro e Thor a Heroi com a seta de herança.
  3. Ligue Armadura a HomemDeFerro com a linha de Composição (losango preto no Homem de Ferro).
  4. Ligue Heroi a Equipe com a linha de Agregação (losango branco na Equipe) e coloque a multiplicidade 1..* perto de Heroi.

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() em Heroi, voar() em HomemDeFerro).
  • 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)

  1. Faça o Commit: No GitHub Desktop, digite a mensagem (ex: Finaliza Capítulo 10 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_10_pratica_classes.md
│   └── codigos/
│       └── cap10/
│           └── diagramas_vingadores.png

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


Capitulo Anterior | Proximo Capitulo