Modelo cascata

Modelo tradicional de desenvolvimento de software, cada etapa do projeto deve seguir a ordem dos processos sem retroceder para as etapas anteriores.

Categoria de Programação

Postado em 28 outubro 2022

Atualizado em 28 outubro 2022

Palavras-chave: waterfall,model,modelo,cascata,desenvolvimento,software,planejamento,design

Visualizações: 1809



Antes de um produto ser desenvolvido de fato, ele deve passar por algumas etapas de planejamento. Hoje, temos vários modelos de desenvolvimento software que podem atender diferentes tipos de clientes.

Alguns clientes buscam por soluções para seus problemas, porém ainda não sabem o que realmente procuram. Nesse caso, os desenvolvedores devem selecionar o modelo correto para atender aos desejos do cliente, de modo que ele fique satisfeito com o produto final.

O modelo tradicional de desenvolvimento software é o modelo cascata.

O que é o modelo cascata?

Modelo cascata vem do inglês “waterfall model”. É uma expressão bastante utilizada na área de tecnologia e programação para descrever um modelo de desenvolvimento progressivo. Isso é seguir todas as etapas do modelo desde o início até o final apenas uma vez, sem retornar para as etapas anteriores.

modelo cascata dicionariotec

O modelo não precisa ser fiel com as cinco etapas apresentadas acima, podendo possuir diversas diversificações e segmentos que se adequam melhor a cada tipo de situação.

Apesar de ser um modelo considerado tradicional, a utilização do modelo cascata tem diminuído devido a sua inflexibilidade. Muitos desenvolvedores criticam o modelo, alegando que não funciona na prática. Isso pode acontecer quando o produto final não satisfaz os requerimentos do cliente. O cliente exigi mudanças ou novas funcionalidades após a fase de desenvolvimento. Nesse caso, novos custos tornam-se necessários, descontentando o cliente.

Para evitar conflitos, variações do modelo existem, um bom exemplo é o modelo protótipo. Um protótipo é um esboço do software, não contendo nenhuma funcionalidade no momento, apenas transições de telas e design da interface do software. Uma vez que o protótipo é aceito pelo cliente, o processo de desenvolvimento é iniciado.

Quando usar o modelo cascata?

Um projeto desenvolvido com o modelo cascata deve seguir a ordem das etapas sem retroceder para etapas anteriores durante o processo. Um retrocesso para as etapas anteriores influencia no valor total do projeto, ultrapassando as estimativas preestabelecidas no começo do projeto. Caso isso aconteça, diversos riscos como anulação do projeto, multas resultantes de processos judiciais e lucro final diminuído podem afetar a empresa contratada para o desenvolvimento do projeto.

Portanto, o modelo cascata deve ser utilizado quando o cliente tem requerimentos claros e definidos. Assim, os requerimentos podem ser preenchidos pelos desenvolvedores do software na primeira etapa do projeto.

O modelo cascata não possui flexibilidade, pois não possibilita retornarmos para as etapas anteriores. Por isso, não é um modelo recomendado para projetos com requerimentos vagos ou clientes indecisos.

Quais são as etapas do modelo cascata? E o que acontece em cada etapa?

O modelo cascata possui variações, porém um modo bastante tradicional são as 5 etapas a seguir.

  1. Requerimentos
  2. Planejamento
  3. Desenvolvimento
  4. Teste
  5. Manutenção

O que é a etapa de requerimentos?

Etapa onde os requerimentos do cliente são ouvidos. Isso é, que tipo de solução o cliente busca, quais são os seus problemas que ele enfrenta e como o cliente espera que um software melhore a sua produtividade.

Essa etapa pode necessitar de múltiplas reuniões caso dúvidas ou idéias surjam após a primeira reunião de algum dos dois lados.

O que é a etapa de planejamento?

Após os desenvolvedores compreenderem o que o cliente busca, o planejamento de uma solução que atenda aos requerimentos do cliente deve ser produzido. Nessa etapa, ainda é possível ter contato com o cliente para o esclarecimento de dúvidas e outros fatores.

