Una versione di manutenzione è una versione del software che corregge un difetto di sicurezza o un bug minore senza alterare i componenti principali o aggiungere nuove funzionalità. Di solito sono numerati in decimi o centesimi per differenziarli dalle versioni principali, che sono numerate semplicemente versione 1.0, versione 2.0 e così via. Un rilascio di manutenzione è una parte del funzionamento del sistema e della fase di supporto del ciclo di vita del rilascio del software.
Ogni applicazione software attraversa il ciclo di vita del rilascio del software. Inizia con l’analisi dei sistemi e la scoperta dei requisiti, una fase in cui vengono modellati i dati e i processi. Si passa poi alla fase di progettazione, alla fase di costruzione, alla fase di realizzazione ed eventualmente alla fase operativa e di supporto. È all’interno di quest’ultima fase che viene applicato il supporto tecnico continuo agli utenti tramite l’introduzione di rilasci di manutenzione che correggono gli errori o aggiornano l’intero sistema rimodellando i requisiti di base.
Di solito è necessaria una versione di manutenzione per correggere gli errori di programmazione di base. Questi appaiono in genere a causa di errori commessi in una delle fasi precedenti del ciclo di vita del software. Se durante la fase di analisi dei requisiti, ad esempio, i requisiti vengono comunicati o convalidati in modo errato, può portare a gravi difetti che non si manifestano fino a molto tempo dopo. Questo è in realtà un evento comune, motivo per cui quasi ogni pezzo di software mai rilasciato ha dovuto subire una versione di manutenzione in un momento o nell’altro.
Ci sono diversi obiettivi fondamentali di una release di manutenzione. Innanzitutto, il rilascio dovrebbe apportare modifiche ai programmi esistenti per correggere gli errori commessi nelle fasi di requisiti, progettazione o implementazione. Dovrebbe anche garantire che le correzioni appena apportate non interferiscano con altri aspetti del segmento modificato e che le modifiche appena apportate non interferiscano con le attività di altri segmenti. Infine, il rilascio non dovrebbe causare danni alle prestazioni del sistema. In generale, gli ingegneri del software cercano di completare questo processo il più rapidamente possibile, senza sacrificare né la qualità né l’affidabilità.
Prima di poter rilasciare una versione di manutenzione, è necessario testarla accuratamente tramite tre metodi: unit test, test di sistema e test di regressione. Il test unitario assicura che il segmento specifico del programma che è stato corretto ora funzioni correttamente. Il test del sistema, d’altra parte, assicura che il nuovo segmento del programma corretto non interferisca con altri segmenti del programma. Il test di regressione utilizza dati statistici per verificare se il throughput complessivo o il tempo di risposta è stato influenzato positivamente o negativamente dalle modifiche.
L’ultimo e forse più importante aspetto della manutenzione del sistema è il controllo della versione. In questa parte del processo, un bibliotecario esperto basato su software registra e tiene traccia meticolosamente di tutte le modifiche apportate. Ciò consente agli ingegneri del software di tornare indietro nel caso in cui la versione di manutenzione rilevi errori imprevisti.