Trasformazione di modelli di progetto : soluzioni basate su XSLT

Facoltà di Ingegneria
Corso di Studi in Ingegneria Informatica
Trasformazione di modelli di progetto: soluzioni basate su XSLT
tesi di laurea
Trasformazione di modelli di progetto : soluzioni basate su XSLT
Anno Accademico 2005/2006
relatore
Ch.mo prof. Porfirio Tramontana
candidato
Claudio Liccardi
Matr. 831/117
Facoltà di Ingegneria
Corso di Studi in Ingegneria Informatica
Trasformazione di modelli di progetto: soluzioni basate su XSLT
Reverse Engineering - Il problema da affrontare
Reverse Engineering:
ƒ Cos
Cos’è
’è:: un processo semisemi-automatico che, a partire dal codice, permette di ottenere i
modelli progettuali del software per poi arrivare a dedurne le specifiche
specifiche formali.
ƒ
ƒ
Le fasi fondamentali:
• Estrazione
• Astrazione
• Comprensione e descrizione
Il problema: Per sistemi software di dimensioni mediomedio-grandi, risulterebbe lento,
laborioso, difficile e dai costi elevati
¾ L’obiettivo: supportare e rendere efficiente il processo
Generazione automatica del modello
CODICE
MODELLO
Facoltà di Ingegneria
Corso di Studi in Ingegneria Informatica
Trasformazione di modelli di progetto: soluzioni basate su XSLT
Trasformazione di modelli per R.E.
In questa tesi ci si sofferma sulla trasformazione automatica di modelli relativamente
alla fase di astrazione del R.E.
Il percorso:
1. Si parte dal modello di dettaglio ottenuto dalla fase di estrazione
estrazione
2. Si trasforma tramite algoritmi di astrazione, in uno o più
più passi elaborativi
automatizzati, il modello di basso livello in un altro a un livello
livello di astrazione più
più
elevato.
Si definisce un modello in grado di rappresentare l'applicazione ad un più
più alto livello di
astrazione
E’ necessario disporre di strumenti per rappresentare e trasformare
trasformare modelli.
3. Si giunge a un modello di alto livello che permetta di ricavare le specifiche formali
Facoltà di Ingegneria
Corso di Studi in Ingegneria Informatica
Trasformazione di modelli di progetto: soluzioni basate su XSLT
Un possibile approccio: adoperare XML e XMI
Un esempio di
documento XML
XML (eXtensible Markup Language)
Perchè
Perch
è è stato scelto:
E’ garantita
<RADICE>
<GENITORE1>
<FIGLIO_1> Dati </FIGLIO_1>
.
.
<FIGLIO_N
FIGLIO_N>
> Dati </FIGLIO_N
</ FIGLIO_N>
>
</GENITORE1>
</RADICE>
ƒ Standard del W3C
l’ interoperabilit
interoperabilità
à tra
sistemi e applicazioni
ƒ Documento testuale
Ideale per rappresentare modelli
ƒ Caratterizzato da un struttura gerarchica
strutturati da trasformare
ƒElaborabile tramite un suo dialetto: XSLT
XMI (Xml
(Xml Metadata Interchange
Interchange))
Perché
Perch
é è stato scelto:
ƒ Standard OMG, basato su XML
ƒ Permette di mappare modelli
UML tramite tag XML
Ideale per trasformare modelli
rappresentati in XML
Un esempio di <UML:Class xmi.id=
xmi.id=““IdClasse
IdClasse”
” name=
name=““NomeClasse
NomeClasse””
visibility=“”
visibility=
“”
isRoot=
isRoot=“”
“”
isLeaf=“”
isLeaf=
“”
isAbstract=“”
isAbstract=
“”>
>
documento XMI
<UML:Classifier.feature
<UML:
Classifier.feature>
>
<UML:Attribute xmi.id=
xmi.id=“”
“”
name=“”
name=
“” visibility=
visibility=“”
“”>
>
Ideale come formato del modello di arrivo
per cui progettare le trasformazioni
Facoltà di Ingegneria
Corso di Studi in Ingegneria Informatica
Trasformazione di modelli di progetto: soluzioni basate su XSLT
Le soluzioni valutate per la trasformazione
VANTAGGI
SVANTAGGI
ESEGUIBILE
Versatilità e Flessibilità
Versatilità
Flessibilità
Potenza dei moderni linguaggi
di programmazione
Non progettato per trasformazioni
di modello
Portabilità
Portabilit
à ed estensibilità
estensibilità limitata
Accessibilità
Accessibilit
à del codice
ALTOVA
MAPFORCE
Mapping visuale
Generazione automatica di un
documento XSLT
Portabilità
Portabilit
à
Scarsa riusabilità
riusabilità ed adattabilità
adattabilità
del codice XSLT generato
Soluzione proprietaria e costosa
XSLT
Progettato per trasformazioni di
documenti XML
Limiti di un linguaggio non
Simile ai comuni linguaggi di
procedurale
programmazione(ma dichiarativo)
Portabilità
Portabilit
à
Facoltà di Ingegneria
Corso di Studi in Ingegneria Informatica
Trasformazione di modelli di progetto: soluzioni basate su XSLT
XSLT : parser e processori
La trasformazione di un documento XML avviene attraverso due elaborazioni:
elaborazioni:
1. Parsing
Lo scopo è rappresentare il documento XML in un modello a oggetti più
più adatto
all’’elaborazione da parte delle applicazioni.
all
Ne esistono due categorie:
Foglio di
Documento
stile XSL(T)
ƒ Tree based (standard DOM)
XML
ƒ Event based (Sax: standard de facto)
Parser
XML
2. Applicazione del foglio di stile tramite
un processore XSLT
ƒ Parsing del documento XML e del
foglio di stile XSL(T)
ƒ Visita del modello creato dal parser e selezione
del relativo template per il nodo/evento corrente.
ƒ
Utilizzo del template selezionato.
Modello a
oggetti XSLT
Modello a
oggetti XML
Processore
XSLT
Documento
XMI
Facoltà di Ingegneria
Corso di Studi in Ingegneria Informatica
Trasformazione di modelli di progetto: soluzioni basate su XSLT
Un esempio concreto: R.E. di applicazioni flash
Si parte da un lavoro di tesi precedente in cui:
Si decompilano le flash application di una pagina web tramite l’
l ’applicazione
“Flash Decompiler”
Decompiler”
Si ricavano informazioni ausiliarie non ottenibili tramite il decompiler
decompiler
I componenti e le informazioni estratte vengono catalogati in un DB Access.
Facoltà di Ingegneria
Corso di Studi in Ingegneria Informatica
Trasformazione di modelli di progetto: soluzioni basate su XSLT
Cosa è stato fatto (1)
Database
Access
Database
XML
Documento
XSLT
Processore
XSLT
Documento
XMI
Modello
UML
1. Esportazione in XML del database ottenuto dalla prima fase di R.E. (tramite Access)
2. Realizzazione di un documento XSLT che trasformi XML in XMI.
Il mapping tra i tag dell’
dell’XML e quelli dell’
dell’XMI avverrà
avverrà in questo modo:
TABELLA
Stereotipo
ENTRY
Classe avente come stereotipo quello della relativa tabella
CAMPI
Attributi
CONTENUTO DEL CAMPO
Valore di default del relativo attributo
COLLEGAMENTO TRA ENTRY
Associazioni tra classi
Facoltà di Ingegneria
Corso di Studi in Ingegneria Informatica
Trasformazione di modelli di progetto: soluzioni basate su XSLT
Cosa è stato fatto (2)
Un frammento
dell’’XSLT creato
dell
<xsl:template match="/*">
<XMI xmi.version="1.2" xmlns:UML="org.omg/UML/1.4">
<XMI.header>
<XMI.metamodel xmi.name="UML" xmi.version="1.4"/>
</XMI.header>
<XMI.content>
<UML:Model xmi.id="M.1" name="{name()}" visibility="public" isSpecification="false
isSp ecification="false””
isRoot="false" isLeaf="false" isAbstract="false">
<UML:Namespace.ownedElement>
<!-<!
-- Applico i template per cercare le classi, gli stereotipi e le associazioni
associazioni --->
>
<xsl:apply
xsl:apply--templates select="/*/*" mode="StereotipiFlash"/>
<xsl:apply
xsl:apply--templates select="/*/*" mode="Stereotipi"/>
<xsl:apply
xsl:apply--templates select="/*/*" mode="Classi"/>
3. Applicazione del documento creato tramite XSLT processor
4. Importazione del file XMI generato in un ambiente grafico UML (ArgoUML
( ArgoUML))
5.
Facoltà di Ingegneria
Corso di Studi in Ingegneria Informatica
Trasformazione di modelli di progetto: soluzioni basate su XSLT
Conclusioni e sviluppi futuri
Caratteristiche dell’
dell ’algoritmo proposto:
ƒ Applicabile a qualsiasi database
ƒ Indipendente dall
dall’’applicazione da modellare
Possibili sviluppi futuri:
ƒ Migliorare ll’’efficienza
ƒ Estenderne il campo di applicazione
ƒ Migliorare la struttura del database
ƒ Realizzare un interfaccia guidata