SDLC - Modello iterativo

Nel modello iterativo, il processo iterativo inizia con una semplice implementazione di un piccolo insieme di requisiti software e migliora iterativamente le versioni in evoluzione fino a quando il sistema completo non è implementato e pronto per essere distribuito.

Un modello iterativo del ciclo di vita non tenta di iniziare con una specifica completa dei requisiti. Invece, lo sviluppo inizia specificando e implementando solo una parte del software, che viene quindi rivista per identificare ulteriori requisiti. Questo processo viene quindi ripetuto, producendo una nuova versione del software alla fine di ogni iterazione del modello.

Modello iterativo - Design

Il processo iterativo inizia con una semplice implementazione di un sottoinsieme dei requisiti software e migliora iterativamente le versioni in evoluzione fino all'implementazione dell'intero sistema. Ad ogni iterazione, vengono apportate modifiche al progetto e vengono aggiunte nuove capacità funzionali. L'idea di base alla base di questo metodo è sviluppare un sistema attraverso cicli ripetuti (iterativi) e in porzioni più piccole alla volta (incrementali).

La figura seguente è una rappresentazione del modello iterativo e incrementale:

Lo sviluppo iterativo e incrementale è una combinazione di progettazione iterativa o metodo iterativo e modello di build incrementale per lo sviluppo. "Durante lo sviluppo del software, potrebbe essere in corso più di un'iterazione del ciclo di sviluppo del software contemporaneamente." Questo processo può essere descritto come un approccio di "acquisizione evolutiva" o "costruzione incrementale". "

In questo modello incrementale, l'intero requisito è suddiviso in varie build. Durante ogni iterazione, il modulo di sviluppo passa attraverso le fasi di requisiti, progettazione, implementazione e test. Ogni versione successiva del modulo aggiunge funzioni alla versione precedente. Il processo continua fino a quando il sistema completo è pronto secondo il requisito.

La chiave per un uso riuscito di un ciclo di vita di sviluppo software iterativo è la convalida rigorosa dei requisiti e la verifica e il test di ciascuna versione del software rispetto a tali requisiti all'interno di ogni ciclo del modello. Man mano che il software si evolve attraverso cicli successivi, i test devono essere ripetuti ed estesi per verificare ogni versione del software.

Modello iterativo - Applicazione

Come altri modelli SDLC, lo sviluppo iterativo e incrementale ha alcune applicazioni specifiche nell'industria del software. Questo modello viene spesso utilizzato nei seguenti scenari:

  • I requisiti del sistema completo sono chiaramente definiti e compresi.

  • I requisiti principali devono essere definiti; tuttavia, alcune funzionalità o miglioramenti richiesti potrebbero evolversi nel tempo.

  • C'è un tempo per il vincolo del mercato.

  • È in uso una nuova tecnologia che viene appresa dal team di sviluppo mentre lavora al progetto.

  • Le risorse con le serie di competenze necessarie non sono disponibili e sono pianificate per essere utilizzate su base contrattuale per iterazioni specifiche.

  • Ci sono alcune caratteristiche e obiettivi ad alto rischio che potrebbero cambiare in futuro.

Modello iterativo - Pro e contro

Il vantaggio di questo modello è che esiste un modello funzionante del sistema in una fase iniziale di sviluppo, che rende più facile trovare difetti funzionali o di design. L'individuazione dei problemi in una fase iniziale dello sviluppo consente di adottare misure correttive con un budget limitato.

Lo svantaggio di questo modello SDLC è che è applicabile solo a progetti di sviluppo software grandi e voluminosi. Questo perché è difficile suddividere un piccolo sistema software in ulteriori piccoli incrementi / moduli utilizzabili.

I vantaggi del modello SDLC iterativo e incrementale sono i seguenti:

  • Alcune funzionalità operative possono essere sviluppate rapidamente e nelle prime fasi del ciclo di vita.

  • I risultati si ottengono precocemente e periodicamente.

  • È possibile pianificare uno sviluppo parallelo.

  • Il progresso può essere misurato.

  • Meno costoso modificare l'ambito / i requisiti.

  • Il test e il debug durante l'iterazione più piccola è facile.

  • I rischi vengono identificati e risolti durante l'iterazione; e ogni iterazione è una pietra miliare facilmente gestibile.

  • Gestione del rischio più semplice: la parte ad alto rischio viene eseguita per prima.

  • Con ogni incremento, viene fornito un prodotto operativo.

  • Problemi, sfide e rischi identificati da ogni incremento possono essere utilizzati / applicati all'incremento successivo.

  • L'analisi dei rischi è migliore.

  • Supporta il cambiamento dei requisiti.

  • Il tempo di funzionamento iniziale è inferiore.

  • Più adatto per progetti di grandi dimensioni e mission-critical.

  • Durante il ciclo di vita, il software viene prodotto in anticipo, il che facilita la valutazione e il feedback dei clienti.

Gli svantaggi del modello SDLC iterativo e incrementale sono i seguenti:

  • Potrebbero essere necessarie più risorse.

  • Sebbene il costo del cambiamento sia inferiore, ma non è molto adatto per cambiare i requisiti.

  • È necessaria una maggiore attenzione da parte della direzione.

  • Possono sorgere problemi di architettura o di progettazione del sistema perché non tutti i requisiti vengono raccolti all'inizio dell'intero ciclo di vita.

  • La definizione degli incrementi può richiedere la definizione del sistema completo.

  • Non adatto a progetti più piccoli.

  • La complessità della gestione è più.

  • La fine del progetto potrebbe non essere nota, il che rappresenta un rischio.

  • Per l'analisi dei rischi sono necessarie risorse altamente qualificate.

  • L'avanzamento dei progetti dipende in larga misura dalla fase di analisi del rischio.