Manutenzione (software)

Da Wikipedia, l'enciclopedia libera.

Con manutenzione del software solitamente si definisce quel processo correttivo e di sviluppo che avviene dopo il rilascio del prodotto finale in un ambiente di produzione.

Innanzitutto è necessario chiarire il significato di un paio di termini.

  • Con il termine rilascio si intende la pubblicazione che avviene una volta che lo sviluppo del software è stato completato, verificato e ritenuto pronto per l'utilizzo da parte degli utenti, seguendo il progetto originale.
  • Con il termine ambiente di produzione si intende un luogo diverso dalle aree dedicate allo sviluppo e ai test dei prodotti software in fase di implementazione.

La post produzione[modifica | modifica sorgente]

Durante il ciclo di vita e l'uso di un qualsiasi software le aspettative e le condizioni in cui esso era stato sviluppato possono mutare, determinando la necessità di un adeguamento. Ad esempio si può verificare la necessità di ottemperare a nuove normative fiscali (per prodotti commerciali), oppure la segnalazione da parte di utenti di difetti nel software (bug) che necessitano correzioni più o meno urgenti.

Il costo della manutenzione[modifica | modifica sorgente]

Nel caso di mutate condizioni, la manutenzione del software può risultare molto difficoltosa poiché le modifiche necessarie spesso sono causa di profonde ristrutturazioni del prodotto. In questo caso si parla di "nuova versione" (o più comunemente si usa il termine inglese release) che può integrare o sostituire quella precedente.

Nel caso di semplici malfunzionamenti (detti bachi o, più comunemente, bug) vengono invece rilasciati dei file in grado di correggere l'errore nel software: in questo caso si parla di "pezza" (più comunemente si usa il termine inglese patch).

In entrambi i casi la difficoltà è maggiore se il codice è stato scritto in maniera poco modulare, senza dividerlo cioè in tante piccole parti in modo che ognuna si occupi di un compito preciso. È buona norma, quando si scrive un programma, evitare al massimo la ripetizione di codice seguendo uno standard (alla stregua del processo di normalizzazione in uso nei database). Se la stessa combinazione di istruzioni viene eseguita in varie parti dell'applicazione è conveniente racchiuderla in una routine riutilizzabile. Qualora si rendesse necessario ritoccare la procedura lo si potrà fare agendo in un punto solo con evidenti vantaggi in termini di tempo ed affidabilità.

I team per la manutenzione[modifica | modifica sorgente]

In genere i team di tecnici (analisti e programmatori) che si dedicano alla manutenzione di un software sono gli stessi che lo hanno realizzato, ma talvolta l'organizzazione del lavoro prevede due distinti team per lo sviluppo e la post produzione. In questo caso la documentazione relativa a quanto è stato realizzato risulta un utile strumento di lavoro.

Pratiche di manutenzione del software possono essere migliorate utilizzando nella Maturity Model del Software Maintenance S3M dal Dr. Aprile e il Dr. Abran.

Voci correlate[modifica | modifica sorgente]

Fasi del ciclo di vita[modifica | modifica sorgente]