Para a construção de um sistema, existem diversos modelos de encadeamento com estruturas e fases específicas. A estes modelos damos o nome de Ciclo de Vida.
Os mais comuns são: Modelos em Cascata e Modelo Iterativo e Incremental.
Modelo de Ciclo de Vida em Cascata
Também chamado de clássico ou linear, possui uma tendência na progressão sequencial entre uma fase e a fase seguinte. As fases seguem sequencialmente, entretanto pode haver necessidade de retroceder à fase anterior.
Existem diversos problemas relacionados ao uso deste tipo de ciclo de vida:
1. Dificilmente um projeto seguirá as fases propostas pelo modelo. Onde diversas fases podem, inclusive, acontecerem simultaneamente.
2. Uma falha na elaboração de um requisito pode ser originada logo no início do desenvolvimento, e sem a interação do usuário esta pode ser conduzida até o final do projeto.
3. A versão do sistema somente será entregue ao cliente quanto todas as fases estiverem prontas. Isto pode levar meses, ou até anos dependendo da complexidade do projeto. Neste caso os requisitos, rotinas dos usuários podem ter mudado e o produto não atenderá mais os requisitos do cliente.
Modelo de Ciclo de Vida Iterativo e Incremental
Este modelo foi proposto para solucionar os problemas encontrados no modelo em Cascata. No modelo de ciclo de vida iterativo e incremental o processo de desenvolvimento ocorre em ciclos. Deste modo, os processos de analise, projeto, implementação e teste ocorrem novamente a cada ciclo, diferente do modelo em cascata, onde estes passos ocorrem apenas uma vez.
Sendo assim é necessário quebrar o sistema em diversos módulos para que estes sejam desenvolvidos a cada ciclo do processo de desenvolvimento.
No final de cada ciclo é apresentada uma versão para avaliação do cliente, o que minimiza um possível equivoco no levantamento de alguém requisito. Desta forma, o produto final será mais satisfatório, pois o cliente participará do processo de desenvolvimento, testando cada nova versão, até a versão final do software.
Podemos assim dizer que este modelo é iterativo, pois cada processo se repete a cada novo ciclo. E incremental, pois a cada novo ciclo, uma nova funcionalidade é acrescentada ao produto.
via: Bezerra, Eduardo. Princípios da análise e projeto de sistemas. Editora Campus. 2006.