simplengineering
Service Oriented Architects
RE T RO -M O D E L LAZI ON E
CON CE TTUAL E D I BAS I D I
D ATI RE LA Z I ON AL I
L'APPROCCIO simpleSOAD® 2.0
SE-LMA_WP2010101303
SIMPLE ENGINEERING 2004 - 2011
simpleSOAD® 2.0
Retro-modellazione concettuale di basi di dati relazionali
SIMPLE ENGINEERING IS AN INDEPENDENT EUROPEAN GROUP SPECIALIZED
IN SERVICE ORIENTED ARCHITECTURE (SOA) AND BUSINESS PROCESS
MANAGEMENT (BPM).
SIMPLE ENGINEERING:
- OPERATES AS AN ARCHITECTURE & ENGINEERING FIRM AND PROVIDES A
COMPLETE RANGE OF PROFESSIONAL SERVICES: ADVISING, PLANNING,
ANALYSIS, DESIGN, CAPACITY PLANNING, SERVICE IMPLEMENTATION
MANAGEMENT, TEST, VALIDATION, VERIFICATION, GOVERNANCE, AUDIT
AND ASSESSMENT OF SOA/BPM;
- HAS DEVELOPED SIMPLESOAD®, A COMPLETE, DETAILED AND PROVEN
METHODOLOGICAL FRAMEWORK FOR ANALYSIS, DESIGN AND CAPACITY
PLANNING OF SOA/BPM, BASED ON A MODEL-DRIVEN APPROACH AT THE
CONCEPTUAL, LOGICAL AND PHYSICAL LEVELS;
- RUNS AN ARCHITECTURE & ENGINEERING SCHOOL, PROVIDES LEARNING,
COACHING AND TECHNOLOGY TRANSFER SERVICES, CERTIFICATES
COMPANIES AND PROFESSIONALS;
GRANTS
COMMERCIAL
LICENSES
OF
THE
SIMPLESOAD®
METHODOLOGICAL FRAMEWORK TO CERTIFIED COMPANIES AND
PROFESSIONALS;
- RUNS AN ARCHITECTURE & ENGINEERING LAB AND PROVIDES
DEPLOYMENT, CONFIGURATION, CONSULTING, SUPPORT, LEARNING AND
COACHING SERVICES ON COTS (COMMERCIAL OFF-THE-SHELF) AND FOSS
(FREE
OPEN
SOURCE
SOFTWARE)
SOA/BPM
TECHNOLOGICAL
INFRASTRUCTURE FRAMEWORKS.
WWW.SIMPLE-ENG.COM
BLOG.SIMPLE-ENG.COM
SIMPLESOAD® IS A REGISTERED TRADEMARK OF SIMPLE ENGINEERING.
Il presente documento è rilasciato sotto la licenza Creative Commons Attribuzione-Non commercialeNon opere derivate 2.5 Italia disponibile al sito web
http://creativecommons.org/licenses/by-nc-nd/2.5/it/
o richiedendone copia a Creative Commons, 171 Second Street, Suite 300, San Francisco, California,
94105, USA.
Il marchio simpleSOAD® incluso nel documento è un marchio registrato di simple engineering s.r.l.
Il marchio simpleSOAD® può essere usato quando è riprodotto nel documento - e questo è utilizzato
secondo i termini della licenza Creative Commons Attribuzione-Non commerciale-Non opere derivate
2.5 Italia - o per citarne il titolo, salvo che tali usi possano essere associati all'offerta, alla promozione
o alla fornitura di servizi, ivi inclusi servizi di consulenza, sul framework metodologico simpleSOAD®.
Fatto salvo quanto sopra e salvo espresso consenso scritto da parte di simple engineering s.r.l., è
vietato qualsiasi uso del marchio simpleSOAD®.
SI MPL E EN GI N EERI NG 2 00 4 - 2 01 1
SE- L MA_ WP2 01 0 10 13 0 3 - 2 /15
simpleSOAD® 2.0
Retro-modellazione concettuale di basi di dati relazionali
INTRODUZIONE
Non sono rare le situazioni in cui un'organizzazione gestisce sistemi patrimoniali ( legacy)
di cui ha perso parzialmente la conoscenza: il sistema è utilizzato quotidianamente, le sue
decisioni sono accettate, ma è difficile spiegarle e giustificarle. Le evoluzioni sono difficili e
costose. L'organizzazione padroneggia solo parzialmente e in modo frammentato il modello
concettuale del sistema.
Il task di retro-modellazione dei sistemi patrimoniali e, in particolare, di retromodellazione concettuale delle basi di dati patrimoniali - che ne costituisce solo un aspetto,
anche se molto importante, e che è l'oggetto specifico di questo documento - può essere
decomposto in due sub-task:


