Modelos de desenvolvimento de software
Neste modelo, cada etapa só pode ser desenvolvida se o estágio anterior foi concluído. Como exemplo, pode-se dizer que a arquitetura de qual hardware e software será utilizado depende das definições dos requisitos e objetivos do sistema (etapa anterior).
Vantagens:
Por ser um modelo sequencial, o desenvolvimento da etapa seguinte depende da validação das funcionalidades da etapa atual por parte do cliente. Este modelo pressupõe uma participação do cliente em todas as etapas do projeto.
Desvantagens:
Esta vantagem citada anteriormente, pode se tornar uma desvantagem, pois o cliente apenas interage com a etapa atual, validando-a para o prosseguimento do projeto. Porém, se surgirem novas ideias, novos requisitos e objetivos que não tinham sido considerados, os mesmos não podem mais ser alterados, pois as etapas são rígidas, ou seja, uma vez validada pelo cliente, se torna pré-requisito essencial para a construção da próxima etapa.
Exemplo:
Para este modelo, pode-se citar como exemplo um software de entrada e saída de produtos de uma pequena loja, pois é possível realizar a maior parte do mapeamento dos requisitos básicos e objetivos de uma vez, onde o resto do mapeamento é realizado no aperfeiçoamento e detecção de melhorias.
Modelo Evolucionário:
É um tipo de modelo onde é realizada uma implementação do software pretendido ao cliente para o mesmo adquirir uma ideia melhor daquilo que ele precisa ou não. A partir desta análise, podem ser desenvolvidas outras versões como forma de aperfeiçoamento, sendo as ideias construídas juntamente com o cliente.
Vantagens:
O cliente está sempre em contato com o projeto no decorrer de seu desenvolvimento, tendo a possibilidade de entendê-lo melhor, e analisá-lo, a fim de definir se o que está sendo implementado atende ou não as suas necessidades, e se sim, o que pode ser melhorado ou corrigido, durante o processo. Muitas vezes, este modelo é considerado mais vantajoso do que o modelo em cascata,