Aula 15 – Manutenção e Evolução
🎯 Objetivos de Aprendizagem
- Entender que o software nunca está "pronto".
- Conhecer a diferença entre Manutenção Corretiva, Preventiva e Evolutiva.
- Entender o conceito de Refatoração.
- Analisar o conceito de Dívida Técnica (Technical Debt).
📚 Conteúdo
1. O Software não é uma estátua
Diferente de um monumento de pedra, o software é vivo. Se o mundo ao redor muda (novos celulares, novas leis, novos navegadores), o software precisa mudar junto.
Lei da Evolução (Lehman)
Um software que é usado em um ambiente real deve sofrer mudanças contínuas ou tornar-se progressivamente menos útil.
2. Tipos de Manutenção
- Corretiva: Consertar erros/bugs (o famoso "apagar incêndio").
- Adaptativa: Mudar o sistema para funcionar em um novo ambiente (ex: migrar para a nuvem).
- Evolutiva (Perfeccionista): Adicionar novas funcionalidades desejadas pelos usuários.
- Preventiva: Melhorar o código para evitar que ele quebre no futuro.
3. Refatoração e Dívida Técnica
Refatorar é como limpar a cozinha enquanto você cozinha. Você não muda o sabor da comida (o comportamento), mas deixa o ambiente organizado (a estrutura).
Cuidado com a Dívida
Dívida Técnica ocorre quando escolhemos uma solução rápida em vez de uma solução correta. "Pagamos juros" cada vez que mexer nesse código fica mais difícil e lento.
4. Simulação de Refatoração (TermynalJS)
📝 Exercícios Progressivos
- [Básico] O que é manutenção Corretiva?
- [Básico] O que significa "Refatorar" um código?
- [Intermediário] Explique com uma metáfora o que é Dívida Técnica.
- [Intermediário] Qual a diferença entre manutenção Evolutiva e Preventiva?
- [Desafio] Qual o perigo de nunca refatorar um sistema que cresce constantemente?
🚀 Mini-Projeto 15: O Plano de Evolução
Escolha um aplicativo que você usa e que mudou recentemente (ex: Instagram, WhatsApp). Identifique uma mudança que foi Corretiva (bug que sumiu) e uma que foi Evolutiva (nova função).
📅 Atividades
- [ ] Ver Slides da Aula
- [ ] Fazer Quiz
- [ ] Praticar Exercícios
- [ ] Realizar Projeto