Primeiro eu vou explicar os conceitos e ao final do comentário vou te dar exemplos que já vivenciei.
e acordo com a NBR ISO/IEC 12207:1998, o ciclo de vida é:
“Estrutura contendo processos, atividades e tarefas envolvidas no desenvolvimento, operação e manutenção de um produto de software, abrangendo a vida do sistema, desde a definição de seus requisitos até o término de seu uso.”
Alguns modelos de ciclo de vida (De modo geral):
- Cascata: Cada fase só começa quando a anterior termina;
- Modelo em V:Similar ao cascata, mas com ênfase dada à verificação e validação;
- Incremental: Os requisitos são passados a equipe de desenvolvimento e agrupados de acordo com a funcionalidade. Em seguida a equipe vai definindo a prioridade que cada módulo será desenvolvido;
- Evolutivo: Os requisitos são adquiridos em paralelo com a evolução do sistema. O princípio aqui é: o cliente não expõe todos os requisitos. Ex: O time desenvolve com base no que o cliente passa de requisito, é entregue ao cliente uma versão 1. O cliente dá o feedback com novos requisitos e aí é desenvolvida uma versão 2 com base nisso... Até se tornar mais completo;
- RAD(Rapid Application Development): Incrementos são desenvolvidos de forma paralela, por equipes diferentes. Ciclo de vida extremamente comprimido, levando entre 60 e 90 dias;
- Prototipagem: Construção de um exemplar do que foi entendido dos requisitos capturados do cliente. Pode ser utilizado como ferramenta em outros ciclos de vida;
- Espiral: Abordagem cíclica das fases do processo, onde cada "volta" ou iteração temos versões evolucionárias do sistema;
- Modelo de Ciclo de Vida Associado ao RUP(Rational Unified Proccess): É uma plataforma de processo de desenvolvimento de software configurável que oferece melhores práticas comprovadas e uma arquitetura configurável.
Na realidade do dia a dia:
A maioria dos softwares desenvolvidos utilizam mais de um modelo de ciclo de vida!
Exemplo 1:
O setor que você trabalha precisa de um software de gestão de projetos.
O setor ou órgão contrata uma empresa pra fazer isso e vocês passam os requisitos. São vários requisitos, como:
Tem que possuir várias telas: Porfólio, programas, etapas, riscos, custos... E várias outras pra cumprir isso.
Nesse caso, como o número de requisitos é grande, não é viável utilizar o modelo cascata, por exemplo. Pois a empresa pode te entregar um software com VÁRIAS coisas que você não acha ideal. Exemplo: Navegação diferente da desejada e outros.
Poderia ser utilizado aqui uma prototipagem, onde a empresa pega os requisitos e usa ferramentas de design para fazer as telas e colher seu feedback, realizando as alterações necesárias até o projeto ficar 100%.
Exemplo 2:
Você precisa de um sistema de registro de notas fiscais. Requisitos:
Campo para digitar a nota fiscal, um botão chamado registrar e alguns avisos caso ok ou caso esteja errado.
Ora, os requisitos são bem conhecidos e simples. Nesse caso é viável ter a primeira versão ao final do ciclo.