🗺️ Modelos de Processos de Software
Um modelo de processo de software é uma representação abstrata e simplificada de um processo real. Segundo Sommerville (2011), esses modelos descrevem as atividades, os artefatos (documentos ou código) produzidos e os papéis das pessoas envolvidas.
No ecossistema corporativo atual liderado pelo Java, esses modelos ditam como o código sai da sua IDE e chega à Nuvem.
📊 Comparação dos Modelos Fundamentais
| Modelo Clássico | Descrição e Perspectiva Tecnológica |
|---|---|
| Cascata (Waterfall) | Abordagem sequencial rígida: Requisitos -> Projeto -> Implementação -> Teste. Historicamente popular antes de 2000, hoje é extremamente arriscada para APIs dinâmicas. |
| Incremental (Ágil) | O sistema é construído por versões parciais (incrementos). A arquitetura cresce aos poucos. Casos perfeitos para prototipação ágil usando Spring Boot. |
| Orientada a Reuso | Foca na integração de dependências (ex: pacotes do Maven Central) e frameworks robustos em vez de programar funcionalidades do zero. |
graph LR
A[Caos Ad-hoc] -->|Engenharia| B[Modelos]
B --> C[Processo Estruturado Agile]
B --> D[Pipeline CI/CD Predictível]
[!TIP] 💡 Propósito do Modelo: A finalidade primordial é tentar reduzir o caos inerente ao desenvolvimento de novos produtos, fornecendo previsibilidade e visibilidade sobre o projeto. Não programe um endpoint REST sem saber em qual modelo o seu time opera.