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:

  1. Eliminazione: Se il sistema non contribuisce più ai processi aziendali.
  2. Manutenzione regolare: Se il sistema è stabile e le richieste di modifica sono minime.
  3. Reingegnerizzazione: Se la qualità è degradata ma il sistema è ancora necessario.
  4. 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).

Voci correlate: