Il « Ciclo di vita di un software » (in inglese software lifecycle), designa tutte le varie tappe dello sviluppo di un sfotware, dalla sua concezione alla sua scomparsa. L'obiettivo di una divisione simile e 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à :
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'équipe di sviluppo.
Per essere in grado di avere una metodologia comune fra il cliente e la società di servizi che si occupa dello sviluppo, sono stati messi a punto 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 per
Il modello di ciclo di vita a cascata è stato messo a punto 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 :
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.