Processo de desenvolvimento de software
Ciclo de Vida do Software (SDLC)
- Engenharia de Requisitos: Coleta, análise, especificação e validação do que o sistema deve fazer.
- Design/Arquitetura: Definição de como o sistema será construído (banco de dados, interface, componentização).
- Implementação (Codificação): A tradução do design em código utilizável.
- Testes (Validação/Verificação): Garantir que o software funciona e atende aos requisitos.
- Implantação/Manutenção: Correção de erros pós-parto e evolução do sistema.
Modelos tradicionais (preditivos/prescritivos)
- Modelo em Cascata (Waterfall): Sequencial e linear. Uma fase só começa quando a anterior termina.
- Modelo Prototipação: Produz uma versão simplificada (protótipo) para o cliente validar os requisitos antes do desenvolvimento real.
- Modelo Incremental e Evolutivo: O software é entregue em partes (incrementos), onde cada parte adiciona uma funcionalidade à anterior.
- Modelo em Espiral (Boehm): Foco central na Análise de Risco. O projeto progride em espirais, repetindo fases de planejamento, análise de risco, engenharia e avaliação.
Modelo intermediário
- Processos Unificados: O RUP (Rational Unified Process) é o meio-termo clássico: é um processo pesado, mas iterativo e incremental.
Modelos ágeis (adaptativos)
- Scrum: É um framework de gerenciamento ágil. Foco total em papéis e rituais:
- XP (Extreme Programming): Focado nas práticas de engenharia e qualidade de código.
- Kanban: O Kanban é um método evolucionário e não disruptivo, que foca na melhoria do processo atual.
Modelos de Maturidade e Qualidade
- CMMI (Capability Maturity Model Integration): * Focado em níveis de maturidade (1 ao 5): Inicial, Gerenciado, Definido, Gerenciado Quantitativamente e em Otimização.
- MPS.BR (Melhoria de Processo do Software Brasileiro): Equivalente brasileiro, mas dividido em 7 níveis (de A a G, onde G é o mais básico e A é o topo).