Guida al tool: Reverse-Engineering del codice utilizzando Rational Rose
Questa guida al tool descrive il modo in cui Rational Rose esegue il reverse engineering su vari tipi di elementi in un modello Rose.
Strumento: Rational Rose
Relazioni
Descrizione principale

Panoramica

Questa guida al tool descrive il modo in cui Rational Rose esegue il reverse engineering su vari tipi di elementi in un modello Rose, compresi elementi vari come il sorgente del linguaggio e il codice binario, le librerie dei tipi, gli elementi basati su web,  XML DTD, gli schema di database, etc...

Il reverse engineering è il processo di esame di una risorsa esistente, di recupero di informazioni sulla sua progettazione e quindi il processo di utilizzo di tali informazioni per generare o aggiornare un modello che rappresenta la struttura logica del progetto. Consente di riutilizzare elementi comuni a più modelli o sistemi. Inoltre, consente di sviluppare in modo iterativo (roundtrip) un sistema attraverso l'analisi e la progettazione in Rational Rose, generando codice sorgente dal modello, sviluppando il sorgente e quindi effettuando il reverse engineering del sorgente in un modello Rose.

I seguenti componenti aggiuntivi di Rational Rose forniscono funzioni di reverse engineering:

Visual C++

Rational Rose Visual C++ consente il reverse engineering del codice sorgente Visual C++. Le sue funzioni comprendono: 

  • Reverse engineering completo di strutture di linguaggio Visual C++ comuni quali, ad esempio, relazioni, typedef, enum, mappe message/object/COM, costruttori e distruttori 
  • Supporto basato su dialoghi per il codice di reverse engineering per elementi Visual C++
  • Autosincronizzazione per l'aggiornamento automatico del codice o del modello quando viene modificato
  • Integrazione con Visual Studio di Microsoft, compresi i file IDL
  • Supporto per le classi delle maschere Visual C++ e i pattern di codice specificato dall'utente

 Visual Basic

Poiché è strettamente integrato con l'ambiente Microsoft Visual Basic 6.0, il componente aggiuntivo del supporto al linguaggio di Rational Rose Visual Basic consente di aggiornare e di conseguenza evolvere un modello Rose dalle modifiche nel codice sorgente Visual Basic. I tool estensibili e personalizzabili basati su dialoghi guidano l'utente nel processo di aggiornamento del modello, quando viene modificato il codice sorgente.

Le funzioni comprendono:

  • L'aggiornamento degli elementi del modello dalle modifiche nei progetti del codice sorgente corrispondente
  • Il modo di sincronizzazione per l'aggiornamento degli elementi del modello quando viene eliminato il codice sorgente
  • L'importazione delle librerie dei tipi nel modello 
  • La possibilità di automatizzare ed estendere il roundtrip engineering utilizzando Rose Visual Studio RTE Extensibility

Type Library Importer

Type Library Importer in Rational Rose consente di importare una libreria dei tipi di un componente COM (file .dll, .exe, .ocx, .olb e .tlb) in un modello Rose. La libreria del tipo viene rappresentata come un componente e come un pacchetto logico nel modello. Il pacchetto logico contiene gli elementi delle librerie dei tipi, definiti dalle informazioni dei tipi del componente COM importato, quali co-classi, interfacce, etc... Ciascun elemento viene rappresentato da una classe.

Importando le librerie dei tipi in un modello, è possibile mostrare come le classi, nell'utilizzo del modello, implementano o dipendono da classi e interfacce di altri componenti COM, indipendentemente dal loro linguaggio di implementazione. Tra le funzioni di Type Library Importer sono comprese:

  • Supporto basato sui dialoghi per controllare Type Library Importer
  • Modo di importazione veloce per importare i segnaposto delle classi e il modo di importazione completo per importazione delle classi con tutte le operazioni e proprietà
  • Presentazione delle librerie dei tipi in Object Browser oppure OLE/COM Viewer in Visual Studio
  • Capacità di estendere e personalizzare l'importazione delle librerie dei tipi eseguendo Type Library Importer da uno script o un programma con Rose Visual Studio RTE Extensibility

icona della guida In modo in cui si utilizza una libreria dei tipi varia da un linguaggio di programmazione ad un altro. Per ulteriori informazioni, consultare la guida in linea per Rational Rose e la documentazione per il componente aggiuntivo del linguaggio che si sta utilizzando.

 ANSI C++

