Um ciclo de vida de um software nada mais é como as atividades serão executadas durante o projeto e em que ordem.
Nos últimos 40 anos foram criados vários modelos de ciclos de vida. Aqui vamos descrever os dois modelos mais utilizados.
Modelo Cascata
Modelo Cascata é um modelo seqüencial de desenvolvimento de software. Nele, o ciclo de vida de um projeto começa pelos Requisitos seguindo por Especificações, Desenho, Implementação, Testes, Integração e Manutenção, onde, uma é executada após a outra, podendo inclusive ter sobreposição entre elas, ou seja, iniciar uma antes de finalizar a anterior.
Algumas características do Modelo Cascata:
- A execução das atividades é seqüencial;
- Todos os requisitos são definidos no inicio do projeto;
- O usuário é envolvido no inicio e no fim do projeto (na entrega do produto final);
- As chances de falha durante o projeto é grande;
- As mudanças nos requisitos não são bem vistas, pois gera retrabalho e conseqüentemente custos;
Modelo Iterativo Incremental
Modelo iterativo incremental é um modelo onde o objetivo são fazer pequenas entregas (releases) para o stakeholder. Ou também podemos dizer que o objetivo é entregar pequenas partes do produto final. E na finalização de cada uma, apresentar para o stakeholder validar, dando sua opinião se o que foi apresentado está dentro de suas expectativas. Lembrando que cada release é uma parte funcional e executável.
Quando todos os releases forem entregues e validados, começamos a integração final. E assim, teremos certeza que o produto fina,l é aquele que irá agregar valor ao negócio do cliente.
Cada iteração tem duração que varia de duas semanas a no máximo seis semanas.
Algumas características do Modelo Iterativo Incremental:
- Levantamento e gestão de requisitos são repetidos a cada nova iteração;
- O usuário é envolvido constantemente no projeto;
- O entendimento dos requisitos e os objetivos do sistema são melhorados ao longo das iterações;
- É mais fácil identificar se o projeto será entregue dentro do prazo e custo combinado;
- A gestão de requisitos e mudanças é facilitada;
- A evolução do requisito é bem vinda.