Fase del Processo di Reverse Engineering in informatica

Fase del Processo di Reverse Engineering in informatica

Fasi processo di Reengineering

Fasi del Processo di Reengineering in informatica

Le fasi principali del processo di Reengineering schematizzato in precedenza sono le seguenti e verranno successivamente trattate:

  1. Traduzione del codice: Il codice sorgente del programma viene tradotto da un vecchio linguaggio di programmazione a una nuova versione dello stesso linguaggio, oppure ad un linguaggio di programmazione più moderno.
  2. Reverse Engineering: Il programma viene analizzato in profondità per ottenere utili informazioni finalizzate alla redazione di una documentazione della sua organizzazione e del suo funzionamento.
  3. Miglioramento della struttura del programma: Le strutture di controllo del programma vengo migliorate per aumentarne la leggibilità e facilitarne il riuso.
  4. Modularizzazione del programma: Le parti di codice relative alla stessa funzionalità vengono raggruppate e riorganizzate in modo da eliminare ridondanze dove possibile.
  5. Reingegnerizzaione dei dati: I dati già acquisiti dall’applicazione vengono reingegnerizzati e trasformati per essere elaborati rispecchiando le nuove strutture dati del software reingegnerizzato.

Queste fasi elencate non sono ovviamente tutte necessarie per il processo di Reengineering. Per esempio se si fa uso di tool ad hoc, il Reverse Engineering viene spesso svolto automaticamente, oppure la Reingegnerizzazione dei dati deve essere svolta solo quando le strutture dati del programma vengono cambiate.

Tuttavia la Ristrutturazione del programma è sempre fondamentale.

Le fasi del processo di Reengineering: Reverse Engineering

La fase di Reverse Engineering consiste nell’analizzare il software con l’obbiettivo di recuperarne le specifiche, la struttura, il funzionamento e l’originaria progettazione. L’obbiettivo di questa fase è quello di recuperare più informazioni possibili sul sistema Legacy riguardo tutte le modifiche fatte al codice, le astrazioni presenti nel software e le parti di codice riutilizzato oppure riutilizzabili.

Le fasi del processo di Reengineering - Reverse Engineering

A differenza delle altre fasi del processo di Reengineering, il programma in se non viene modificato. Generalmente l’input del processo di Reverse engineering è il codice sorgente, ma nel caso esso non sia disponibile, ad esempio perché andato perduto, si deve utilizzare il codice eseguibile. Il processo di Reverse Engineering, come già detto, è diverso da quello di Reengineering. Il primo ha lo scopo di ricavare la documentazione riguardo le specifiche, la struttura, il funzionamento e la progettazione partendo dal codice sorgente; il secondo invece, partendo dalle conoscenze ottenute dal primo, produce nuovo codice, più mantenibile rispetto a quello Legacy.

Da quanto detto, si può evincere che il processo di Reverse engineering è necessario per un buon Reengineering dell’applicazione, viceversa non è detto che dopo la fase di Reverse Engineering siano necessarie le altre fasi:

  1. Le conoscenze acquisite dalla fase di Reverse Engineering vengono utilizzate come input per la modifica del codice Legacy.
  2. Le conoscenze acquisite dalla fase di Reverse Engineering sono ora disponibili e sufficienti al personale addetto per una corretta e meno dispendiosa attività di manutenzione.

Anche la fase di Reverse Engineering può essere svolta completamente o meno da tools che automatizzano e riducono notevolmente il tempo da dedicare a questa fase. L’output del processo di Reverse engineering può essere costituito da grafici, diagrammi anche collegati al codice per far vedere il sistema Legacy da diversi punti di vista, annotazioni personali, stime e statistiche.

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 *