Modelos ageis e evolutivos
Estudos mostraram que o software, como todos os sistemas complexos, evoluem durante um período de tempo e os requisitos do negócio e do produto mudam freqüentemente a medida que o desenvolvimento prossegue dificultando um caminho direto para um produto final .Os modelos que serão citados à frente são interativos e caracterizam-se pela forma como se desenvolve versões cada vez mais completas do software.
2.2.1 Espiral
Este modelo foi desenvolvido para abranger as melhores características tanto do ciclo de vida clássico como da prototipação, acrescentando, ao mesmo tempo, um novo elemento, a análise de riscos que falta a esses paradigmas. O modelo define quatro importantes atividades representadas por quatro quadrantes:
1. Planejamento: determinação dos objetivos, alternativas e restrições.
2. Análise de riscos: análise de alternativas e identificação/resolução de riscos.
3. Engenharia: desenvolvimento do produto no “nível seguinte”.
4. Atualização feita pelo cliente: avaliação dos resultados da engenharia.
Ele usa uma abordagem “evolucionária” à engenharia de software, capacitando o desenvolvedor e o cliente a entender e reagir aos riscos em cada fase evolutiva. O modelo espiral usa a prototipação como um mecanismo de redução de riscos, mas, o que é mais importante, possibilita que o desenvolvedor aplique a abordagem de prototipação em qualquer etapa da evolução do produto. Ele mantém a abordagem de passos sistemáticos sugerida pelo ciclo de vida clássico, mas incorpora-a numa estrutura iterativa que reflete mais realisticamente o mundo real. O modelo espiral exige uma consideração direta dos riscos técnicos em todas as etapas do projeto e, se adequadamente aplicado, deve reduzir os riscos antes que eles se tornem problemáticos.
O modelo de ciclo de vida espiral apresentado por Boehm em 1988 combina as características positivas da gerência (documento associado às fases do ciclo) do modelo de cascata com as