Ingegneria del software – Modelli di processo per la manutenzione del software
Problemi della manutenzione del software
I problemi della manutenzione del software in gran parte dipendono dalla mancanza di controllo e disciplina nelle fasi di analisi e progetto del software. Alcuni fattori tecnici sono i seguenti:
- difficoltà nel comprendere un programma scritto da altri
- mancanza di documentazione completa/consistente
- software non progettato per modifiche future
- difficoltà nel tradurre una richiesta di modifica di funzionamento del sistema in una modifica del software
- valutazione dell’impatto di ciascuna modifica sull’intero sistema
- la gestione della configurazione del software
- la necessità di ritestare il sistema dopo le modifiche
Modelli di processo per la manutenzione del software
Per far fronte a questi problemi si utilizzano molto spesso questi 2 modelli di processo per la manutenzione del software.
Modello di riparazione veloce (Quick-fix model)
- modifiche al codice in termini di patches (‘pezze’)
- veloce ed economico sul breve termine
- degradazione delle struttura
- documentazione modificata a posteriori
Questo modello è consigliato solo se bisogna eseguire piccole modifiche sul software o sistema in produzione.
Manutenzione “d’urgenza”
In alcuni casi le richieste di manutenzione devono essere soddisfatte rapidamente:
- Se un difetto serio deve essere riparato;
- Se modifiche dell’ambiente operativo causano effetti collaterali imprevisti sull’operatività del sistema;
- Se è necessario l’adeguamento urgente a seguito di cambiamenti imprevisti (come per esempio ambiente o mercato)
In questi casi, le fasi di analisi e progetto della modifica potrebbero non essere eseguite, implementando direttamente il cambiamento sul software in produzione.
Modello di miglioramento iterativo (iterative-enhancement model)
- valutazione preventiva dell’impatto della modifica
- decisione se lavorare su componenti esistenti o sviluppare nuove componenti
- preserva la struttura del sistema software (architettura)
- lento e costoso sul breve termine
- documentazione modificata in anticipo
Il modello di miglioramento iterativo a differenza del modello di riparazione veloce è utilizzato se il software/sistema necessita di manutenzione più “pesante” e quindi la procedura di fatto è molto diversa (riprende in buona parte le caratteristiche del ciclo di sviluppo iterativo e incrementale).