O que é a etapa de desenvolvimento?

Nessa etapa os programadores começam a desenvolver o produto. Dúvidas como qual linguagem de programação usar, qual banco de dados integrar e com qual framework desenvolver o produto já devem estar decido na etapa 2.

O que é a etapa de teste?

Aqui será testado o produto resultante. Os testes são de responsabilidade da empresa desenvolvedora que em seguida deve entregar o produto para o cliente testar e avaliar. Quando o relatório de avaliação do cliente é recebido, requerimentos de alteração de funcionalidade e correção de bugs podem ser solicitados. Se dividirmos em pequenas etapas, teremos o seguinte ciclo:

  • Avaliação pela empresa desenvolvedora
  • Avaliação pelo cliente
  • Alteração e correção do software

O ciclo acima pode ser repetido algumas vezes até poder seguir para a próxima etapa.

O que é a etapa de manutenção?

Etapa final do projeto. O produto é entregue para o cliente que irá utilizar-lo na prática. Ao decorrer da sua utilização, imprevistos podem acontecer. Nessa caso, a empresa desenvolvedora deve fazer a manutenção do produto.

Conclusão

O modelo cascata é o modelo tradicional de desenvolvimento de software, no qual cada etapa do projeto deve seguir a ordem dos processos sem retroceder para as etapas anteriores.

Caso novos requerimentos, como por exemplo, novas funcionalidades sejam solicitadas pelo cliente nas etapas posteriores as duas primeiras etapas, conflitos podem acontecer entre os negociadores. Essa inflexibilidade fez com que muitos planejadores de software migrassem para outros modelos de desenvolvimento software.

Projetos práticos

Implementando um algoritmo de pathfinding

Implementando um programa que encontra a menor distância entre dois pontos dentro de um labirinto usando o algoritmo A* (a-estrela).

Usando dados fornecidos pelo TSE para simular o gráfico das eleições presidenciais de 2022

Simulação dos gráficos do segundo turno das eleições presidenciais, utilizando python e ferramentas de análise de dados, pandas e jupyter.

Criando um jogo de pacman usando javascript e pixi.js (parte 1)

Desenvolvimento dos conceitos mais básicos do clássico pacman, como: mapa, animação, deslocamento e detector de colisões.

Tutorial de programação do jogo da serpente em javascript

Programando o clássico jogo da serpente usando o framework p5.js. Tutorial indicado para iniciantes da programação que querem aprender os conceitos básico da área criando jogos.

Criando um sistema de integração contínua (CI/CD)

Fazendo a integração contínua de Jenkins, Sonatype Nexus, Sonatype, JUnit e Gradle para automatizar processos repetitivos. Prática bastante usada em tecnologias de DevOps.

Veja também

A internet é uma terra sem lei. O que vai proteger a nossa rede interna da internet é o firewall

Uma rede interna sem um firewall é como se fosse uma casa com a porta destrancada. Um indivíduo com más intenções pode se aproveitar para a invadir quando menos esperamos.

Afinal, vale a pena gastar tempo com web marketing?

Expressões como gastar tempo e investir tempo andam lado a lado. Quando algo investido não tem o retorno esperado isso se torna uma perde de tempo...

RPA Automação robótica de processos

Automatiza tarefas repetitivas no lugar de humanos, podendo ser integradas com os softwares e serviços que são utilizados para a realização de tarefas.

Ciclo PDCA

O ciclo PDCA foca em manter o ritmo contínuo de melhorias usando processos para alcançar algum objetivo específico estabelecido.

Governança de TI

Responsável por tratar de assuntos envolvendo tecnologia da informação com o alto escalão para gerar valores na área de TI

Modelo OSI

Modelo teórico dividido em sete camadas que fornece uma arquitetura padrão de rede para realizar a transferência de dados entre computadores.