Quando nell’ingegneria del software, e più in generale in informatica, si parla di ciclo di vita del software si fa riferimento alla modalità con la quale la realizzazione di prodotti software viene scomposta da un modello di processo o da una metodologia di sviluppo in sottoattività che sono coordinate tra loro.
1. L’analisi
La maggior parte dei modelli di ciclo di vita del software si basa sulla scomposizione del processo di sviluppo in insiemi simili o uguali di attività: si comincia con l’analisi, che non è altro che l’indagine preliminare del contesto all’interno del quale deve essere inserito il prodotto software.
Anche l’analisi può essere, a sua volta, scomposta in altre sottoattività: si ha a che fare, quindi, con l’analisi dei requisiti, l’analisi del dominio applicativo, l’analisi di fattibilità e così via. Lo scopo è quello di identificare il problema che deve essere risolto, per arrivare all’elaborazione di un documento, il cosiddetto documento di specifiche funzionali, in cui siano illustrate le caratteristiche del sistema.
2. La progettazione
L’analisi è seguita dalla progettazione, per la quale vengono definite le linee principali della struttura del software secondo i requisiti che sono stati ricavati dall’analisi.
Il progetto architetturale e il progetto dettagliato costituiscono le due più importanti sottoattività della progettazione, che deve condurre a un documento che definisca l’architettura di alto livello e le caratteristiche dei moduli, cioè i singoli componenti.
3. La codifica
Dopodiché è il momento della codifica, cioè lo sviluppo del software: si tratta dell’implementazione, che corrisponde semplicemente alla programmazione e alla realizzazione del prodotto.
4. L’implementazione
L’implementazione può riguardare i singoli moduli che compongono il sistema, e che poi devono essere integrati tra loro: c’è bisogno, quindi, di un’organizzazione, con la messa a punto di una versione alfa e, successivamente, di una versione beta del software.
5. Il collaudo
Poi, è la volta del collaudo, che viene effettuato da vari tester e che prevede di verificare se e in che modo il software ottenuto è in grado di soddisfare i requisiti specificati al momento dell’analisi.
In altri termini, con il collaudo si controlla la correttezza del prodotto, sia tramite il collaudo dei singoli moduli, sia tramite il collaudo del sistema integrato. Nel caso in cui le specifiche non siano state rispettate, il software viene rispedito agli sviluppatori, in modo tale che i problemi identificati possano essere risolti e si possa procedere al debugging.
6. Il debugging
Si ricorre a dei programmi gestori di segnalazione anomalie per gestire le anomalie di funzionamento: si tratta di sistemi di bug tracking che semplificano l’organizzazione dei problemi registrati.
7. La pubblicazione
Quando il software è stato collaudato e ha dimostrato che le verifiche sono state superate, il ciclo di vita prevede la pubblicazione di una versione definitiva del programma, il quale quindi viene messo a disposizione degli acquirenti o di chiunque, a seconda di quel che prevede la licenza d’uso.
A volte avviene anche la messa in opera: in sostanza, il software viene installato e configurato nell’infrastruttura di esecuzione, cioè l’ambiente operativo.
8.La manutenzione
Il ciclo di vita del software si conclude con la fase della manutenzione, che include l’insieme di sottoattività di cui c’è bisogno per modificare il software dopo la distribuzione.
Si parla di migrazione di ambiente o di manutenzione adattativa nel caso in cui ci sia la necessità di adattare il software ad ambienti operativi nuovi, e di manutenzione correttiva nel caso in cui ci sia la necessità di correggere tramite patch degli errori. Se, invece, lo scopo è solo quello di ampliare le funzionalità, entra in gioco la cosiddetta manutenzione evolutiva. I costi di questa fase sono piuttosto elevati.