La costituzione di una rappresentazione fedele e al giusto livello di dettaglio e
precisione del sistema patrimoniale. Tale rappresentazione costituisce la base
per poter in seguito compiere la retro-modellazione a livello concettuale, e
cioè per ricostruire il corpo concettuale di cui lo schema fisico è una
rappresentazione.
La costituzione del corpo concettuale, a partire dal modello del sistema
patrimoniale risultato dell'attività di cui al punto precedente.
Questo documento presenta i modelli, i processi, i metodi, le pratiche e gli strumenti per
la retro-modellazione concettuale delle basi di dati patrimoniali , tema che oggi interessa
particolarmente le imprese e le amministrazioni. L'interesse è dovuto al fatto che le basi di
dati patrimoniali ospitano spesso risorse informative d'importanza strategica e di grande
valore, ma che la loro struttura attuale, risultato di anni di manutenzione, frena, se non
impedisce, la possibilità di offrire servizi a valore aggiunto su tali risorse.
I modelli, sia della base patrimoniale sia del corpo concettuale, devono appoggiarsi su
meta-modelli standard. Questo consente la loro comprensione da parte di persone che non
hanno partecipato alla loro costruzione, e a cui sono affidati, ad esempio, compiti di
progettazione di applicazioni e servizi. Inoltre il modello concettuale deve permettere di
eseguire altri compiti per trasformazione (eventualmente automatica) di modelli, in
applicazione dell'approccio MDA (Model Driven Architecture) [MDA].
Il paragrafo 'Meta-modelli standard per il Database Reverse Engineering' presenta in
modo conciso i meta-modelli standard per rappresentare (a) la struttura fisica della base, i
componenti software e hardware e l'ambiente operativo, e (b) il corpo concettuale del
dominio business.
I processi, i metodi e le pratiche di modellazione devono permettere di costruire modelli
standard (cioè conformi a meta-modelli standard) di qualità, in modo efficace ed efficiente.
Un metodo, anche molto rapido e produttivo, la cui applicazione conduce alla costruzione di
un modello non standard ha un valore molto relativo. I metodi e le pratiche utilizzabili si
basano fondamentalmente sull'interazione con gli esperti di dominio, e cioè: (a) per la
modellazione fisica della base patrimoniale, con gli amministratori, gli esercenti e i
progettisti; (b) per la retro-modellazione del corpo concettuale e delle regole business del
dominio, con gli esperti e analisti business, i progettisti e gli sviluppatori. Il paragrafo
'Processi, metodi e pratiche per il Database Reverse Engineering' presenta succintamente un
SI MPL E EN GI N EERI NG 2 00 4 - 2 01 1
SE- L MA_ WP2 01 0 10 13 0 3 - 3 /15
simpleSOAD® 2.0
Retro-modellazione concettuale di basi di dati relazionali
processo, dei metodi e delle pratiche che permettono di costruire rapidamente e a costi
contenuti dei modelli standard di qualità, sia della base di dati sia del corpo concettuale.
Gli strumenti di supporto alle attività di modellazione devono da un lato poter manipolare
perfettamente i meta-modelli standard - evitare di indurre un lock-in proprietario sul modello
- e dall'altro essere disponibili sul mercato. UML costituisce il linguaggio di base per la
modellazione [UML], e quindi lo strumento principale di supporto dei task di modellazione è
un UML Modeler che manipola modelli interoperabili (e cioè conformi allo standard UML 2). Il
programma ADM/KDM (vedi in seguito) tende a stimolare lo sviluppo di tool con capacità
d'ispezione e di colletta automatica d'informazioni sulle basi di dati patrimoniali. Il paragrafo
'Strumenti per il Database Reverse Engineering' presenta concisamente la problematica degli
strumenti di supporto.
META-MODELLI STANDARD PER IL DATABASE REVERSE ENGINEERING
ADM/KDM
L'OMG ha lanciato nel 2003 la task force Architecture-Driven Modernization, la cui
"missione" è stata definita: "Create specifications and promote industry consensus on
modernization of existing applications" [ADM]. La task force ha prodotto nel 2007 la versione
1.0 e nel 2009 la Versione 1.1 del Knowledge Discovery Meta-model [ADM/KDM]. KDM
specifica l'insieme dei concetti comuni che permettono di descrivere e comprendere i sistemi
esistenti, in vista appunto di una loro "modernizzazione". Il meta-modello KDM, costituito da
classi e associazioni UML, permette di rappresentare le informazioni, le loro relazioni e gli
ambienti operazionali dei sistemi software esistenti all’interno di un’organizzazione.

