🚀 Capítulo 16: Diagrama de Pacotes (Tema: Hogwarts)

NOTE

Este capítulo utiliza a temática de Hogwarts para explicar os Pacotes. Para organizar milhares de feitiços e alunos, precisamos dividi-los em “pastas” (Casas e Disciplinas)!


1. 🎯 Objetivo da Aula

Compreender o conceito de Diagrama de Pacotes, como ele organiza os elementos do sistema e o conceito de dependência entre pacotes.

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

Hogwarts possui milhares de livros, feitiços e poções. Se deixarmos tudo misturado, um aluno do primeiro ano pode acabar conjurando uma maldição imperdoável por engano! Seu desafio é organizar o conhecimento de Hogwarts em Pacotes (como pastas de computador) usando o Draw.io.

3. 🧠 Fundamentos: A Teoria Traduzida

O Diagrama de Pacotes é um diagrama estrutural usado para organizar elementos de diagramas de grande porte em grupos. É como a estrutura de pastas do seu projeto.

📁 Elementos Principais:

  1. Pacote: Representado por um retângulo com uma aba no topo (parece uma pasta de arquivo física).
  2. Dependência: Uma linha tracejada com uma seta aberta que indica que um pacote precisa de outro para funcionar (ou importa coisas dele).

🏰 Exemplo de Hogwarts:

  • Temos o pacote Feiticos.
  • Temos o pacote Alunos.
  • O pacote Alunos depende do pacote Feiticos (pois os alunos precisam dos feitiços para estudar).
  • Desenhamos a seta de Alunos apontando para Feiticos.

4. 📖 Exemplo Guiado: Organizando por Casas

  1. No Draw.io, procure pelo símbolo de Pacote (retângulo com a aba no canto superior esquerdo).
  2. Crie um pacote chamado Grifinoria.
  3. Dentro dele, você pode colocar classes como Harry e Ron (ou apenas listar os nomes).
  4. Crie um pacote chamado Biblioteca.
  5. Puxe uma seta de dependência de Grifinoria para Biblioteca (Os alunos precisam dos livros).

5. 🛠️ Prática Obrigatória 1: Organizando Hogwarts

No Draw.io, crie um diagrama com 3 pacotes:

  1. FeiticosDefensivos
  2. Pocoes
  3. Aluno
  • Crie as setas de dependência indicando que o Aluno precisa de ambos os pacotes para passar de ano.
  • Exporte a imagem.

6. 🛠️ Prática Obrigatória 2: Pacotes no Código

Quando programamos em linguagens como Java ou Python, como chamamos o conceito de “Pacote” na prática? (Dica: Pense nas pastas onde você salva os arquivos ou na palavra reservada usada no topo do código).


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

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

9. 💡 Checkpoint de Lógica

Se o pacote A depende do pacote B, e o pacote B depende do pacote A (Dependência Circular), isso é considerado uma boa prática de design? Por quê?

10. 🔥 Desafio de Fixação

Pesquise o que significa o estereótipo <<import>> em uma linha de dependência entre pacotes.

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

Resposta da Prática 2: Em Java, usamos a palavra-chave package e as pastas físicas. Em Python, usamos pastas com o arquivo __init__.py e chamamos de módulos ou pacotes.


Capitulo Anterior | Proximo Capitulo