Modelos de Ciclo de Vida em Engenharia de Software
Modelo Cascata
Características:
- Isso significa que os requisitos de um problema são bem compreendidos e estáveis nos 5 estágios genéricos da Engenharia de Software.
- Direção: Os documentos são gerados em cada estágio.
- Os estágios não se sobrepõem.
- As revisões são feitas após cada etapa; só se passa para a próxima fase se a etapa anterior for concluída.
Vantagens:
- Recomendado para produtos que têm uma definição estável.
- Recomendado quando se trabalha com metodologias conhecidas.
- Ajuda a minimizar os custos de planejamento, pois permite evitar problemas em termos de tempo, recursos e definições.
Desvantagens:
- É difícil especificar claramente os requisitos de um projeto no início, antes de qualquer projeto e da escrita de código.
- Omissões pequenas na definição geralmente significam grandes mudanças em diferentes estágios deste modelo.
- Erros de visualização de requisitos são detectados apenas na fase de construção ou implantação.
Implantação Incremental
Características:
- É, por natureza, um modelo iterativo.
- Combina elementos do modelo cascata aplicados iterativamente.
- Aplica uma sequência linear escalonada no tempo.
Vantagens:
- Útil quando a disponibilidade de pessoal é escassa.
- Os incrementos são úteis para diminuir o risco técnico do projeto.
Desvantagens:
- Apresenta as mesmas desvantagens descritas para o modelo em cascata, porém em menor escala.
Conclusão:
- Recomendado para projetos que podem ser implementados em parcelas modulares.
- Recomendado para projetos com requisitos estáveis.
Modelo DRA (Desenvolvimento Rápido de Aplicações)
Características do Modelo Incremental/DRA:
- Modelo de processo incremental.
- O modelo é uma adaptação de alta velocidade do modelo Cascata.
- Abordagem de construção baseada em componentes de software e geração automática de código.
Vantagens:
- Recomendado quando o projeto pode ser separado em módulos.
- Recomendado quando o tempo de implementação de cada módulo é bem conhecido.
- Recomendado quando o projeto inclui a implementação de componentes.
Desvantagens:
- Requer recursos suficientes para formar equipes.
- É necessário um alto compromisso dos desenvolvedores para atender ao tempo de desenvolvimento de cada módulo; caso contrário, podem ser gerados gargalos.
- Apresenta dificuldades quando um sistema não pode ser dividido em módulos.
Conclusão:
- Recomendado para projetos que incluem a implementação de componentes.
- Recomendado para projetos onde o tempo de implementação de cada módulo é bem conhecido e se trabalha com tecnologias conhecidas.
Modelo de Prototipagem
Características:
- Orientado à depuração de requisitos.
- Permite um alto grau de interação com o cliente.
- Apresenta resultados ao cliente rapidamente.
Vantagens:
- Embora o gerenciamento de projeto seja reduzido, não se perde tempo excessivo com documentação, planejamento, controle de qualidade ou conformidade com normas no início.
- Pode mostrar sinais de progresso imediatamente, pois a codificação começa logo.
- Pode ser útil para projetos pequenos, de curta duração ou operação, que serão substituídos ou removidos posteriormente.
- Ajuda a entender melhor os requisitos do projeto.
Desvantagens:
- É impossível saber no início do projeto o tempo total de implantação.
- O número de iterações a serem realizadas é desconhecido.
- Os tempos de implementação real são difíceis de determinar.
Conclusão:
- Recomendado para projetos que tenham incerteza na definição de seus requisitos.