🚀 Capítulo 19: Ferramentas Case e Geração de Código (Tema: Homem-Aranha)
NOTE
Este capítulo utiliza a temática de Homem-Aranha para explicar as ferramentas CASE. Peter Parker usa a tecnologia do laboratório para transformar seus desenhos de teias em trajes reais automaticamente!
1. 🎯 Objetivo da Aula
Compreender o conceito de Ferramentas CASE (Computer-Aided Software Engineering) e como automatizar a transição entre diagramas UML e código-fonte.
2. 🏢 O Cenário Prático (Seu Desafio)
Peter Parker está no laboratório das Indústrias Stark projetando um novo lançador de teias. Ele desenhou todo o diagrama de classes do sistema que controla a pressão do fluido. Agora ele não quer perder tempo digitando linha por linha de código em Python. Ele quer usar uma ferramenta que leia o desenho e crie o esqueleto do código sozinho. Seu desafio é entender esse processo!
3. 🧠 Fundamentos: A Teoria Traduzida
Ferramentas CASE são softwares que ajudam os desenvolvedores a projetar e documentar sistemas. Muitas delas têm superpoderes:
⏩ 1. Engenharia Avante (Forward Engineering)
É a capacidade da ferramenta de ler um Diagrama de Classes e gerar o esqueleto do código em uma linguagem de programação (Java, Python, C++).
- Como funciona: Se você desenhou a classe
Lançadorcom o atributo- pressao: int, a ferramenta gera automaticamente o arquivoLancador.javacom a variável privada.
⏪ 2. Engenharia Reversa (Reverse Engineering)
É o caminho contrário. A ferramenta lê um código-fonte já pronto e desenha o diagrama de classes dele automaticamente!
- Como funciona: Ótimo para quando você chega em uma empresa e precisa entender um sistema gigante que não tem documentação.
4. 📖 Exemplo Guiado: Exemplo de Código Gerado
Se desenharmos a classe Teia com o atributo resistencia e o método disparar(), a ferramenta CASE pode gerar isto em Python:
class Teia:
def __init__(self):
self.__resistencia = 0 # Atributo privado (-)
def disparar(self):
# TODO: Implementar a lógica
pass5. 🛠️ Prática Obrigatória 1: Vantagens da Automação
Com base no que você aprendeu sobre Engenharia Avante e Reversa, responda:
- Como a Engenharia Avante ajuda a evitar erros de digitação?
- Em qual situação a Engenharia Reversa é mais útil?
6. 🛠️ Prática Obrigatória 2: Pesquisa de Ferramentas
Embora o Draw.io seja ótimo para desenhar, ele não gera código automaticamente (não é uma ferramenta CASE completa). Pesquise o nome de duas ferramentas CASE famosas que geram código a partir de diagramas UML.
7. 📤 Instruções de Entrega (GitHub Desktop + Microsoft Teams)
- Faça o Commit: No GitHub Desktop, digite a mensagem (ex:
Finaliza Capítulo 19 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_19_ferramentas.md
│ └── codigos/
│ └── cap19/
│ └── ferramentas_pesquisa.txt9. 💡 Checkpoint de Lógica
A ferramenta CASE gera o sistema completo pronto para funcionar ou apenas a estrutura (esqueleto) do código?
10. 🔥 Desafio de Fixação
Pesquise se existe algum plugin no Visual Studio Code que consiga gerar diagramas de classes a partir de arquivos Java ou Python (Engenharia Reversa).
11. 🔑 Gabarito de Código/Fórmulas
Resposta do Checkpoint: Ela gera apenas a estrutura (esqueleto) do código (as classes, variáveis e a assinatura dos métodos). A lógica de negócio (o que vai dentro de cada função) ainda precisa ser digitada pelo programador!