Skip to content
Il ciclo di vita del software: introduzione ai modelli di sviluppo

Il ciclo di vita del software: introduzione ai modelli di sviluppo

Chi è interessato a dotarsi di un nuovo software troverà utile conoscere le fasi del suo ciclo di vita prima di avviare un progetto di implementazione, sia che si tratti di acquistare un prodotto di mercato (buy) che di realizzarne uno ex novo (make).

Il ciclo di vita del software è l’insieme delle fasi che un software attraversa per la sua realizzazione e il suo mantenimento nel tempo. Tali fasi comprendono tipicamente l’analisi delle necessità del committente, la progettazione del software, la sua realizzazione, il collaudo, la manutenzione e coinvolgono profili professionisti diversi, ciascuno dei quali qualificato e specializzato in un particolare ambito o fase.

L’esigenza di scomporre il ciclo di vita in fasi distinte e attività fra loro coordinate si origina alla fine degli anni sessanta, quando il processo di realizzazione del software ha abbandonato l’approccio artigianale per passare a quello industriale, che richiede strumenti di pianificazione e controllo, metodologie di sviluppo strutturate e adatte a soddisfare le richieste di prodotti sempre più complessi ed evoluti da parte del mercato.

Esistono numerosi modelli per descrivere e gestire il ciclo di vita del software, ciascuno dei quali con una propria descrizione delle fasi, dei processi e delle attività da seguire durante l’acquisto, la realizzazione, l’erogazione e il mantenimento del software. Fra questi, uno dei più diffusi è lo standard internazionale, ISO/IEC 12207:2008, utilizzato come riferimento dall’industria del software e che prevede tre categorie di processi (primari, di supporto e organizzativi), all’interno delle quali si organizzano processi, attività, sotto attività e risultati.

Senza scendere nella descrizione dei singoli modelli e standard, è possibile individuare alcune categorie di “metodologie di sviluppo”, all’interno delle quali si collocano concettualmente. Le più diffuse oggi sono le seguenti:

Metodologie pesanti (o classiche) – si basano sul “modello a cascata” (waterfall model), che prevede l’esecuzione in sequenza lineare delle fasi di analisi, progettazione, implementazione, collaudo e manutenzione. È il più tradizionale dei modelli esistenti ed è stato il primo teorizzato quando il processo di realizzazione del software ha assunto un carattere industriale.

Metodologie iterative – si basano sul “modello a spirale”, che prevede l’esecuzione ciclica (invece che lineare) di quattro fasi: identificazione degli obiettivi e delle alternative, loro successiva valutazione, sviluppo e verifica del software, revisione dei risultati delle tre fasi precedenti. Lo sviluppo del software avviene quindi in maniera iterativa, consentendo un rapido sviluppo di versioni crescenti e sempre più complete del software.

Metodologie agili – si basano sui principi definiti nel “manifesto agile”, che propone un approccio più dinamico, un forte coinvolgimento del cliente e un impegno a consegnare nuovi rilasci software frequentemente e velocemente. Sono metodologie piuttosto recenti, risalenti ai primi anni 2000, che si contrappongono a quelle classiche, come il modello a cascata. Si chiamano agili perché consentono di rivedere e cambiare continuamente le specifiche del software grazie ad una efficiente interazione con il committente.

Torna su