July 13
software spirale è un modello di sviluppo software per iterazione. Un prototipo è sviluppato e testato, senza la necessità per il tipo di documentazione elaborato che sarebbe necessario nel vecchio modello "a cascata". Si procede poi attraverso l'analisi dei rischi, l'ingegneria e la valutazione dei clienti. Le valutazioni dei clienti concludono un ciclo e impostare i nuovi progetti e le domande che portano a un prototipo più elaborato, continuando il ciclo.
Barry W. Boehm di TRW Difesa Systems Group formalmente definito il "modello a spirale" in un saggio pubblicato dall'Institute of Electrical and Electronics Engineers (IEEE) nel 1988. Boehm era infelice con il "modello a cascata" l'allora dominante di sviluppo, che prevedeva che il software dovrebbe essere "sviluppato in fasi successive (piano operativo, specifiche operative, le specifiche di codifica, etc.)."
Il problema con il modello a cascata è stato che ha sottolineato "pienamente elaborato documenti come criteri di completamento per i primi requisiti e le fasi di progettazione." Di conseguenza, Boehm lamentava, molti progetti sono stati sellati con oltre-elaborate specifiche prima di una storia di interfaccia utente aveva sviluppato. La teoria era stato sempre troppo avanti della pratica.
Boehm ha detto che ogni ciclo all'interno del suo modello a spirale preferito comincerebbe con considerazione degli obiettivi (ad esempio, prestazioni o funzionalità), procedere ad una pesatura della alternativa approcci fattibile e concludere con una considerazione dei vincoli imposti da ciascuno.
Cioè fase uno, o la fase di pianificazione. Ogni ciclo procede poi alla fase due (analisi dei rischi), tre (ingegneria) e quattro (valutazione del cliente).
Il termine "rischio", nel contesto della fase due, può denotare mancato raggiungimento degli obiettivi prefissati, ritardi di programmazione o di violazione dei vincoli di bilancio.
La fase di valutazione del cliente è in sostanza una revisione, che coinvolge (Boehm ha scritto) "le persone primari o organizzazioni coinvolte con il prodotto." Esso fornisce i dati necessari per la successiva fase di programmazione, o l'inizio del successivo ciclo nella spirale.
Fino a che punto la spirale continua? Si prosegue fino a terminare in un prodotto finito. Come ha scritto Walt Scacchi della University of California a Irvine, la spirale spazza verso l'esterno ", per quanto necessario in funzione del rischio che deve essere gestito."
Un altro modello di sviluppo del software è noto come il modello "agile". Si è detto di essere "persone" piuttosto che "processo" orientati, favorendo la comunicazione orale anziché scritta. Dal punto di vista di sostenitori "agile", la spirale e la cascata hanno troppo in comune. Sono entrambi troppo burocratiche.