Il componente aggiuntivo ANSI C++ di Rational Rose consente di eseguire il reverse engineering del codice sorgente in un modello Rose. ANSI C++ supporta sia il reverse engineering in un modello vuoto, dove vengono creati nuovi elementi dei modelli e sia il reverse engineering in un modello esistente, dove gli elementi dei modelli vengono modificati in modo da corrispondere al codice. Questo componente aggiuntivo fornisce:  

  • Supporto per l'evoluzione del modello dall'analisi alla progettazione
  • Supporto per il linguaggio C++ senza limitazioni al compilatore C++ di un singolo fornitore
  • Roundtrip engineering che sincronizza modelli e genera codice C++ tra più iterazioni
  • Modifiche, apportate al codice, che vengono riportate al modello durante il reverse engineering
  • Progettazione, modellazione e visualizzazione di tutte le strutture C++ comprese classi, maschere, spazi nomi, ereditarietà e funzioni di membri di classe
  • Supporto per ampi framework

Rose J (Java)

Rational Rose J consente di eseguire reverse engineering di elementi Java esistenti in un modello Rose. Tra questi elementi vi sono:

  • File di origine (file .java)
  • File bytecode (file .class)
  • File di archivio Java (file .zip, .cab, .jar e .war)
  • JavaBean Enterprise di Java
  • Servlet Java

Rational Rose J supporta anche l'integrazione con VisualAge di IBM per Java.

CORBA 

Rational Rose CORBA consente di eseguire il reverse engineering di tutti i codici IDL conformi a CORBA in un modello Rose. Ciascun file .idl di cui si è eseguito il reverse engineering diviene un componente e viene posto nella vista del componente del modello.

Quando di effettua il reverse engineering di codice, di cui si è precedentemente eseguito il forward engineering (cioè, il codice che è stato generato da elementi del modello CORBA), gli elementi del modello originale restano invariati, ad eccezione delle nuove informazioni o modifiche immesse nel codice IDL, che vengono riportate nel modello. Le eccezioni a questa regola sono i casi speciali delle strutture di Rational Rose utilizzate solo per un unico forward engineering.

 XML DTD

Rational Rose XML DTD (eXtensible Markup Language Document Type Definition) esegue il reverse engineering di un XML DTD (file .dtd) per creare un diagramma di classe Rose mostrando la struttura, gli elementi e le relazioni nel DTD. È possibile aggiungere ed eliminare elementi XML DTD e modificare le relazioni tra gli elementi nel diagramma di classe creato dal processo di reverse engineering. Dopo aver utilizzato il programma di controllo della sintassi di Rose XML DTD per convalidare XML, è possibile generare un nuovo DTD dal diagramma di classe Rose.

Rational Rose XML DTD fornisce classi stereotipate da utilizzare per creare modelli e generare un XML DTD.

Web Modeler

Rational Rose Web Modeler analizza file ASP (Active Server Page), JSP (Java Server Page) e HTML nell'applicazione Web creando un modello di applicazione web utilizzando classi di stereotipi che rappresentano pagine client, pagine server e moduli HTML. È possibile modificare il modello di applicazione Web e generare file .asp, .jsp, .html e .htm da Web Modeler.

Data Modeler

Le funzioni di Rational Rose Data Modeler consentono al progettista di database e allo sviluppatore di software di comunicare requisiti utilizzando lo stesso tool. In qualità di progettista database oppure di sviluppatore, è possibile utilizzare Rational Rose Data Modeler per creare modelli di database e progettarli, eseguendo il reverse engineering di uno schema di database o uno script DDL esistente.

Utilizzando la procedura guidata di reverse engineering di Rational Rose Data Modeler, è possibile elaborare uno script DDL o uno schema di database per un database standard ANSI  SQL 92 oppure per i seguenti DBMS:

  • DB2 DBMS versioni MVS e UDB
  • Oracle DBMS 
  • SQL Server DBMS 
  • Sybase Adaptive Server 

La procedura guidata per reverse engineering legge lo schema di database oppure il file DDL e crea un diagramma del modello dati che comprende tutte le entità degli identificatori citati. In base al DBMS, la procedura guidata per il reverse engineering di Rose Data Modeler modella tabelle,  relazioni tra tabelle, procedure memorizzate, indici e trigger nel diagramma del modello dati.

Nel diagramma del modello di dati è possibile aggiungere tabelle, definire relazioni, indici e domini ed applicare moduli normali di terze parti agli elementi, è possibile quindi trasformare il modello di dati in un modello di oggetti oppure eseguire il forward engineering del modello di dati per generare uno script DDL o uno schema di database.