Ciclo di vita di un software

Il «Ciclo di vita di un software» (in inglese software lifecycle), designa tutte le varie tappe dello sviluppo di un software, dalla sua concezione alla sua scomparsa. L'obiettivo della divisione in tappe dello sviluppo del software è di permettere di definire degli stadi intermedi che permettano la validazione dello sviluppo del software, cioè la conformità del software secondo i bisogni espressi e la verifica del processo di sviluppo, cioè l'adeguatezza dei modelli attuati.

L'origine di questa divisione proviene dalla constatazione che gli errori hanno un costo tanto più elevato quanto la loro rilevazione avviene tardivamente nel processo di realizzazione. Il ciclo di vita permette di rilevare gli errori il prima possibile e quindi di controllare la qualità del software, dei tempi di realizzazione e i costi associati. Il ciclo di vita del software comprende generalmente almeno le seguente attività:

Definizione degli obiettivi, che consiste nel definire la finalità del progetto e la sua iscrizione in una strategia globale;

Analisi dei bisogni e della fattibilità, cioè l'espressione, la raccolta e la formalizzazione dei bisogni del richiedente (il cliente) e dell'insieme dei limiti;

Concezione generale, si tratta dell'elaborazione delle specifiche dell'architettura generale del software;

Concezione dettagliata, che consiste nel definire precisamente ogni sotto-insieme del software;

Codifica (Implementazione o programmazione), ossia la traduzione in un linguaggio di programmazione delle funzionalità definite in fase di concezione;

Test unitari, che permettono di verificare individualmente che ogni sotto-insieme del software sia implementato conformemente alle specifiche;

Integrazione, con l'obiettivo di assicurare dell'interfacciamento dei diversi elementi (moduli) del software. Essa è l'oggetto dei test di integrazione definiti in un documento;

Beta Testing (o debugging), cioè la verifica della conformità del software alle specifiche iniziali;

Documentazione, che punta a produrre le informazioni necessarie per l'uso del software o per gli ulteriori sviluppi;

Produzione;

Manutenzione, che comprende tutte le azioni correttive (manutenzione correttiva) e evolutive (manutenzione evolutiva) sul software.

La sequenza e la presenza di ognuna di queste attività nel ciclo di vita dipende dalla scelta di un modello di ciclo di vita tra il cliente e l'equipe di sviluppo.

Modelli di cicli di vita

Per essere in grado di avere una metodologia comune fra il cliente e la società di servizi che si occupa dello sviluppo, sono stati elaborati dei cicli di vita che definiscono le tappe dello sviluppo nonché i documenti da produrre per validare ogni tappa prima di passare alla successiva. Alla fine di ogni fase, si organizzano delle revisioni prima di passare alla fase successiva.

Modello a cascata

Il modello di ciclo di vita a cascata è stato attuato a partire dal 1966, per essere formalizzato verso il 1970. Esso definisce delle fasi sequenziali secondo le quali vengono prodotti dei documenti per verificarne la conformità prima di passare alla successiva:

Modello di ciclo di vita a cascata

Modello a V

Il modello di ciclo di vita a V parte dal principio che le procedure di verifica della conformità del software rispetto alle specifiche devono essere elaborate a partire dalle fasi di concezione:

modello di ciclo di vita a V
Foto: © Pixabay.

I nostri contenuti sono creati in collaborazione con esperti di high-tech, sotto la direzione di Jean-François Pillou, fondatore di CCM.net. CCM è un sito di high-tech leader a livello internazionale ed è disponibile in 11 lingue.
Potrebbe anche interessarti
Il documento intitolato « Ciclo di vita di un software » dal sito CCM (it.ccm.net) è reso disponibile sotto i termini della licenza Creative Commons. È possibile copiare, modificare delle copie di questa pagina, nelle condizioni previste dalla licenza, finché questa nota appaia chiaramente.