Differenza tra ingegneria avanzata e ingegneria inversa

Autore: Laura McKinney
Data Della Creazione: 2 Aprile 2021
Data Di Aggiornamento: 26 Aprile 2024
Anonim
Pillole di Esperienza: Prof. F.A. Grassi
Video: Pillole di Esperienza: Prof. F.A. Grassi

Contenuto


Ingegneria avanzata e ingegneria inversa fanno parte del processo di reingegnerizzazione e sono strettamente correlati. La differenza cruciale tra il forward engineering e il reverse engineering è che il forward engineering impiega il cambiamento nel sistema in questione durante la ristrutturazione. Al contrario, il reverse engineering ha il solo scopo di esaminare il sistema per ottenere un design più astratto.

La reingegnerizzazione del software non è altro che la reimplementazione del sistema legacy per raggiungere una maggiore sostenibilità. L'evoluzione del sistema richiede l'assimilazione del sistema esistente che deve essere modificato in modo che il sistema possa essere modificato implementando le modifiche.

    1. Tabella di comparazione
    2. Definizione
    3. Differenze chiave
    4. Conclusione

Tabella di comparazione

Base per il confrontoIngegneria in avantiIngegneria inversa
Di baseSviluppo dell'applicazione con i requisiti forniti.I requisiti sono dedotti dalla domanda data.
CertezzaProduce sempre un'applicazione che implementa i requisiti.Si possono dare diverse idee sul requisito da un'implementazione.
Naturaprescrittivoadattabile
Competenze necessarieAlta competenzaCompetenza di basso livello
Tempo richiestoDi PiùDi meno
PrecisioneIl modello deve essere preciso e completo.Il modello inesatto può anche fornire informazioni parziali.


Definizione di ingegneria avanzata

Ingegneria in avanti è un processo di costruzione di un'applicazione con l'aiuto dei requisiti generali dell'implementazione finale. Elliot J. Chikofsky e James H. Cross hanno usato il termine "ingegneria avanzata" nel loro documento nell'anno 1990 e lo hanno associato allo sviluppo convenzionale. Come accennato in precedenza, la tecnica di evoluzione del sistema richiede un'adeguata comprensione del software o dei programmi esistenti, quindi solo le nuove modifiche potrebbero essere introdotte e implementate.

Il forward engineering prevede la costruzione di un prodotto seguendo le specifiche generali, dove le vecchie specifiche del sistema vengono analizzate, ristrutturate e rigenerate per ottenere il prodotto di migliore qualità.

Gli altri nomi utilizzati per il forward engineering sono "ristrutturazione e bonifica"Perché non solo recupera le informazioni di progettazione dal software esistente ma le utilizza anche per creare un prodotto di qualità superiore.


Definizione di Reverse Engineering

Ingegneria inversa, come suggerisce il nome è il processo inverso del forward engineering in cui il sistema esistente viene analizzato per produrre la documentazione del sistema esistente. Inizialmente, il reverse engineering è implementato su hardware in cui è prevalente l'esercizio di decifrazione dei progetti dai prodotti finiti.

Tuttavia, quando viene sviluppata una nuova applicazione, il reverse engineering ha lo scopo di scoprire i componenti del sistema e la loro relazione. Il codice software esistente viene analizzato a determinati livelli di astrazione: sistema, componente, programma, istruzione e modello.

Questo recupero di dati, informazioni architettoniche e di progettazione procedurale è realizzato per costruire una rappresentazione del programma considerando il livello più alto di astrazione rispetto al codice sorgente.

  1. L'ingegneria in avanti inizia con le specifiche del sistema e include la progettazione e l'implementazione del sistema di sviluppo. Al contrario, il passaggio iniziale nel reverse engineering inizia con il sistema esistente e la tecnica di sviluppo per la sostituzione si basa sull'interpretazione.
  2. È sempre certo generare un sottoprodotto di ingegneria avanzata ma nel caso di ingegneria inversa, vengono generate diverse idee sul requisito che non genera necessariamente un prodotto.
  3. Il forward engineering è di natura prescrittiva in cui gli sviluppatori devono seguire regole particolari per ottenere i risultati corretti. D'altra parte, il reverse engineering è adattivo dove l'ingegnere deve scoprire cosa ha effettivamente fatto lo sviluppatore.
  4. L'ingegneria in avanti richiede più tempo rispetto all'ingegneria inversa.
  5. Il prodotto finale del forward engineering deve essere completo ed esatto. Al contrario, il modello di ingegneria inversa può essere imperfetto, le informazioni parziali recuperate sono ancora utili.

Relazione tra ingegneria avanzata e ingegneria inversa

Conclusione

L'ingegneria avanzata prevede la modifica del sistema in oggetto, mentre l'ingegneria inversa analizza semplicemente il sistema. Inoltre, questi sono i componenti del processo di reingegnerizzazione.