Figura 1. Layers, packages e separation of concerns in KDM.
In particolare il meta-modello KDM fornisce un formato comune di scambio che
garantisce l’interoperabilità tra gli strumenti di analisi e modernizzazione a supporto della
modellazione dei sistemi patrimoniali. Il meta-modello rappresenta gli elementi dei sistemi
patrimoniali come reti di classi e associazioni predefinite, organizzate in dodici packages
idealmente collocati in quattro strati (layer) - vedi la Figura 1, ripresa dalle specifiche KDM.
SI MPL E EN GI N EERI NG 2 00 4 - 2 01 1
SE- L MA_ WP2 01 0 10 13 0 3 - 4 /15
simpleSOAD® 2.0
Retro-modellazione concettuale di basi di dati relazionali
Ogni package definisce un insieme di elementi del meta-modello il cui scopo è di
rappresentare un certo aspetto della conoscenza dei sistemi patrimoniali.
Nel livello Infrastructure layer, Core e kdm contengono gli elementi comuni del metamodello e costituiscono l’infrastruttura per gli altri package. Source definisce gli elementi per
costruire l'inventario dei sorgenti dei sistemi software esistenti e specifica il meccanismo dei
collegamenti di tracciabilità tra gli elementi KDM e la loro originale rappresentazione nel
codice sorgente.
Nel livello Program Elements layer, Code contiene i costrutti necessari a rappresentare
elementi del codice eseguibile e le loro associazioni, mentre Action si focalizza sulla
descrizione del comportamento e sulle relazioni tra il flusso di controllo e il flusso dei dati.
Nel livello Resource layer, Platform definisce i costrutti che permettono di rappresentare
l’ambiente operativo di runtime del sistema patrimoniale, mentre UI fornisce i tratti per
rappresentare le interfacce utente. Event descrive gli elementi del meta-modello (stati,
transizioni ed eventi) necessari a rappresentare aspetti comportamentali delle applicazioni.
Data fornisce i costrutti in grado di rappresentare organizzazioni di dati anche molto
complesse, come ad esempio file di record, database relazionali, flussi di dati strutturati,
schemi XML e documenti.
Infine, nel livello Abstractions layer, Structure fornisce i costrutti per definire gli elementi
architetturali (sottosistemi, package, ecc.) delle applicazioni patrimoniali; Conceptual
definisce invece i costrutti del modello concettuale del dominio business; Build definisce gli
elementi capaci di catturare l'aspetto della configurazione e dell'istallazione delle applicazioni.
La presentazione esaustiva di KDM è fuori della portata di questo documento. Per i
bisogni dell'attività di Database Reverse Engineering sono necessari i soli package Data
(Resource layer) e Conceptual (Abstractions layer).
Il package Data offre gli elementi necessari a modellare un database relazionale fisico.
Nello specifico: (i) la classe Catalog consente di rappresentare una base di dati relazionale (il
contenitore padre di tutti gli schemi relazionali di un particolare dominio); (ii) la classe
RelationalSchema permette di modellare ogni singolo schema contenuto nel database di
riferimento; (iii) la classe DataEvent permette di rappresentare i diversi eventi che possono
verificarsi all’interno di un database e che possono far scatenare l’esecuzione di stored
procedure (conosciuta anche con il nome di trigger). In particolare, un trigger è
rappresentato da un elemento CallableUnit contenuto da uno specifico RelationalSchema (il
container); il CallableUnit a sua volta è associato all’evento che lo scatena (rappresentato da
un DataEvent) attraverso una relazione di Calls.
Per quanto riguarda le tabelle e le viste presenti in un particolare schema, queste sono
rappresentate rispettivamente dalle classi RelationalTable e RelationalView, mentre le
corrispondenti colonne (riferite anche con il nome di field) sono modellate dalla classe
ItemUnit associandogli gli opportuni tipi rappresentati dalle classi Datatype. Le chiavi
primarie di una tabella (o vista) sono rappresentate dalla classe UniqueKey che costituisce un
gruppo di uno o più ItemUnit (colonne), mentre le chiavi esterne sono rappresentate dalla
classe ReferenceKey anch’essa costituente un gruppo di uno o più ItemUnit: la relazione tra
la chiave esterna e la chiave primaria è rappresentata dalla classe KeyRelationship. Infine, la
classe Index è utilizzata per rappresentare eventuali indici all’interno di una tabella. Per i
vincoli d’integrità intra-relazionale (vincoli di tuple e/o vincoli di dominio) è utilizzato il
linguaggio standard UML Object Constraint Language [OCL].
SI MPL E EN GI N EERI NG 2 00 4 - 2 01 1
SE- L MA_ WP2 01 0 10 13 0 3 - 5 /15
simpleSOAD® 2.0
Retro-modellazione concettuale di basi di dati relazionali
Il package Conceptual fornisce gli elementi di tracciatura del mapping fra il modello KDM
e il modello SBVR (Semantics of Business Vocabulary and Business Rules [SBVR]). In
particolare, fornisce le classi TermUnit per referenziare i concetti e nomi SBVR, FactUnit per
referenziare i tipi di fatti SBVR e RuleUnit per referenziare le regole strutturali e operative
SBVR (vedi Figura 2 ripresa dalle specifiche KDM).
Figura 2. SVBR e KDM.
L'interesse di un tale mapping è la tracciabilità del corpo concettuale e delle regole
business al modello della base di dati patrimoniale costruito a partire dal package Data.
SBVR
Abbiamo visto che KDM (package Conceptual) utilizza, per la rappresentazione del livello
concettuale, SBVR, che emerge come lo standard federatore per la rappresentazione dei
modelli concettuali, dei vocabolari e delle regole business strutturali e operative. SBVR
permette di esprimere i concetti, i termini, le relazioni tra i concetti e le regole di un dominio
business in un formato che, se da un lato è molto vicino al linguaggio naturale - si tratta di
linguaggio naturale semplificato e standardizzato - dall'altro è perfettamente rigoroso (ha la
potenza espressiva della logica del primo ordine estesa).
SBVR risolve brillantemente il dilemma tra grado di leggibilità del modello da parte degli
esperti di dominio e livello di formalizzazione e disambiguazione dello stesso, all'intenzione
degli architetti e i progettisti. A partire da SBVR, notazione propria al Business Model,
esistono approcci di trasformazione meccanica verso il Platform Independent Model e il
Platform Specific Model (vedi Figura 3 ripresa dalle specifiche SBVR).
SI MPL E EN GI N EERI NG 2 00 4 - 2 01 1
SE- L MA_ WP2 01 0 10 13 0 3 - 6 /15
simpleSOAD® 2.0
Retro-modellazione concettuale di basi di dati relazionali
Figura 3. Posizione di SBVR in MDA.
Le capacità espressive di SBVR possono essere riassunte nei seguenti punti:








