Modelos Tradicionais
O modelo cascata tornou-se muito conhecido na década de 70 e é comentado na maioria dos livros de engenharia de software. Nesse modelo as atividades do processo de desenvolvimento são estruturados em um cascata onde a saída de uma etapa é a entrada para a próxima etapa. As suas principais atividades são:
Estudo de Viabilidade
Análise e Especificação de Requisitos
Design da Arquitetura
Design Detalhado
Codificação e Testes de Unidades
Integração e Testes do Sistema
Entrega e Instalação
Manutenção
Existem variações desse modelo apresentando, porem, a principal característica comum é um fluxo linear e sequencial de atividades semelhantes a descritas anteriormente.
O modelo Cascata é criticado por ser linear rígido e monolítico. Inspirados em modelos de outras atividades de engenharia, este modelo argumenta que cada atividade apenas deve ser iniciada quando a outra estiver terminada e verificada. Ele é considerado monolítico por não introduzir a participação de clientes e usuário durante as atividades do desenvolvimento, mas apenas o software ter sido implementado e entregue. Não existe como o cliente verificar antecipadamente qual o produto final para detectar eventuais problemas.
Vantagens:
Torna o processo de desenvolvimento estruturado;
Tem uma ordem sequencial de fases;
Cada fase cai em cascata na próxima e cada fase deve estar terminada antes do início da seguinte;
Todas as atividades identificadas nas fases do modelo são fundamentais e estão na ordem certa;
Esta abordagem é atualmente a norma e provavelmente permanecerá por um tempo, mas temos o desenvolvimento ágil chegando com muita força na maioria das empresas de grande porte;
Desvantagens:
Não fornece feedback entre as fases e não permite a atualização ou redefinição das fases anteriores;
Não suporta modificações nos requisitos;
Não prevê a manutenção;
Não permite a reutilização;
É excessivamente sincronizado;
Se ocorrer um atraso todo o processo é afetado;