Evoluzione e Manutenzione del Software: Strategie per Sistemi Legacy
Classificato in Informatica
Scritto il in
italiano con una dimensione di 3,87 KB
Evoluzione e Manutenzione del Software
Le Leggi di Lehman
- Inevitabile evoluzione: La prima legge afferma che il mantenimento del sistema è un processo inevitabile. Con i cambiamenti dell'ambiente, sorgono nuove esigenze e il sistema deve essere modificato. Quando il sistema modificato viene reintrodotto nell'ambiente, si verificano ulteriori cambiamenti ambientali e il ciclo di evoluzione ricomincia.
- Degrado della struttura: La seconda legge stabilisce che, quando il sistema viene modificato, la sua struttura si degrada. L'unico modo per evitarlo è investire nella manutenzione preventiva, migliorando la struttura del software senza aggiungere nuove funzionalità, nonostante i costi aggiuntivi.
- Dinamica: La terza legge suggerisce che i sistemi di grandi dimensioni possiedono una propria dinamica definita nelle fasi iniziali. Ciò determina la difficoltà di manutenzione e limita il numero di cambiamenti possibili, a causa di fattori strutturali e organizzativi.
Tipologie di Manutenzione
La manutenzione si divide principalmente in:
- Correttiva: Riparazione di difetti del software. Gli errori di codifica sono solitamente economici da risolvere, mentre gli errori di progettazione richiedono spesso un ridisegno del sistema.
- Adattativa: Adattamento del software a un ambiente operativo diverso (hardware, sistema operativo o piattaforme di supporto).
- Evolutiva: Aggiunta di funzionalità o modifica del sistema in risposta a cambiamenti organizzativi o di business.
Previsioni e Gestione delle Richieste di Modifica
I gestori devono prevedere l'impatto delle modifiche basandosi su:
- Interfacce di sistema: Maggiore è il numero e la complessità delle interfacce, più probabili saranno le richieste di modifica.
- Instabilità dei requisiti: I requisiti legati a politiche organizzative sono più volatili rispetto a quelli basati su caratteristiche stabili.
- Processi di business: L'evoluzione dei processi aziendali genera costantemente nuove richieste di modifica.
Metriche di Processo per la Manutenibilità
Per valutare la facilità di manutenzione, si utilizzano:
- Numero di richieste di manutenzione correttiva.
- Tempo medio per l'analisi degli impatti.
- Tempo medio di implementazione di una modifica.
- Numero di richieste in attesa.
Reingegnerizzazione (Reengineering)
L'implementazione della reingegnerizzazione offre vantaggi in termini di rischio ridotto e costi contenuti rispetto allo sviluppo da zero. Le attività principali includono:
- Conversione del codice sorgente.
- Reverse-Engineering per estrarre informazioni e documentazione.
- Miglioramento della struttura e modularizzazione del programma.
- Reingegnerizzazione dei dati.
Gestione dei Sistemi Legacy
Le organizzazioni devono decidere tra quattro strategie per i sistemi legacy:
- Eliminazione: Se il sistema non contribuisce più ai processi aziendali.
- Manutenzione regolare: Se il sistema è stabile e le richieste di modifica sono minime.
- Reingegnerizzazione: Se la qualità è degradata ma il sistema è ancora necessario.
- Sostituzione: Se il sistema è obsoleto o non più supportato dall'hardware.
Valutazione del Valore e della Qualità
La valutazione si basa sull'incrocio tra valore di mercato (utilizzo, supporto ai processi, affidabilità, importanza delle uscite) e qualità tecnica (numero di richieste di modifica, complessità delle interfacce, volume dei dati).