Espiral

O modelo espiral foi desenvolvido de modo a combinar as melhores características dos modelos: Linear e Prototipação. O mesmo ainda acrescenta um novo recurso, a análise de riscos, inexistente nesses outros modelos. As quatro etapas a serem seguidas são dispostas da seguinte maneira:
  • Planejamento: onde se determinam os objetivos, alternativas e restrições ao software.
  • Análise de riscos: onde as alternativas são analisadas e os riscos são identificados  / resolvidos.
  • Engenharia: O desenvolvimento do produto ao nível seguinte.
  • Atualização: feita pelo cliente, onde os resultados obtidos pela engenharia são avaliados.
Proposto por Barry Bohem em 1988, o modelo em espiral combina as iterações do modelo de prototipagem com o controle e sistematização do modelo em cascata. Assim sendo, cada ciclo do modelo em espiral possui quatro atividades principais, onde se elaboram os objetivos (Planejamento), avaliam-se as alternativas (Análise de riscos), definem-se as entidades de software em um projeto (Engenharia) e planeja-se o próximo ciclo (Atualização). O processo pode ser abortado se apresentar um ou mais fatores de alto risco.

Por risco define-se tudo que possivelmente possa dar errado; desde a utilização de uma linguagem de programação onde os compiladores existentes não gerem um código objeto suficientemente eficiente, até problemas praticamente insolúveis a serem resolvidos por conta do pedido do cliente.

A cada ciclo, o modelo espiral gera um protótipo ligeiramente diferente do anterior sendo uma versão mais sofisticada do software, sendo que não há etapas fixas no modelo espiral, com cada fase ocorrendo mais de uma vez. O raio da espiral representa o custo do processo e o ângulo da espiral representaria o progresso realizado na construção do software.

Clique na imagem para ampliar.
O processo espiral não termina após a entrega do software, como nos outros modelos, podendo ser adaptado para uma aplicação posterior como um projeto de aperfeiçoamento do produto entregue.


Vantagens e desvantagens 

Como qualquer tipo de modelo de desenvolvimento, o modelo espiral possui suas vantagens e desvantagens.


Vantagens
Desvantagens
Estimativas tornam-se mais realísticas
Muita ênfase a parte funcional
Mais versátil para lidar com mudanças
A avaliação dos riscos exige experiência
Melhora o tempo de implementação do sistema
É bem aplicado somente a sistemas de larga escala
Fácil de decidir o quanto testar
O modelo é relativamente novo e não tem sido muito utilizado.
Não faz distinção entre desenvolvimento e manutenção.

Este modelo é o considerado mais realístico possível, pois assume que usuários, analistas e desenvolvedores adquirem maior conhecimento sobre o projeto como decorre do tempo.