🚀 Capítulo 09: Agregação e Composição (Tema: Lego / Mechas)

NOTE

Este capítulo utiliza a temática de Lego e Mechas (robôs gigantes) para explicar a diferença entre agregação e composição. Vamos construir um robô por partes!


1. 🎯 Objetivo da Aula

Compreender a diferença entre os relacionamentos de Agregação (Todo/Parte fraco) e Composição (Todo/Parte forte) no Diagrama de Classes.

2. 🏢 O Cenário Prático (Seu Desafio)

Você está na oficina construindo um Mecha (um robô gigante de combate). O Mecha é composto por várias partes: um Chassi, uma Bateria e Armas laser. Se o Mecha for destruído em combate, o chassi e a bateria deixam de existir. Mas as armas podem ser coletadas por outros robôs! Seu desafio é modelar essas conexões no Draw.io.

3. 🧠 Fundamentos: A Teoria Traduzida

Além da associação simples e da herança, as classes podem ter uma relação de Todo e Parte (uma classe é dona ou contém outra). Existem dois tipos:

💎 1. Composição (Relação Forte)

O objeto “Parte” não pode existir sem o objeto “Todo”. Se o Todo for destruído, a Parte morre junto.

  • Símbolo: Uma linha com um losango preenchido (preto) na ponta que toca a classe “Todo”.
  • Exemplo no Mecha: Mecha e Bateria. (A bateria é feita sob medida e soldada no mecha. Se o mecha explode, a bateria já era).

🛡️ 2. Agregação (Relação Fraca)

O objeto “Parte” pode existir de forma independente do objeto “Todo”. Se o Todo for destruído, a Parte continua viva.

  • Símbolo: Uma linha com um losango vazado (branco) na ponta que toca a classe “Todo”.
  • Exemplo no Mecha: Mecha e Armas. (As armas são encaixadas. Se o mecha quebrar, podemos tirar as armas e colocar em outro).

4. 📖 Exemplo Guiado: Desenhando no Draw.io

  1. Crie a classe Mecha no centro.
  2. Crie a classe Bateria e a classe Arma.
  3. No Draw.io, procure pelos conectores com losango.
  4. Ligue a Bateria ao Mecha usando o conector de Composição (losango preto no Mecha).
  5. Ligue a Arma ao Mecha usando o conector de Agregação (losango branco no Mecha).

5. 🛠️ Prática Obrigatória 1: Construindo o Mecha

Monte o diagrama do exemplo guiado no Draw.io.

  • Adicione uma nova classe chamada Piloto.
  • Um Mecha tem um Piloto. Se o Mecha for destruído, o piloto morre junto ou ele pode ejetar e continuar vivo? Escolha o símbolo correto (Agregação ou Composição) para ligar o Piloto ao Mecha.
  • Exporte a imagem.

6. 🛠️ Prática Obrigatória 2: Agregação ou Composição?

Diga se a relação abaixo é Agregação ou Composição: “Um Pedido de compras em um site e os Itens do Pedido. Se cancelarmos o pedido, os itens dentro dele deixam de fazer sentido sozinhos.”


7. 📤 Instruções de Entrega (GitHub Desktop + Microsoft Teams)

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

9. 💡 Checkpoint de Lógica

Pense em um Carro e um Motor. O motor pode ser retirado do carro e colocado em outro? Então essa relação é Agregação ou Composição?

10. 🔥 Desafio de Fixação

Pesquise como a linguagem de programação que você mais usa (Java, Python, C#) implementa a Composição (geralmente criando o objeto parte dentro do construtor da classe todo).

11. 🔑 Gabarito de Código/Fórmulas

Resposta da Prática 2: É Composição. Os itens de um pedido não existem sozinhos no sistema se o pedido for destruído.


Capitulo Anterior | Proximo Capitulo