Definizione, vantaggi, svantaggi e costi del Software Reengineering

Definizione, vantaggi, svantaggi e costi del Software Reengineering

Software Reengineering

Il Software Reengineering è il processo di modifica di un software Legacy importante per l’organizzione, atto a migliorare le prestazioni e la struttura di esso, e a produrre nuova documentazione del software per rendere il codice più comprensibile, semplificando così le future manutenzioni.
Il costo della manutenzione del software Legacy aumenta proporzionalmente con l’avanzare del tempo, e la creazione di nuovo software ad hoc che vada a sostituire il Legacy molto spesso risulta avere costi proibitivi per l’organizzazione.

Il Software Reengineering dunque è senz’altro utile per aumentare la qualità, l’utilità, e il periodo di vita del software Legacy.

Definizione, vantaggi, svantaggi e costi del Software Reengineering

Limiti e svantaggi del Software Reengineering

Lo svantaggio principale del processo di Software Reengineering riguarda il limite pratico dei miglioramenti ottenibili mediante la reingegnerizzazione del sistema Legacy. E’ impossibile per esempio convertire una applicazione scritta completamente in linguaggio procedurale in una equivalente in linguaggio orientato agli oggetti. I cambiamenti di architettura del sistema o la radicale riorganizzazione del sistema di data management, devono essere svolti manualmente e questo comporta un aumento notevole dei costi.

Il secondo limite è dato dal fatto che, sebbene il sistema reingegnerizzato sia notevolmente più efficiente e di più facile manutenzione rispetto a prima, quasi sicuramente un sistema scritto e progettato secondo moderne tecniche di software engineering risulterebbe senza dubbio ancora più efficiente e la manutenzione sarebbe ancora più facile. Per questo prima di iniziare il processo di Reengineering è necessario analizzare attentamente se esso sia o meno conveniente.

Costi del Software Reengineering

I costi dell’attività di Reengineering sono direttamente proporzionali alla mole di lavoro richiesta, che a sua volte viene influenzata dalle scelte effettuate in fase di pianificazione del lavoro. Principalmente i fattori che incidono sui costi sono.

  1. La qualità del software esistente. Minore è la qualità del software e la sua relativa documentazione e maggiori saranno i costi sostenuti.
  2. I tools di supporto disponibili. Automatizzando il più possibile il processo di Reengineering con CASE tool si riducono i costi rispetto alle modifica manuale di essi.
  3. La mole di dati da reingegnerizzare. Maggiore è la mole maggiori saranno i costi.
  4. Le capacità del team di lavoro. Se il team di lavoro non è composto da sviluppatori o manutentori dell’applicazione Legacy, i costi aumenterenno in quanto sarà necessario investire maggior tempo nella comprensione dell’organizzazione e del funzionamento di essa.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *