# 204
data
46
programmez! - février 2017
le diagramme de classes UML. En disposant convenablement les éléments
obtenus, nous parvenons au résultat illustré en Figure 6.
Vous remarquerez la richesse du modèle qui permet de faciliter la lectu-
re de la structure de données ! Nous pouvons facilement lire que l’entité
« Fourniture » est une spécialisation de « Article », ce qui explique les car-
dinalités maximales à 1 que nous voyions aux extrémités de la relation
située entre les 2 tables correspondantes sur le modèle logique en Figure 4.
Nous remarquons également que « Offre » est une entité associative uti-
lisant la représentation de la classe associative UML. Les stéréotypes
« UID-1 » indiquent des identifiants uniques, alors que « M » pour
« Mandatory » signale un attribut obligatoire.
Illustration avec Oracle Data Modeler
Environnement de développement mis à disposition gratuitement par
Oracle, SQL Developer offre une fonctionnalité appelée Data Modeler
qui permet de générer une base de données à partir de modèles, ainsi
que de réaliser de l’ingénierie inverse. Cet outil, contrairement à Visual
Paradigm, est adapté avant tout aux bases de données Oracle, bien qu’il
supporte également SQL Server et DB2. Par soucis de simplification,
nous emploierons le terme raccourci « Oracle Data Modeler » dans la
suite de cet article.
Générer le MLD et le MPD
Pour générer les modèles logiques et physiques à partir d’une base de
données avec Oracle Data Modeler, il faut se rendre dans le menu
« Fichier » et sélectionner l’option « Data Modeler » puis « Importer » et
enfin « Dictionnaire de données ». Un assistant nous guide et nous per-
met de choisir les objets à récupérer. Une fois les étapes terminées, les
MLD et MPD sont créés. Seul le MLD est visible sur un diagramme.
Après un réarrangement graphique des tables sur le diagramme, nous
obtenons ce que vous pouvez visualiser en Figure 7.
La représentation graphique utilisée ici diffère de celle utilisée par Visual
Paradigm. Les relations sont affichées à l’aide de flèches, l’extrémité de la
flèche indiquant une cardinalité maximale à 1. Par défaut, les contraintes
de clé primaire, de clé étrangère, d’unicité ainsi que les index sont affi-
chés. Ces éléments peuvent être masqués, ce que nous avons effectué ici
pour les index de façon à alléger quelque peu le diagramme.
Générer le MCD
Oracle Data Modeler prend en charge la notion de modèle conceptuel,
aussi bien pour générer un modèle logique que pour effectuer une ingé-
nierie inverse ! L’ingénierie inverse du MLD en MCD se réalise à l’aide
d’une icône accessible lorsque le modèle logique est ouvert. Oracle Data
Modeler nous permet, à l’aide d’un glossaire, de définir des termes avec
leur orthographe au singulier et au pluriel, ce qui lui permet d’utiliser des
noms singuliers pour créer les entités, en se basant sur les noms des tables
au pluriel. La Figure 8 vous présente le résultat obtenu. La notation utilisée
vient de Barker. La lecture des cardinalités est particulière. En effet, la cardi-
nalité minimale se lit du côté de l’entité, alors que la cardinalité maximale
se lit du côté opposé de l’entité. Le modèle conceptuel obtenu avec Oracle
Data Modeler est épuré de tout élément technique. Ici également, il nous
semble évident que la lecture du MCD est plus facile que celle du MLD !
Notons cependant que la représentation Oracle Data Modeler est moins
riche que celle du diagramme de classe UML. Par exemple, le sens de
l’entité « Fourniture » n’est pas compréhensible de manière aussi évidente
que sur le diagramme UML de la Figure 6, où le lien de spécialisation
montre clairement que la fourniture est une sorte d’article.
CONCLUSION
Vous connaissez maintenant le concept de l’ingénierie inverse à partir
d’une base de données et comprenez les différents usages qui peuvent
en être faits. Avec les illustrations réalisées au travers de deux outils diffé-
rents, vous avez pu remarquer qu’il existe des différences, notamment
en matière de notation graphique, mais vous avez aussi vu que le
concept général reste le même. Au vu du peu d’investissement que le
processus d’ingénierie inverse nécessite et du gain qu’il apporte, nous ne
pouvons que vous conseiller de l’utiliser dans votre environnement, au-
tant pour créer ou mettre à jour des modèles servant de documentation,
que pour faire évoluer une base de données par réingénierie !
•
Références
Projet MVC-CD et téléchargement de l’automate de transformation :
http://lgl.isnetne.ch/Sagex35793/index.htm
Droz-dit-Busset Michaël que nous remercions, Travail de Bachelor
« MVC-CD – Ingénierie inverse », juillet 2015
6
MCD obtenu par reverse engineering avec MVC-CD
7
8
MLD obtenu par reverse engineering
avec Oracle Data Modeler
MCD obtenu par reverse engineering
avec Oracle Data Modeler
045_046_204 24/01/17 21:58 Page46