# Modelo Cascata
É uma estrutura sequencial que divide o desenvolvimento de software em fases pré-definidas. Cada uma deve ser completa antes que a próxima possa ser iniciada, sem sobreposição entre fases.
Cada etapa é estruturada para desenvolver uma atividade específica durante a fase SDLC.
# Etapas do Modelo Cascata
Fase de Coleta das Regras de Negócio: Coleta de tantas informações quanto possíveis acerca dos detalhes e especificações do software desejado pelo cliente.
Fase de Design: Planejamento da linguagem de programação a ser utilizada, database, etc. Que deve adequar-se ao projeto, bem como funções de alto nível e arquitetura.
Fase de Construção: Após o Design, passamos a construir de fato o código do software.
Fase de Testes: Após, testamos o software para verificar que foi feito conforme as especificações fornecidas pelo cliente.
Fase de Implementação: Implementa a aplicação no ambiente designado.
Fase de Manutenção: Uma vez que o sistema está pronto para uso, pode ser necessário alterar o código mais tarde a depender de solicitações dos usuários.
# Quando Utilizar o Modelo Cascata?
Pode ser aplicado quando:
- Requerimentos não mudam constantemente;
- Aplicação não é demasiadamente complexa;
- O projeto é curto;
- Regras de Negócio são claras;
- O ambiente é estável;
- Tecnologia e ferramentas usadas não dinâmicas, mas sim estáveis;
- Recursos são disponíveis e direcionados;
# Vantagens Modelo Cascata
- Antes da próxima ffase de desenvolvimento, a anterior deve estar completa;
- Apropriada para projetos menores os requerimentos são bem definidos;
- Deve-se aplicar os testes de Quality Assurance (verificação e validação) antes de completar cada estágio;
- O desenvolvimento da documentação é feito em cada fase do SDLC;
- O projeto é completamente dependente do time, com intervenção mínima do cliente;
- Quaisquer mudanças no software são feitas durante o processo de desenvolvimento;
# Desvatagens do Modelo Cascata
- Erros só podem ser corrigidos na etapa;
- Não é desejável para projetos complexos onde requerimentos mudem constatemente;
- Período de teste só ocorre nas etapas mais avançadas do processo de desenvolvimento;
- Documentação ocupa bastante do tempo de desenvolvedores e testers;
- O valioso feedback de clientes não pode ser incluído no processo de desenvolvimento já em execução;
- Pequenas mudanças ou erros que surgir no software finalizado podem gerar grandes problemas;