Modelo em cascata

Definição - o que significa modelo em cascata?

O modelo em cascata é um modelo de processo de desenvolvimento de software sequencial que segue as seguintes fases definidas:

  1. Projeto
  2. Iniciação
  3. Análise
  4. Design
  5. Construtora
  6. ensaio
  7. Produção / Implementação
  8. Manutenção

Usando as etapas comuns do ciclo de vida de desenvolvimento de software (SDLC), o modelo em cascata impõe a passagem para a próxima fase somente após a conclusão da fase anterior. Retornar a uma fase anterior é desaprovado, a menos que haja uma necessidade clara de fazê-lo.

Definirtec explica o modelo de cachoeira

Como o próprio nome indica, as fases no modelo em cascata progridem consistentemente para baixo. Essas fases devem ser seguidas em sequência para serem eficazes e, em alguns setores - como construção e manufatura - o processo deve ser seguido.

Em teoria, o modelo em cascata parece uma boa prática, mas tem sido criticado por muitos na indústria de desenvolvimento de software. Em primeiro lugar, uma fase SDLC não pode ser aperfeiçoada antes de passar para a fase seguinte. Além disso, em sua forma literal, este modelo carece de flexibilidade para ajustes de requisitos e design, o que torna muito difícil para programadores e desenvolvedores integrar os ajustes de design.

No entanto, existem alguns princípios sólidos do modelo em cascata que podem ser aplicados ao desenvolvimento de software bem-sucedido. Esta é uma lista parcial destes princípios:

  • Os problemas podem ser resolvidos mais facilmente se forem mais claramente definidos.
  • Grandes quantidades de código são mais rastreáveis ​​se forem estruturadas.
  • O trabalho humano deve sempre ser verificado.
  • Um bom plano de ciclo de vida do projeto melhora o processo de desenvolvimento.
  • A documentação do sistema é um subproduto do processo de desenvolvimento e não é feita posteriormente, como uma reflexão tardia.

O modelo em cascata foi uma tentativa inicial de fornecer estrutura, métricas e controle para o desenvolvimento de sistemas de aplicativos grandes e complexos, geralmente sistemas de mainframe.