title: Modello a spirale
text: # 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.
  
  