🚀 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çador com o atributo - pressao: int, a ferramenta gera automaticamente o arquivo Lancador.java com 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
        pass

5. 🛠️ Prática Obrigatória 1: Vantagens da Automação

Com base no que você aprendeu sobre Engenharia Avante e Reversa, responda:

  1. Como a Engenharia Avante ajuda a evitar erros de digitação?
  2. 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)

  1. Faça o Commit: No GitHub Desktop, digite a mensagem (ex: Finaliza Capítulo 19 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_19_ferramentas.md
│   └── codigos/
│       └── cap19/
│           └── ferramentas_pesquisa.txt

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


Capitulo Anterior | Proximo Capitulo