O Modelo Interativo ou Espiral
O objetivo do modelo é prover um megamodelo que pode acomodar diversos processos específicos. Isto significa que podemos encaixar nele as principais características dos modelos vistos anteriormente, adaptando-os a necessidades específicas de desenvolvedores ou às particularidades do software a ser desenvolvido. Este modelo prevê prototipação, desenvolvimento evolutivo e cíclico, e as principais atividades do modelo cascata.
A ideia básica por trás dessa abordagem é desenvolver um sistema de software incremental, permitindo ao desenvolvedor tirar vantagem 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.
O modelo espiral descreve um fluxo de atividades cíclico e evolutivo constituído de quatro estágios.
Planejamento: devem ser determinados objetivos, soluções alternativas e restrições.
Análise de risco: devem ser analisados os riscos das decisões do estágio anterior. Durante este estágio podem ser construídos protótipos ou realizar-se simulações do software.
Engenharia: desenvolvimento do produto do "próximo nível” (especificação de requisitos, do software, da arquitetura, da interface de usuário e dos algoritmos e dados);
Avaliação do cliente: avaliação dos resultados de engenharia.
Vantagens
Baseia-se fortemente na participação e uma boa comunicação entre desenvolvedores e usuários.
Há um grande envolvimento do utilizador e do cliente.
Os resultados mostrados permitirá que os usuários tenham confiança em um bom resultado;
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;
Os riscos podem ser mais bem administrados por pequenos pedaços do sistema a serem desenvolvidos em pequenos espaços de tempo;
Os sistemas complexos são mais claros