Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

🗺️ 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ássicoDescriçã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 ReusoFoca 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.