🚀 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:
- Pacote: Representado por um retângulo com uma aba no topo (parece uma pasta de arquivo física).
- 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
Alunosdepende do pacoteFeiticos(pois os alunos precisam dos feitiços para estudar). - Desenhamos a seta de
Alunosapontando paraFeiticos.
4. 📖 Exemplo Guiado: Organizando por Casas
- No Draw.io, procure pelo símbolo de Pacote (retângulo com a aba no canto superior esquerdo).
- Crie um pacote chamado
Grifinoria. - Dentro dele, você pode colocar classes como
HarryeRon(ou apenas listar os nomes). - Crie um pacote chamado
Biblioteca. - Puxe uma seta de dependência de
GrifinoriaparaBiblioteca(Os alunos precisam dos livros).
5. 🛠️ Prática Obrigatória 1: Organizando Hogwarts
No Draw.io, crie um diagrama com 3 pacotes:
FeiticosDefensivosPocoesAluno
- Crie as setas de dependência indicando que o
Alunoprecisa 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)
- Faça o Commit: No GitHub Desktop, digite a mensagem (ex:
Finaliza Capítulo 16 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_16_pacotes.md
│ └── codigos/
│ └── cap16/
│ └── pacotes_hogwarts.png9. 💡 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.