Modello a spirale
# Modello a spirale

Il modello a spirale è un modello del ciclo di vita del software che consente di rappresentare i diversi cicli di vita, per cui può essere visto come un metamodello.

## Descrizione

Per ovviare ai problemi dei modelli precedentemente sviluppati, (Modello a cascata, Prototipazione Rapida) è nata la metodologia a spirale (o iterativa), ancora oggi ampiamente utilizzata. Proposta da Barry Boehm nel 1988, scompone il processo di sviluppo in quattro fasi multiple, ciascuna ripetuta più volte.

## Definizione

I capisaldi sono:

* Pianificazione
* Analisi dei rischi
* Sviluppo
* Verifica

Nel modello iterativo sono quindi presenti le stesse fasi del modello a cascata, ma i tempi sono più ristretti e dalla fase di testing si torna poi a quella di pianificazione per applicare eventuali correzioni al risultato dello sviluppo.

### Pianificazione

Nella pianificazione si determinano degli obiettivi, delle alternative e i vincoli associati al progetto. Il committente e il fornitore del sistema interagiscono allo scopo di definire in maniera sufficientemente univoca cosa deve essere realizzato e come. In questa fase è buona norma redigere dei documenti, in principio non eccessivamente dettagliati, che fissino i punti fondamentali della pianificazione del lavoro futuro.

### Analisi dei rischi

Nell'analisi dei rischi si identificano e si analizzano i problemi e i rischi associati al progetto, al fine di determinare delle strategie per controllarli. Tra i rischi che devono essere presi in considerazione vi sono i fattori di costo, di tempo e di variazione delle specifiche. I rischi più evidenti da valutare sono quelli di carattere economico, facendo riferimento ai costi di realizzazione, gestione e di esercizio. Altri parametri di rischio sono il tempo e la variazione delle specifiche.

### Sviluppo

Nella fase di sviluppo si procede alla vera e propria realizzazione: i tempi di realizzazione di questa attività, che comprende sia la codifica sia la verifica, sono tra i più lunghi tra tutti quelli previsti all'interno del ciclo di vita del prodotto software.

### Verifica

Nella fase di verifica il committente valuta se il sistema realizzato risponde alle sue esigenze. Attraverso questa fase il committente verifica che il prodotto soddisfi effettivamente i requisiti richiesti. Una logica conseguenza del fatto che un prodotto software non superi la fase di validazione dei requisiti è la necessità di impostare un nuovo ciclo di attività in cui definire più chiaramente -o ridefinire in tutto - i requisiti non realizzati e passare a un'ulteriore sessione di analisi dei rischi, di sviluppo e di verifica.