Categorizzazione gerarchica e multidimensionale dei concetti, con tassonomie
e schemi di categorizzazione.
Definizione di sinonimi, abbreviazioni, rinvii, dizionari multilingue per un solo
insieme di significati.
Specifica formale e non ambigua di definizioni intensionali ed estensionali dei
concetti.
Definizione delle connessioni tra i concetti, e cioè la struttura semantica di un
universo del discorso in un dominio business.
Formulazione di regole business strutturali e operative sulla base della
struttura del corpo concettuale.
Proposizione di modelli di documento per facilitare la leggibilità e la
trasmissione del corpo concettuale e delle regole.
Specifiche di base per strumenti di visualizzazione e navigazione all'interno dei
corpi concettuali e terminologici e delle collezioni di regole su base semantica
(per i fornitori di strumenti di supporto alla modellazione SBVR).
Gestione delle nozioni di appartenenza e di condivisione dei corpi concettuali e
delle collezioni di regole - integrazione di corpi concettuali creati
separatamente - integrazione di dizionari non SBVR (minimizzazione del
numero di definizioni from scratch).
SBVR propone due stili complementari di rappresentazione:


La rappresentazione testuale, di tipo lemma enciclopedico che, per ogni
concetto fornisce elementi sotto forma di didascalie come: Definizione,
Sorgente, Dizionario, Concetto generale, Tipo di concetto, Necessità,
Possibilità, Schema di riferimento, Nota, Esempio, Sinonimo, Vedi, Tema ecc..
La rappresentazione diagrammatica (BOM - Business Object Model), che si
appoggia sulle strutture UML [UML] per la rappresentazione dei concetti e dei
SI MPL E EN GI N EERI NG 2 00 4 - 2 01 1
SE- L MA_ WP2 01 0 10 13 0 3 - 7 /15
simpleSOAD® 2.0
Retro-modellazione concettuale di basi di dati relazionali
tipi di fatti utilizzando convenzioni la cui comprensione è intuitiva (un esempio
è fornito nel diagramma della Figura 4).
class Circolarità Anagrafica
+comune
nascita
+data
dece sso
data
+data
nascita
comune
+comune
resid enza
sesso
+nome
cittadino
Meaning and
Repre senta tion
+cognome Vocabulary::text +codice
com une
Cittadini per sesso: sesso
m
f
Figura 4. Esempio di BOM/SBVR.
SI MPL E EN GI N EERI NG 2 00 4 - 2 01 1
SE- L MA_ WP2 01 0 10 13 0 3 - 8 /15
simpleSOAD® 2.0
Retro-modellazione concettuale di basi di dati relazionali
PROCESSI, METODI E PRATICHE PER IL DATABASE REVE RSE
ENGINEERING
Contenuto del
DB
Schema
Fisico
Viste Utente
in DDL
Viste Utente
in Linguaggio
Host
Estrazione
Strutture Dati
Schema
Globale in DDL
Modello KDM
Frammenti di
Codice in
Linguaggio Host
Concettualizzazione
Strutture Dati
Modello SBVR
Figura 5. Processo di Database Reverse Engineering.
In termini grossolani, il problema di reverse engineering (RE) per una base di dati può
essere formulato come segue: date delle espressioni nel linguaggio DDL/Host di strutture
dati esistenti (schemi globali e/o viste) e dati i requisiti operativi conosciuti (come ad
esempio: DBMS utilizzato, requisiti di prestazione, ecc.) trovare un possibile schema
concettuale di cui queste strutture dati costituiscono una rappresentazione.
Il processo di Database Reverse Engineering proposto è illustrato nel diagramma della
Figura 5.
Il processo proposto organizza i due task essenziali della retro-modellazione concettuale
di basi di dati patrimoniali, e cioè: (i) Recupero di strutture dati esistenti dalle espressioni in
linguaggio DDL/Host (il processo inverso della progettazione fisica, denominato anche
Estrazione delle Strutture Dati); (ii) Costruzione di un possibile schema concettuale che ne
definisce la semantica (processo inverso della progettazione, denominato anche
Concettualizzazione delle Strutture Dati).
ESTRAZIONE DELLE STRUTTURE DATI
Questa fase produce una descrizione completa delle strutture dati in accordo allo schema
relazionale fisico della base di dati sotto studio. Il risultato finale di tale processo è un
SI MPL E EN GI N EERI NG 2 00 4 - 2 01 1
SE- L MA_ WP2 01 0 10 13 0 3 - 9 /15
simpleSOAD® 2.0
Retro-modellazione concettuale di basi di dati relazionali
modello KDM dello schema globale della base dati. In sintesi, il processo si compone di due
sottofasi eseguite in iterazione (nei casi "difficili" in almeno due cicli):

