Modelos Tradicionais ou Clássicos
- Modelo Cascata
O modelo cascata é o mais antigo modelo utilizado e representou um avanço no desenvolvimento de software, foi proposto por Royce em 1970. Até meados da década de 1980 foi o único modelo com aceitação geral. Comparado com outros modelos de desenvolvimento de software, este é mais rígido e menos administrativo, pois: inicialmente, é necessário compreender completamente o problema a ser resolvido, requisitos e restrições; após, projeta-se soluções que atendam a todos os requisitos e restrições. Na sequência, inicia-se a implementação do projeto e ao ser finalizada, o produto é verificado e validado junto ao cliente e por fim, a entrega final é efetuada. Na figura a seguir, é possível visualizar o modelo segundo.
Figura 1- Modelo em Cascata
As principais vantagens desse modelo são:
- tornar o processo de desenvolvimento estruturado, sequenciando cada fase e criando dependência entre elas;
- todas as atividades são identificadas nas fases do modelo;
- avança para a tarefa seguinte quando o cliente valida e aceita os produtos finais da tarefa atual.
As principais desvantagens do modelo cascata são:
- não fornece feedback entre as fases e não permite a atualização ou redefinição das fases anteriores;
- não prevê a manutenção;
- as atividades são sincronizadas e inflexíveis;
- o produto é entregue somente no final do projeto;
- não suporta modificações de requisitos;
- dependência entre as fases compromete o projeto como um todo, caso haja um atraso.
2. Modelo Iterativo e Incremental
O modelo iterativo e incremental foi criado em resposta às fraquezas do modelo cascata. Podemos entendê-lo como:
- incremental: gerar novas versões incrementadas a cada release;
- iterativo: ter várias iterações na linha do tempo do projeto. A saída de uma iteração é examinada para modificação, e especialmente para revisão dos objetivos das iterações sucessivas.
A ideia base da abordagem iterativa é desenvolver um sistema de software incremental, permitindo ao desenvolvedor extrair benefícios daquilo que foi aprendido durante a fase inicial de desenvolvimento de uma versão do sistema. O aprendizado ocorre simultaneamente tanto para o desenvolvedor, quanto para o usuário do sistema [11]. Na figura 2, o modelo é ilustrado:
Figura 2 - Modelo Iterativo e Incremental
As principais vantagens do modelo são:
- baseia-se fortemente na participação e uma boa comunicação entre desenvolvedores e usuários;
- envolvimento do usuário e do cliente. Caso ocorram divergências, elas são rapidamente tratadas;
- apresentação de resultados rápidos;
- a cada ciclo do sistema os usuários e cliente poderão utilizar o sistema diretamente, eles são os "testadores" no processo de desenvolvimento e eles estarão interagindo com o sistema durante o desenvolvimento;
- administração de riscos por ciclo do sistema;
- feedback ao final de cada iteração permite que ações rápidas sejam tomadas em caso de mudanças no sistema;
- alterações nos requisitos podem ser rapidamente incorporada no processo de desenvolvimento;
- versões são geradas após cada iteração;
- flexibilidade e facilidade para gerenciar processo mais administráveis e fazer um software melhor com uma melhor estrutura;
- simplicidade dos testes.
As principais desvantagens do modelo iterativo e incremental são:
- necessidade de adaptação e refinamento do sistema pode acarretar mudança da ideia original ao final do desenvolvimento;
- aumento de escopo constante;
- inexperiência de gerentes que não estão acostumados com essa forma de trabalho;
- necessidade de conhecimento para iniciar a utilização do modelo;
- podem surgir problemas relacionados à arquitetura do sistema, pois não há uma visão completa dos requisitos;
- as releases do sistema devem ser pequenas.
3. Modelo Prototipação
Este modelo é baseado em uma visão evolutiva do desenvolvimento de software, afetando o processo como um todo. Abrange a produção de versões iniciais – protótipos (comparável às maquetes para a arquitetura) - de um sistema futuro com o qual é possível realizar verificações e experimentos, com o objetivo de avaliar algumas de suas características antes de sua construção definitiva [12] [13]. A figura (Figura 3) a seguir apresenta a visão do modelo.
Figura 3 - Modelo Prototipação
As vantagens desse modelo são:
- diferenças entre as percepções do cliente e dos desenvolvedores são clarificadas;
- um sistema funcional é mostrado antecipadamente;
- o protótipo pode servir de base para especificação do sistema;
- identificação de necessidade de treinamento dos usuários e esquema de testes;
- contribuição para desenvolvimento de partes complexas do sistema;
- envolvimento do cliente na avaliação do protótipo.
As principais desvantagens do modelo são:
- questões gerenciais, tais como esquemas menos estruturados e dificuldade de planejamento de competências do time para o desenvolvimento do sistema;
- problemas de manutenção ocasionadas pelas constantes mudanças na estrutura do sistema;
- problemas contratuais.
3. Modelo Espiral
O modelo em espiral foi proposto por Boehm em 1988 como forma de integrar os diversos modelos existentes à época, abrangendo as melhores características tanto do ciclo de vida clássico como da prototipação, adicionando, ao mesmo tempo, um novo aspecto - a análise de riscos - que falta a esses modelos. Este modelo assume que o processo de desenvolvimento ocorre em ciclos, cada um contém fases de avaliação e planejamento, onde a escolha de abordagem para a próxima fase (ou ciclo) é determinada.
O modelo espiral está dividido em quatro atividades principais:
- Planejamento: determinação dos objetivos, alternativas e restrições;
- Análise dos riscos: análise de alternativas e identificação/resolução de problemas e riscos;
- Engenharia: desenvolvimento do produto e verifica-lo no próximo nível;
- Avaliação feita pelo cliente: avaliação dos resultados da engenharia.
Na figura a seguir, é possível visualizar todos os detalhes do ciclo desse modelo.
Figura 4 - Modelo Espiral
As vantagens do modelo são:
- permite que ao longo de cada iteração se obtenham versões do sistema cada vez mais completas, recorrendo à prototipação para redução de riscos;
- permite o refinamento seguido pelo modelo cascata, mas que incorpora um desenvolvimento iterativo.
As desvantagens do modelo são:
- necessidade de conhecimento e experiência na avaliação de riscos;
- não tem sido amplamente utilizado;
- desenvolvimento em paralelo de múltiplas partes do projeto, cada uma sendo abordada de modo diferenciado, por isso é necessário o uso de técnicas específicas para estimar e sincronizar cronogramas, bem como para produzir os indicadores de custo e progresso mais apropriados.
Olá engenheiro! Gostei muito do artigo… A minha maior duvida esta entre modelos, metodologia, método, técnica e rup no desenvolvimento de sistemas de informação.
ResponderExcluirE outra duvida esta entre o modelo de desenvolvimento rápido de aplicações e técnica de quarta geração… Obrigada!