Modelos de Processo de Software - LF21-O-souza/Soft-Hello-Wolrd GitHub Wiki
O modelo em cascata foi o primeiro modelo publicado para o processo de desenvolvimento de software. O modelo em cascata representa o desenvolvimento gradual com uma sequência ordenada de passos que devem ser seguidos rigorosamente.
As fases do modelo em cascata são executadas em sequência, ou seja, uma fase só executada quando a anterior termina sua execução. Nesse modelo os resultados não podem ser alterados após a fase terminar sua execução. Essa característica faz com que esse modelo não seja muito utilizado pela falta de flexibilidade.
O modelo em cascata possui três problemas que devem levados em consideração e que são mostrados abaixo de acordo com Oliveira (2013):
- Projetos reais raramente seguem a estrutura de fluxos em sequência ordenados como no modelo em cascata. E por não possuir muita flexibilidade as modificações podem causar confusão à medida que a equipe do projeto prossegue;
- O cliente sente um pouco de dificuldade de estabelecer todos os requisitos no início do projeto como o modelo em casca exige;
- O cliente precisa ter paciência, pois uma versão executável fica disponível quase no final do desenvolvimento do projeto. Os erros podem ser desastrosos se não forem detectados até a entrega desse executável.
O modelo de desenvolvimento evolucionário representa o desenvolvimento do software desde o protótipo inicial. Neste modelo o cliente participa de todas as fases do desenvolvimento do software.
Esse modelo possui algumas vantagens de acordo com Oliveira (2013):
- O executável final pode ser mostrado antes do término do projeto para o cliente;
- Neste modelo há uma melhor comunicação entre os desenvolvedores e usuários para melhor tratamento de erros;
O modelo em espiral é um modelo que trabalha o tempo todo com riscos e dividi o projeto em outros menores. O movimento em espiral possui uma estrutura que dá base para se tentar chegar ao fim do projeto com todos, ou quase todos, os riscos eliminados.
O modelo em espiral procura sempre dar as bases para que todos os requisitos do projeto estejam bem definidos e entendidos por todos da equipe inclusive pelo cliente. Com essa estrutura o produto vai sendo desenvolvido e com o tempo surgem versões do software para averiguação e reconhecimento de problemas.
De acordo com Oliveira (2013), o modelo em espiral foi desenvolvido para resolver os seguintes problemas:
- Atender a realidade dos projetos. Atender uma sequência mais real que o projeto segue, pois nem todo projeto segue o fluxo sequencial que o modelo em cascata propõe;
- Atender à necessidade que o cliente não tem noção no início do projeto de todos os requisitos para o desenvolvimento do mesmo. Esse modelo em espiral atende a flexibilidade de receber novos requisitos do cliente com o passar do tempo;
- Atender à necessidade do cliente de ver um protótipo de uma versão executável do software, mesmo que essa não esteja funcionando completamente.
O modelo incremental possui uma estrutura que permite que os documentos de uma fase possam ser mexidos para melhorias, mesmo se esses documentos estiverem em uma fase que foi completada, o que não acontece no modelo em cascata. No modelo incremental, diferentemente do modelo em cascata, a mudança de fase pode ocorrer mesmo se a anterior não tenha sido completada.
O modelo incremental é formado por ciclos que por sua vez são formados por fases de análise, projeto, implementação e teste. Nesse modelo os requisitos são divididos em grupos e esses são usados em cada clico. Nesse modelo pode notar que o objetivo é minimizar os riscos do projeto e maximizar a importância nos requisitos.
RAD (Rapid Application Development) representa modelo de desenvolvimento rápido. O modelo de desenvolvimento rápido é usado em projetos que necessita de uma velocidade maior de desenvolvimento que o normal. Esse modelo é usado em projeto com prazos muito curtos para entrega.
O modelo de desenvolvimento orientado a reuso é usado no desenvolvimento de projeto para incorporar elementos novos no produto. Tais elementos podem ser citados abaixo de acordo com Oliveira (2013):
- Código;
- Plano de teste;
- Conhecimento geral;
- Especificações de requisitos e projetos.