Individuazione e formalizzazione delle strutture - con l'aiuto dell'esperto, sono
individuate e in seguito formalizzate negli elementi del package Data le
strutture dati esplicite e implicite (nascoste) che sono sotto il controllo del
DBMS. Le sorgenti di tale attività di analisi sono lo schema fisico, le viste
utente, lo schema in DDL, e il contenuto stesso del data base.

Individuazione e formalizzazione dei vincoli - sempre con l'aiuto e sotto la
sorveglianza dell'esperto, individuazione e formalizzazione dei vincoli
d'integrità sulle strutture modellate nel passo precedente; il modello KDM
elaborato/prodotto nella fase precedente è arricchito di annotazioni contenenti
espressioni nel linguaggio OCL [OCL]; le sorgenti di tale attività sono i
frammenti di codice in DDL e in linguaggio Host, sia per i vincoli e i trigger
(stored procedures), sia per le viste utente.
Il processo comporta un'analisi approfondita della struttura fisica del database
(espressioni DDL) e del codice sorgente delle applicazioni che interagiscono con la base
stessa, presupponendo perciò una forte interazione con il conoscitore della base di dati fisica
e l’esperto della programmazione (nel linguaggio utilizzato - per esempio COBOL). Il modello
KDM finale è così ottenuto per costruzione, in maniera incrementale e iterativa, dall’analisi
degli elementi (tabelle, indici, vincoli intra-relazionali, inter-relazionali, ecc.) presenti nel
DBMS all'analisi degli statement SQL presenti nel codice sorgente.
A causa della grande complessità della struttura fisica di basi di dati che hanno più di un
decennio di vita (constatata sperimentalmente), causata dagli interventi continui e ripetuti di
manutenzione e di ottimizzazione, le due sotto-fasi presentate sono spesso compiute in
almeno due cicli: nella prima iterazione la seconda sotto-fase (Individuazione e
formalizzazione dei vincoli) rende spesso evidenti le carenze e le imperfezioni del risultato
della prima (Individuazione e formalizzazione delle strutture). Una seconda iterazione sulle
strutture è quindi necessaria per consolidare il modello "statico" e in seguito per finalizzare i
vincoli. E' consigliabile organizzare alla fine della prima iterazione una review indipendente di
progetto.
CONCETTUALIZZAZIONE DELLE STRUTTURE DATI
L'obiettivo di questa fase è di determinare la semantica dello schema logico del database
partendo dal modello KDM (con annotazioni OCL) ottenuto nella fase di estrazione delle
strutture dati. Il risultato di tale processo è un modello SBVR che rappresenta i concetti e i
tipi di fatti del dominio sotto studio e le regole business strutturali (vincoli). Le regole
operative (consegne per l'azione), che si appoggiano sui dati contenuti nella base e quindi
sui concetti retro-modellati, non sono generalmente formalizzate nell'attività di retromodellazione della base dati, ma piuttosto all'occasione dell'analisi e modellazione dei
processi business in essere, attività la cui descrizione esula dal contenuto di questo
documento.
Anche questa fase è eseguita in due sotto-fasi:

Costruzione del corpo concettuale - Il processo di concettualizzazione si
articola in tre attività: (i) De-ottimizzazione dello Schema, (ii) Indipendenza
dal DBMS e (iii) Normalizzazione Concettuale. Nella fase di De-ottimizzazione
SI MPL E EN GI N EERI NG 2 00 4 - 2 01 1
SE- L MA_ WP2 01 0 10 13 0 3 - 10 /1 5
simpleSOAD® 2.0
Retro-modellazione concettuale di basi di dati relazionali
dello Schema sono evidenziati ed eliminati dal modello KDM i costrutti non
semantici, in particolare le strutture di ottimizzazione (ad esempio gli indici).
Nella fase di Indipendenza dal DBMS invece si evidenziano i costrutti
idiosincratici del DBMS utilizzato, che sono sostituiti da costrutti equivalenti,
indipendenti dal DBMS utilizzato. Infine nella fase di Normalizzazione
Concettuale è ricostruita la struttura concettuale di alto livello del dominio di
riferimento, che generalmente si è persa sia durante la fase originaria di
progettazione del database, sia soprattutto a causa delle azioni di
manutenzione e ottimizzazione successive. In particolare in tale fase sono
applicate tecniche di trasformazione di schemi, eliminazione delle ridondanze
(de-normalizzazione) e integrazione di schemi attraverso l’applicazione di
operatori concettuali di Fusione, Decomposizione, Generalizzazione e
Specializzazione. Il modello SBVR finale prodotto è così ottenuto in maniera
incrementale e iterativa attraverso una trasformazione di modelli; ogni
trasformazione è effettuata ponendo la massima attenzione alla conservazione
dell’equivalenza semantica tra il modello di partenza e quello di arrivo, con il
risultato che il modello finale SBVR così ottenuto risulta semanticamente
rappresentativo del modello KDM. Questa sotto-fase è eseguita dall'analista
con l'aiuto all'esperto, a cui il modello è ovviamente sottoposto per review e
validazione.

Formalizzazione delle regole business - In questa fase, le regole (vincoli,
condizioni...) espresse in OCL sono trasformate in regole SBVR sulla base del
corpo concettuale prodotto nella prima fase e del mapping tra tale corpo e il
modello KDM. Si tratta anche qui di reverse modeling, del processo inverso
rispetto alla progettazione che consiste nel tradurre le regole SBVR in
espressioni OCL. Le regole SBVR ottenute sono ovviamente sottoposte
all'esperto, ma non per validazione nel senso della progettazione: il problema
da risolvere in questa fase non è se le regole sono corrette dal punto di vista
del business, ma se traducono fedelmente a livello business ciò che è
effettivamente implementato. Se la prima fase (Estrazione delle strutture dati)
e la sotto-fase di cui al punto precedente hanno fornito risultati corretti, la
trasformazione dei vincoli OCL in regole SBVR è quasi-meccanizzabile [Cabot
et al. 2010]. Se la conclusione del processo è che le regole implementate non
sono corrette dal punto di vista business, questo conferma a posteriori la
necessità del processo di DRE.
Anche questa sequenza è spesso eseguita in due cicli in cui il corpo concettuale e la
collezione di regole business sono prima prodotti in versione provvisoria e in seguito in
versione finale. Review indipendenti di progetto sono necessarie nei momenti chiave della
fase e del processo nella sua interezza.
STRUMENTI PER IL DAT ABASE REVERSE ENGINE ERING
L'attività di Database Reverse Engineering è un'attività di modellazione. Lo strumento
principale di tale attività è un UML Modeler, di preferenza allineato alla versione 2.3 di UML
(la versione 2 comporta modifiche sostanziali del meta-modello UML della versione 1). Un
UML Modeler standard (IBM Rational Software Architect, Sparx Enterprise Architect, ...)
copre l'80% dei bisogni di modellazione (ADM/KDM, SBVR BOM). In virtù dell'approccio
nativo UML, l'interoperabilità dei modelli rispetto ai Modeler è garantita (grazie a XMI,
formato standard interoperabile d'import/export di modelli prodotti da Modeler differenti). In
SI MPL E EN GI N EERI NG 2 00 4 - 2 01 1
SE- L MA_ WP2 01 0 10 13 0 3 - 11 /1 5
simpleSOAD® 2.0
Retro-modellazione concettuale di basi di dati relazionali
data odierna, SBVR non è ancora dotato di strumenti specifici per costruire e manipolare
corpi concettuali e collezioni di regole business, presenti come prodotti standard disponibili
sul mercato. Un requisito importante per tali strumenti è la facilità d'integrazione con un UML
Modeler. Da segnalare comunque lo sviluppo di un plug-in KDM per Eclipse [KDMAnalytics].
Un'altra pista di estremo interesse riguarda i tool che facilitano l'estrazione automatica
d'informazioni dal sistema patrimoniale. Tali strumenti sono necessariamente basati su
sistemi multi-agenti dotati di un livello d'"intelligenza", che percorrono il sistema patrimoniale
(eventualmente distribuito) per estrarne le informazioni riguardanti gli strati bassi del
modello. In data odierna, tale approccio non ha ancora prodotto strumenti disponibili sul
mercato.
CONCLUSIONE
Abbiamo presentato in questo documento l'approccio di simple engineering per la
retro-modellazione concettuale di basi di dati patrimoniali. Gli aspetti salienti di tale approccio
possono essere riassunti nei punti seguenti:







Approccio Model Driven Engineering, per modellazione e trasformazione di
modelli.
Approccio ADM/KDM, di modernizzazione delle applicazioni.
Distinzione tra il modello fisico della base di dati patrimoniale e il retromodello concettuale del dominio business rappresentato.
Adozione di meta-modelli standard (OMG), sia per il modello fisico (KDM) sia
per il modello concettuale (SBVR).
Distinzione tra i modelli e i processi, metodi e pratiche per costruirli - il
modello è comprensibile anche da parte di chi non ha partecipato e non ha le
competenze e l'esperienza per partecipare alla sua costruzione.
Metodo di costruzione dei modelli sistematico, sostenibile e rapido, grazie
anche alla scelta degli standard - facilità di modellazione in UML da parte
dell'architetto, facilità di lettura e comprensione del corpo SBVR da parte
dell'esperto business.
Strumenti di supporto largamente disponibili (UML Modeler) e interoperabili,
che non inducono il lock-in proprietario sui modelli prodotti.
In una situazione in cui l'organizzazione che gestisce una base di dati patrimoniale ha
perduto la padronanza del modello concettuale, la retro-modellazione concettuale appare
come un task ineludibile per affrontare progetti di architetture di servizi (SOA). Uno dei punti
di forza della service orientation è che la distinzione tra sistema e servizio (contratto)
consente di integrare nelle architetture di servizi i sistemi patrimoniali, tra cui le basi di dati
strategiche dell'organizzazione, attraverso la realizzazione di wrapper che implementano il
passaggio dall'interfaccia alla funzione. Gran parte del codice dei wrapper è generato
automaticamente attraverso framework disponibili e largamente diffusi come Axis2 [Axis2],
che fornisce lo skeleton da riempire con invocazioni alle funzioni del sistema patrimoniale nel caso qui trattato, alle funzioni di lettura e aggiornamento della base di dati.
SI MPL E EN GI N EERI NG 2 00 4 - 2 01 1
SE- L MA_ WP2 01 0 10 13 0 3 - 12 /1 5
simpleSOAD® 2.0
Retro-modellazione concettuale di basi di dati relazionali
Il problema tecnico dell'interoperabilità è spesso di facile soluzione: resta il problema più
complesso della collaborazione applicativa (di cui l'interoperabilità è condizione necessaria
ma non sufficiente) tra il sistema patrimoniale e altri sistemi e utenti, utilizzatori potenziali
dei servizi offerti dalla base. Questa collaborazione può rivelarsi difficile, in una situazione in
cui l'organizzazione non conosce il corpo concettuale di cui la base è una rappresentazione:
la definizione stessa di contratti di servizio sostenibili appare problematica.
Una volta ricostruito il corpo concettuale, si aprono più possibilità:


Ristrutturazione della base: a partire dal retro-modello concettuale, definire un
nuovo modello logico e fisico. simpleSOAD® 2.0, il framework metodologico
di simple engineering, propone una procedura, basata su risultati
conosciuti, per passare da un corpo concettuale sostenibile SBVR, e cioè un
corpo concettuale che possiede certe caratteristiche che facilitano la
trasformazione, ad uno schema di base relazionale in quinta forma normale
per trasformazione meccanica diretta [simpleSOAD]. La tracciabilità del
processo di retro-modellazione concettuale e della trasformazione verso lo
schema in quinta forma normale permette di gestire facilmente la migrazione
dei dati dalla base patrimoniale alla base ristrutturata. La base ristrutturata,
essendo una rappresentazione diretta della persistenza dei fatti espressi in
coerenza con il modello concettuale, facilita la definizione e l'implementazione
di servizi a valore aggiunto. La controindicazione alla ristrutturazione della
base è nella quantità (e qualità !) del codice applicativo patrimoniale preesistente da modificare per permettergli di accedere alla base ristrutturata.
Definizione di servizi (contratti) a partire dal corpo concettuale retro-modellato
e implementazione degli adapter necessari. La controindicazione di questa
seconda scelta, che preserva il codice patrimoniale di accesso alla base, è
nell'eventuale complessità degli adapter.
Le due possibilità vanno valutate caso per caso, sapendo che la seconda è comunque
provvisoria, e che alla fine esigenze di affidabilità funzionale e di manutenibilità imporranno
la ristrutturazione della base.
Il gruppo simple engineering offre, nell'ambito della sua attività di Studio, prestazioni
standard di retro-modellazione concettuale di basi di dati patrimoniali. I modelli SBVR
prodotti possono essere multi-lingua (inglese e francese oltre che italiano). Dopo una breve
valutazione preliminare, simple engineering offre una prestazione forfettaria che ha come
risultati:

il modello KDM (fisico),

il modello SBVR (concettuale),
della base di dati patrimoniale. A questa prestazione di primo livello può aggiungersi la
prestazione di ristrutturazione della base che ha come risultato:


il modello concettuale SBVR sostenibile (per predisporlo alla trasformazione in
modello UML),
il modello UML (ottenuto per trasformazione meccanica dal modello SBVR),
SI MPL E EN GI N EERI NG 2 00 4 - 2 01 1
SE- L MA_ WP2 01 0 10 13 0 3 - 13 /1 5
simpleSOAD® 2.0


Retro-modellazione concettuale di basi di dati relazionali
il modello relazionale in quinta forma normale (ottenuto per trasformazione
meccanica del modello UML),
la procedura di migrazione dalla base patrimoniale alla base ristrutturata.
Anche questa seconda prestazione può essere valutata su base forfettaria. A corredo, lo
Studio simple engineering offre naturalmente tutta la gamma delle sue prestazioni
standard.
La retro-modellazione concettuale delle basi di dati patrimoniali è anche oggetto di
attività di formazione e coaching da parte della Scuola simple engineering, nell'ambito di
un progetto o come pura attività didattica, e di prestazioni di veglia tecnologica e di
benchmarking di tool da parte del Lab simple engineering.
RIFERIMENTI
[ADM] Architecture-Driven Modernization - http://adm.omg.org/
[ADM/KDM] Architecture-Driven Modernization (ADM): Knowledge Discovery Meta-Model
(KDM), OMG; Version 1.1, Document Number: formal/2009-01-02; Standard document
URL: http://www.omg.org/spec/KDM/1.1
[Axis2] Apache Axis2/Java, http://ws.apache.org/axis2/
[Batini et al. 1983] Batini, C., Lenzerini, M., Moscarini, M., View integration, in Methodology
and tools for data base design, Ceri, S., (Ed.)North-Holland, 1983.
[Batini et al. 1992] Batini, C., Ceri, S., Navathe, S., B., Conceptual Database Design,
Benjamin/Cummings, 1992.
[Cabot et al. 2010] Cabot, J., Pau, R., Raventos, R., From UML/OCL to SBVR specifications: A
challenging transformation, Information Systems, Volume 35, Issue 4, June 2010.
[Joris et al. 1992] Joris, M., Van Hoe, R., Hainaut, J-L., Chandelon M., Tonneau C., Bodart F.
et al., PHENIX : methods and tools for database reverse engineering, in Proc. 5th Int.
Conf. on Software Engineering and Applications, Toulouse, 7-11 December, 1992.
[Hainaut 1991] Hainaut, J-L, Database Reverse Engineering, Models, Techniques and
Strategies, in Preproc. of the 10th Conf. on Entity-Relationship Approach, San Mateo
(CA), 1991.
[Hainaut et al. 1993] Hainaut, J-L., Chandelon M., Tonneau C., Joris M., Contribution to a
Theory of Database Reverse Engineering, in Proc. of the IEEE Working Conf. on Reverse
Engineering, Baltimore, May 1993
[KDMAnalytics] http://kdmanalytics.com/kdmsdk/download.php
[OCL] Object Constraint Language
http://www.omg.org/spec/OCL/2.2
SI MPL E EN GI N EERI NG 2 00 4 - 2 01 1
-
Version
2.2
-
formal/2010-02-01
-
SE- L MA_ WP2 01 0 10 13 0 3 - 14 /1 5
simpleSOAD® 2.0
Retro-modellazione concettuale di basi di dati relazionali
[SBVR] Semantics of Business Vocabulary and Business Rules (SBVR), v1.0 - OMG Available
Specification - OMG Document Number: formal/2008-01-02 - Standard document URL:
http://www.omg.org/spec/SBVR/1.0/PDF
[simpleSOAD] simple engineering - simpleSOAD® 2.0 Reference Manual - R2010070101
[UML] - Unified Modeling Language: Superstructure - version 2.3 - formal/2010-05-05 http://www.omg.org/spec/UML/2.3/Superstructure
SI MPL E EN GI N EERI NG 2 00 4 - 2 01 1
SE- L MA_ WP2 01 0 10 13 0 3 - 15 /1 5
Scarica

Relazione elegante