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: 3206



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

Criando um sistema de mini garagem automatizada integrada com um sistema de monitoramento independente

Desenvolvimento de um sistema de monitoramento que exibi todos os eventos que acontecem na garagem automatizada, como abertura de portões ou ocupação de vagas.

Integrando o PHP com Elasticsearch no desenvolvimento de um sistema de busca

Projeto de criação de um sistema de busca usando o framework Symfony e Elasticsearch. A integração com Kibana também é feito de modo remoto com um raspberrypi.

Criando artes de texto usando imagens

Convertendo imagens para ascii art usando o valor da intensidade das cores cinzentas.

Criando um jogo de guerra nas estrelas em javascript usando a biblioteca p5.js

Jogo simples de guerra espacial desenvolvido em javascript. Esse jogo usa cálculos de física para simular efeitos de atrito e inércia.

Integrando Laravel com o protocolo MQTT para comunicação entre dispositivos

Projeto de comunicação entre dois dispositivos ESP8266 e Raspberrypi4. Laravel irá funcionar como servidor e receptor de dados de temperatura e umidade coletados com o DHT11.

Veja também

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...

Já pensou ser redirecionado para um site de banco falso?

O envenenamento de cache DNS redireciona o usuário para um site falso, mesmo digitando um URL legítimo. Como isso é possível??!!

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.

HR Tech

HR Tech é um software que auxilia na gestão de pessoas, tornando-se possível o gerenciamento centralizado na área de recursos humanos.

Virtualização

A virtualização é a criação de um ou mais ambientes virtuais em uma mesma máquina física, com o intuito de cumprir o mesmo papel de um computador físico.

ERP Enterprise Resource Planning

Software que possibilita o gerenciamento de todos os recursos da empresa em um só sistema. Esses recursos são capital, pessoas, coisas e informações.