L`approche Model-Driven Architecture, crédible pour développer un

Transcription

L`approche Model-Driven Architecture, crédible pour développer un
ÉCOLE DOCTORALE SYSTÈMES
L’approche Model-Driven
Architecture, crédible pour
développer un progiciel de
gestion intégré
Mémoire de DEA – Systèmes Industriels
Tuteur : Paul Gaborit
Xavier Moghrabi
— Année universitaire : 2002-2003 —
Remerciements
Je tiens à exprimer mes plus vifs remerciements à mon tuteur Franck Darras, doctorant à l’École des Mines d’Albi–Carmaux, pour m’avoir aidé à réaliser mon DEA. Il m’a
permis de trouver un sujet intéressant et m’a fourni une partie des documents pour la
bibliographie.
Je remercie Paul Gaborit et Hervé Pingaud, enseignant-chercheurs au centre génie
industriel de l’École des Mines d’Albi–Carmaux, pour leurs conseils, le suivi de mon travail
et les remarques formulées sur ce document.
Je tenais à remercier Thomas Van Oudenhove de Saint Géry, camarade de classe
à l’École des Mines en option Génie des Systèmes d’Information et futur doctorant dans
cette école. Il m’a fournit son modèle de document et son aide pour rédiger ce mémoire de
DEA sous LATEX.
Pour finir, je souhaite remercier la structure d’accueil de mon stage qui m’a donné
l’opportunité et libéré du temps pour la réalisation de ce travail. Pour des raisons de confidentialité, j’ai préféré ne pas citer son nom mais les intéressés se reconnaı̂tront.
Xavier Moghrabi
— Année universitaire : 2002-2003 —
i
Résumé
Les systèmes d’information sont de plus en plus complexes. Avec la multitude des technologies, les décideurs ne savent plus laquelle adoptée. Le Model-Driven Architecture est
issu d’un constat que chaque nouvelle évolution technologique entraı̂ne un coût significatif.
Proposée par l’OMG, cette approche permet de pérenniser les systèmes d’information en
séparant les modèles métiers de ceux d’implémentation. Des mécanismes de transformations sont prévus pour automatiser le passage et la construction. Cette approche, de plus
haut niveau d’abstraction, réduira les coûts de développement, facilitera les migrations
technologiques, améliorera l’interopérabilité entre les systèmes. . .
Le MDA est conçu pour des systèmes à base de composants fonctionnant sur un middleware. L’étude envisage la possibilité de l’appliquer pour réaliser un progiciel de gestion
d’entreprise. Les problèmes de réalisation et d’exploitation sont les mêmes que ceux énumérés précédemment. Le MDA est adapté car il dispose de méta-modèles verticaux adaptés
à chaque domaine. De plus, des méthodes de développement permettent d’intégrer cette
démarche. Des applications expérimentales ont déjà été développées en utilisant le MDA
et des outils “compatibles MDA“ apparaissent.
Pour prouver l’efficacité du MDA en terme de productivité lors du développement,
une société a réalisé une étude. Elle consistait à mettre en concurrence deux équipes de
développement. Il s’est avéré que l’équipe utilisant MDA a mis 34 % de temps en moins.
Cette norme pourra devenir un nouveau standard. Elle propose de nombreux atouts mais
comporte encore des lacunes. Toutefois, le MDA n’est pas encore finalisé. Les transformations de modèles et les générations de code ne sont pas encore entièrement automatisées.
Xavier Moghrabi
— Année universitaire : 2002-2003 —
ii
Table des matières
Remerciements
i
Résumé
ii
Table des matières
iv
Introduction
1
1 Une nouvelle approche dans la conception logicielle
1.1 Sujet de l’étude . . . . . . . . . . . . . . . . . . . . . . . .
1.1.1 La problèmatique des ERP . . . . . . . . . . . . .
1.1.2 Un ERP à base de composants . . . . . . . . . . .
1.2 Présentation du MDA . . . . . . . . . . . . . . . . . . . .
1.2.1 Séparation entre la logique métier et la technologie
1.2.2 L’abandon de la concurrence des middleware . . .
1.2.3 Une montée en abstraction . . . . . . . . . . . . .
1.2.4 Détail de l’architecture du MDA . . . . . . . . . .
1.3 L’importance des modèles . . . . . . . . . . . . . . . . . .
1.3.1 Les différents modèles du MDA . . . . . . . . . . .
1.3.2 La transformation des modèles . . . . . . . . . . .
1.3.3 Les profils UML . . . . . . . . . . . . . . . . . . .
1.4 Qu’attendre de l’approche MDA ? . . . . . . . . . . . . . .
1.4.1 Les forces . . . . . . . . . . . . . . . . . . . . . . .
1.4.2 les faiblesses . . . . . . . . . . . . . . . . . . . . .
1.5 Les standards de l’OMG utilisés . . . . . . . . . . . . . . .
1.5.1 MOF : Meta Object Facility . . . . . . . . . . . . .
1.5.2 UML : Unified Modeling Language . . . . . . . . .
1.5.3 CWM : Common Warehouse Metamodel . . . . . .
1.5.4 XMI : XML Metadata Interchange . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2
2
2
3
6
6
6
7
8
10
10
11
12
13
13
15
16
16
16
17
17
2 L’utilisation du MDA
2.1 L’approche MDA est-elle adaptée à la réalisation d’un ERP . . . . . . . .
2.1.1 Le MDA peut s’appliquer à l’ensemble de l’industrie logicielle . . .
2.1.2 Le MDA demande des moyens adaptés . . . . . . . . . . . . . . . .
2.1.3 Le MDA répond aux besoins de création et d’intégration des ERP
2.2 La méthode de développement . . . . . . . . . . . . . . . . . . . . . . . .
2.2.1 La MDA face aux méthodes agiles . . . . . . . . . . . . . . . . . .
2.2.2 La révision du cycle en Y . . . . . . . . . . . . . . . . . . . . . . .
2.2.3 Une nouvelle implémentation du processus unifié : EUP . . . . . .
.
.
.
.
.
.
.
.
18
18
18
20
22
23
23
24
26
Xavier Moghrabi
— Année universitaire : 2002-2003 —
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
iii
2.3
Détail
2.3.1
2.3.2
2.3.3
2.3.4
d’un système d’information utilisant la philosophie du MDA
Le système d’information de la banque Wells Fargo . . . . .
L’environnement des traitements . . . . . . . . . . . . . . .
Le développement à base de modèles . . . . . . . . . . . . .
Le MDA fournit une passerelle pour le futur . . . . . . . . .
.
.
.
.
.
27
27
28
29
31
3 Les perspectives de cette approche logicielle
3.1 Étude de productivité de la démarche MDA . . . . . . . . . . . . . . . . . .
3.1.1 Les différences entre les approches MDA et traditionnelle . . . . . .
3.1.2 Description de l’objectif de l’étude . . . . . . . . . . . . . . . . . . .
3.1.3 L’analyse architecturale du système . . . . . . . . . . . . . . . . . .
3.1.4 Les résultats quantitatifs . . . . . . . . . . . . . . . . . . . . . . . .
3.1.5 Conclusion de l’étude de productivité . . . . . . . . . . . . . . . . .
3.2 Vers un nouveau standard de développement logiciel . . . . . . . . . . . . .
3.2.1 L’approche MDA, évolution ou révolution ? . . . . . . . . . . . . . .
3.2.2 Une approche de modélisation d’un ERP où le MDA a sa place . . .
3.2.3 Le MDA présente des atouts pour s’imposer comme un nouveau
standard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32
32
32
33
34
36
36
37
37
38
Conclusion
43
Glossaire
44
Table des figures
46
Bibliographie
47
A Une architecture stratifiée
50
B Évolution hebdomadaire de l’étude
52
C Glossaire des design pattern utilisés
56
Xavier Moghrabi
— Année universitaire : 2002-2003 —
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
41
iv
Introduction
Depuis maintenant quelques années, de nouvelles architectures logicielles à base de
composants émergent régulièrement. Ce qui à l’origine devait permettre une réutilisabilité
extrêmement importante se voit aujourd’hui soumis aux modes et à des évolutions très importantes. Les entreprises ne veulent plus investir des sommes colossales pour suivre cette
incessante remise en cause de leur système d’information existant. Elles veulent pérenniser
leurs architectures.
L’omg a mis à contribution son expérience dans les middleware avec Corba et dans
la modélisation avec notamment uml pour élaborer une norme de méta-modélisation des
architectures à base de composants : le Model-Driven Architecture - mda.
Il définit une nouvelle approche orientée modèle dans laquelle les composants révèlent
une sémantique indépendante de toute plateforme, permettant ainsi de mieux se concentrer sur la logique métier. Le mda définit des abstractions de services et de comportements
communs aux middleware. Sachant que le mda se base sur des standards (uml, xmi,. . .)
ou des travaux déjà très largement adoptés comme références (Profils uml, mof,. . .), la
mise au point d’un méta-modèle spécifié suivant cette norme permettra d’automatiser la
transformation vers des modèles spécifiques à des plate-formes particulières et la génération de code.
La présente étude tente d’appréhender cette nouvelle démarche dans la conception
logicielle pour déterminer si elle est applicable pour réaliser d’un progiciel de gestion intégré, également appelé erp. Pour cela, nous présenterons les principes du mda, examineront
s’il est adapté au développement d’un erp et finirons par évoquer les perspectives du mda.
NB : Les termes en petite majuscule (erp) sont définis dans le glossaire.
Xavier Moghrabi
— Année universitaire : 2002-2003 —
1
Chapitre 1
Une nouvelle approche dans la
conception logicielle
Cette première partie sert à présenter le sujet de l’étude et l’approche mda. L’étude
fera un état de l’art sur cette approche pour présenter le mda.
1.1
Sujet de l’étude
La présente étude s’intéresse au développement d’un erp par une approche mda. Le
développement de ce type de produit est un projet à long terme et conséquent pour une
entreprise d’une centaine d’employés.
1.1.1
La problèmatique des ERP
Le cycle de réalisation d’un erp est un travail, de plusieurs dizaines d’années.hommes,
complexe car doit couvrir l’ensemble des besoins de gestion des PME/PMI. Les technologies
orientées objet seront sollicitées pour réaliser un produit bien conçu, évolutif, adaptable et
maintenable. La recherche de ces caractéristiques est motivée par la longue durée de vie
du progiciel et le souhait de répondre aux besoins de gestion spécifiques des clients. En
effet, un erp a une durée d’exploitation moyenne par le client de 8 ans. L’éditeur souhaite,
quant à lui, pouvoir vendre son produit aussi longtemps possible ce qui nécessite un besoin d’évolutivité de la part du produit. De plus, l’éditeur désire créer une seule version du
progiciel qui pourra être spécialisée pour chaque client par la réalisation de programmes
spécifiques et le paramétrage.
Pour garantir cette évolutivité, le logiciel doit être indépendant des technologies. À
l’heure actuelle, pour réaliser un important projet logiciel avec des technologies orientées
objet, trois plateformes technologiques de type middleware sont majoritairement utilisées : j2ee, .net et Corba. Ces technologies permettent de réaliser des applications
complexes, flexibles et distribuées. Lors de la création d’un produit, l’équipe de développement doit choisir la technologie de l’infrastructure. Ce choix est crucial pour la bonne
finition du projet. Il se résume souvent à adopter une technologie dont la pérennité est
fortement probable. En effet, la migration d’une application vers une nouvelle technologie
est très coûteuse.
L’approche mda a pour but de pallier à ce problème en proposant des modèles indépendants de la plate-forme technique qui permettront de générer rapidement et facilement
Xavier Moghrabi
— Année universitaire : 2002-2003 —
2
L’approche Model-Driven Architecture, crédible pour développer un progiciel de gestion intégré
des modèles spécifiques. Ensuite à partir de ces derniers, le code de l’application serait
créé. La possibilité d’automatiser les opérations de transformation et génération se traduit
par l’apparition d’outils.
1.1.2
Un ERP à base de composants
Comme le concept de “componentisation” [1] est commun à diverses disciplines d’ingénierie et aux industrie, Kumar et al. [2] ont proposé de concevoir un erp à base de
composants pour répondre aux problématiques de variété et de complexité des fonctionnalités. Ce concept peut être utilisé pour concevoir les différents domaines fonctionnels d’un
erp comme des composants logiciels [3].
Définition de composant
Selon la norme uml, un composant est une partie physique remplaçable d’un système
qui fournit la réalisation d’un ensemble d’interfaces et s’y conforme. Dans un développement orienté composant, une application monolithique est découpée en un ensemble de
composants, ce qui favorise sa réutilisation. Il suffit de modifier ou d’ajouter un composant pour introduire une nouvelle fonction dans une application. L’objectif est donc de
réduire le coût du cycle de vie du logiciel. Les composants communiquent au moment de
leur exécution pour concourir à l’application utilisée, sur une même machine ou à travers
un système distribué. Un composant logiciel se représente comme une brique réutilisable
disponible sous forme binaire. Un système à base de composants est un assemblage de
composants qui collaborent dans une architecture commune pour un objectif unique.
Un composant est :
– un ou plusieurs objets (avec ses propriétés, méthodes et évènements) composés d’interfaces,
– un ou plusieurs objets compilés et binaires,
– un ou plusieurs objets qui adhèrent à un modèle,
– utilisable indépendamment du langage, de sa localisation et de l’application l’utilisant,
– géré par le système.
La caractéristique principale de l’approche orientée composant est la collaboration
des composants nommée par le concept d’interopérabilité. L’architecture est alors un réel
assemblage avec des outils de haut niveau sans le souci du détail de l’implémentation.
L’orb est le bus logiciel qui permet aux composants de collaborer sur l’ensemble d’un
réseau. En fait, les composants ne collaborent pas directement en invoquant des méthodes
à distance, ils le font par l’intermédiaire de l’orb. Le modèle de composant apporte un
ensemble d’objets et de méthodes (les transactions, la sécurité, la concurrence d’accès,
l’indépendance à la localisation) sans ajout de code. Ainsi le développeur se concentre sur
la partie métier car les services techniques sont pris en charge par l’infrastructure.
Intérêt d’un progiciel à base de composants
Le concept d’erp à base de composants doit permettre de répondre et d’améliorer les
quatre critères définis par Sprott [1] soient :
– l’intégration,
– l’adaptabilité,
Xavier Moghrabi
— Année universitaire : 2002-2003 —
3
L’approche Model-Driven Architecture, crédible pour développer un progiciel de gestion intégré
– la facilité de mise à jour,
– la facilité de mise en œuvre.
Un système à composants complètent les intérêts des techniques orientées objet classiques. Il les généralise en proposant :
– une encapsulation parfaite des objets, permettant d’accroı̂tre la maintenabilité et
l’indépendance des différents composants ;
– une réutilisation complète des composants, qui permet un accès sans en avoir le code
source et sans avoir à les intégrer dans le processus de compilation et d’édition de
liens.
Mais les possibilité vont encore plus loin sur l’indépendance des composants. Elle est
telle que qu’il est réalisable de :
– mettre à jour un composant dynamiquement, sans remettre en cause l’ensemble du
progiciel. En effet, les composants sont dans des processus séparés. Il est possible de
mettre à jour l’un d’entre eux sans avoir à compiler, diffuser et réinitialiser l’ensemble
du progiciel.
– accroı̂tre les fonctionnalités d’un progiciel dynamiquement, en y ajoutant des composants polymorphiques avec des composants déjà utilisés. Comme le système ne
manipule les objets répartis que par l’intermédiaire de leurs interfaces, tout objet
respectant ces interfaces peut être utilisé indifféremment. L’adjonction de nouveaux
composants respectant ces interfaces peut donc élargir le champ d’action du système.
Elle lui permet de manipuler des objets dont l’existence n’était a priori même pas
connue lors de la création du progiciel.
– répartir les composants sur différentes machines, et les faire communiquer de manière
transparente via le réseau. Les objets répartis se placent donc au plus haut niveau
de la programmation réseau, et permettent une abstraction complète de la notion
d’appel de méthode d’un objet. Par ailleurs, la répartition des objets fournit une
solution élégante au problème d’équilibrage des charges dans un système complexe.
Certains orb vont jusqu’à autoriser le rééquilibrage des charges dynamiquement, en
phase d’exploitation.
– bénéficier de tous les avantages des architectures client/serveur. Cependant, les progiciels à composants vont plus loin, car ils permettent une finesse incroyable dans
ce type d’architecture. En effet, chaque objet est considéré comme un serveur par
les programmes qui l’utilisent. Inversement, un objet peut très bien être client d’un
autre objet. Il est donc tout à fait possible de centraliser les données dans des objets
dédiés à cette tâche, et d’assurer les services complexes comme la cohérence de ces
données et leur redondance pour les systèmes à défaillance de panne.
– construire un erp de façon modulaire. L’indépendance des composants permet de
concevoir un progiciel où chacun des composants correspondrait à un module.
– assembler des composants hétérogènes interopérables. Des technologies permettent
d’assembler des composants hétérogènes (de langage et système d’exploitation différents) permettent de construire un système d’information d’entreprise par assem-
Xavier Moghrabi
— Année universitaire : 2002-2003 —
4
L’approche Model-Driven Architecture, crédible pour développer un progiciel de gestion intégré
blage de composants provenant de différents éditeurs. L’utilisateur pourrait choisir
les composants les mieux adaptés à son besoin et les faire fonctionner ensemble.
Tous ces avantages sont déjà très significatifs. Mais l’étendu des possibilités des systèmes à composants est encore plus vaste que ces simples possibilités techniques. En effet,
les services additionnels fournis par les orb permettent virtuellement de réaliser des systèmes très différents et d’étendre les orb.
Inconvénients d’un progiciel à base de composants
Si les avantages précédents sont issus de l’aboutissement des principes objets, les inconvénients le sont hélas aussi. Ils sont classés en deux catégories :
– l’utilisation exclusive des interfaces pour manipuler les objets répartis implique la définition et l’implémentation complète de ces interfaces, donc une forte augmentation
des frais de conception et de développement des programmes ;
– l’augmentation du risque de faire une “usine à gaz” si la conception n’est pas faite
dans les “règles de l’art”.
Ces deux inconvénients relèvent de la conception, et montrent donc clairement qu’il ne
faut pas se lancer à l’aveugle dans les technologies à composants. D’autre part, d’autres
problèmes additionnels peuvent survenir. Leur importance relative est propre à chaque
orb, mais on peut généralement signaler que :
– la réalisation d’un composant est nettement plus compliquée que l’écriture d’une
classe. Ce constat se traduit par un besoin d’analystes et de développeurs expérimentés.
– les programmes sont plus lents à l’exécution, en raison de l’intervention de l’orb
dans la communication inter-objets. La localisation des différents objets doit être
prise en compte dans la conception d’une application, afin de réduire le temps des
communications.
– la gestion des problèmes de communication peut être soit peu souple, si elle est
complètement masquée par l’orb, soit complexe, si l’orb ne la prend pas du tout
en charge. Il faut s’attendre au fait que les communications peuvent être coupées.
Ceci est vrai même lorsque les objets sont exécutés sur une même machine, car il
suffit qu’un processus se termine (volontairement ou non) pour que tous les objets
qui sont dedans deviennent inaccessibles. Pour certaines applications, l’abstraction
fournie par l’orb est suffisante, mais pour d’autres, il est impératif de maı̂triser les
pertes de connexion au plus bas niveau. Tous les orb ne sont pas égaux quant à la
capacité de personnalisation des traitements d’erreurs.
Sur ce dernier point, ce problème relève du choix technologique. Par ailleurs, les problèmes de communication entre objets soulignent plus une qualité qu’un défaut des objets
répartis. En effet, si un processus fait une faute, il n’est responsable que de la mort de ses
propres objets, pas de celle des objets des autres processus. Par conséquent, un système
à composants est globalement plus stable qu’une application monolithique, pour laquelle
l’ensemble des opérations se serait arrêté.
Xavier Moghrabi
— Année universitaire : 2002-2003 —
5
L’approche Model-Driven Architecture, crédible pour développer un progiciel de gestion intégré
1.2
Présentation du MDA
La naissance du mda a été motivée par la complexification des systèmes d’information
et des forts coûts de migration technologique. L’omg propose ainsi de monter le niveau
d’abstraction pour s’affranchir des contraintes technologiques.
1.2.1
Séparation entre la logique métier et la technologie
L’histoire des systèmes d’information a connu de nombreuses évolutions que ce soit au
niveau des langages de programmation (procéduraux et fonctionnels, évènementiels, orientés objet, services web...), des middleware (propriétaires, Corba, DCOM/COM+,
RMI...) ou des méthodes de conception (SADT, Merise, les méthodes orientées objet...).
De plus, la diversité des solutions pour résoudre un même problème ne cesse d’augmenter
[4].
Dans ce contexte, les chefs d’entreprise ne veulent plus investir dans un middleware
dont la pérennité est courte. Avec Corba, l’omg pensait fournir une norme suffisamment
puissante et ouverte pour répondre à tous les besoins. Le consortium pensait que Corba
deviendrait ainsi le middleware standard universel à l’instar d’uml comme formalisme
de modélisation. Cependant des architectures différentes se succédèrent, obligeant les entreprises à former leurs ingénieurs et à remettre à jour leurs applications.
Lors d’une migration d’une infrastructure vers une nouvelle technologie, la logique métier de l’application reste globalement la même. Il est donc évident de tenter de différencier
l’architecture technique dépendant de la technologie utilisée de celle de la logique métier.
L’intérêt est de favoriser l’évolutivité, la réduction de coût et l’interopérabilité.
Pour aller dans ce sens, les grandes compagnies informatiques ont ressenti le besoin de
standardiser les différentes tentatives. Elles ont donc logiquement chargé le consortium de
l’omg de la mission de définir une norme indépendante d’un middleware particulier.
1.2.2
L’abandon de la concurrence des middleware
La nouvelle orientation de l’omg, le mda, a été rendue publique en novembre 2000.
Il s’agit d’un constat réalisé douze ans après la création de l’omg. La recherche de l’interopérabilité entre systèmes d’information ne peut être atteinte uniquement grâce à la
standardisation des infrastructures de middleware, mais par une approche beaucoup
plus globale où la notion de modèle devient essentielle et centrale [5].
Pour résumé, on serait tenté de dire que l’omg déclare terminée la guerre des middleware. Des acteurs divers proposent des middleware hétérogènes auxquels ils sont attachés. Par conséquent, il ne servirait à rien d’essayer d’imposer un ultime middleware.
Cette analyse de la situation n’est pas nouvelle puisque l’omg avait défini des ponts pour
passer de Corba vers d’autres plate-formes. Toutefois, selon ce groupe, cette solution ne
pouvait représenter un objectif réaliste de long terme, ni être à la base d’une stratégie [6].
Xavier Moghrabi
— Année universitaire : 2002-2003 —
6
L’approche Model-Driven Architecture, crédible pour développer un progiciel de gestion intégré
1.2.3
Une montée en abstraction
Aujourd’hui la nouvelle stratégie mda se démarque de l’ancienne, Object Management
Architecture - oma, en se positionnant clairement à un niveau d’abstraction supérieur et
en mettant le projecteur non plus sur les approches à objets mais sur les approches à
modèles de composants [7]. Le but est de favoriser l’élaboration de modèles de plus haut
niveau d’abstraction et les approches de transformation vers les plate-formes techniques.
Ceci signifie qu’il sera possible de définir un modèle métier totalement indépendant des
plate-formes techniques et de générer du code spécifique à la plate-forme d’implémentation.
L’iniative mda repose sur un changement de paradigme important dans le domaine du
génie logiciel. La rapidité de cette évolution s’explique par trois facteurs au moins.
Le premier facteur est la nécessité de découpler les éléments considérés stables dans
la logique métier, de l’évolution des supports technologiques informatiques. Cette évolution dont on a accepté le caractère non conjoncturel, inéluctable et perpétuel ne va pas
se ralentir. Toutefois, elle ne doit pas pénaliser la capitalisation logicielle du savoir et du
savoir-faire de l’entreprise. L’objectif est donc clair même si les stratégies pour l’atteindre
ne sont pas totalement explicitées.
Le deuxième facteur concerne la relative incapacité de la technologie orientée objet
à tenir ses promesses. La complexité croissante des déploiements logiciels basés sur les
formes modernes de composants comme les ejb est contraire aux espoirs de simplification
conceptuelle des promesses de la technologie. Le recours à des expédients technologiques
(cas d’utilisation, patterns de conception, programmation orientée aspect,. . .) ne fait que
renforcer le constat que la technologie orientée objet n’est pas le remède miracle du génie
logiciel [8].
Le troisième facteur est l’urgence de stopper l’empilement des technologies. Les systèmes d’information sont parfois composés d’une mosaı̈que hétéroclite de technologies,
pour lesquelles il est nécessaire de conserver des compétences associées pour des raisons de
maintenance. Cette situation s’étend au fur et à mesure que les systèmes s’agrandissent.
La parade à cette accumulation de surcouches technologiques consiste à remplacer les approches interprétatives par des approches transformationnelles capables de générer des
systèmes plus légers, moins gourmands en ressources et plus finement adaptés aux besoins
réels des applications. L’approche interprétative reconnaı̂t que les individus ont un rôle
très actif dans la construction des systèmes informatiques alors que l’approche transformationnelle réduit leur rôle grâce à une automatisation de la construction.
Desmond D’Souza [9] a identifié trois dimensions dans l’architecture des modèles représentant une entreprise :
– la dimension horizontale : au sein d’une même entreprise cohabitent différentes
vues partielles du système. Chacune correspond à un domaine différent avec ses
objectifs propres et sa terminologie particulière. Chacune se traduit par des modèles
particuliers, et éventuellement des méta-modèles spécifiques.
– le dimension verticale : au sein d’un même domaine, on peut trouver différents
niveaux d’abstraction.
– la dimension des variantes : au sein de cette architecture peuvent cohabiter différentes versions de modèles. Elles représentent le système tel qu’il a été, tel qu’il est,
tel qu’il sera ou tel qu’il pourrait être.
Xavier Moghrabi
— Année universitaire : 2002-2003 —
7
L’approche Model-Driven Architecture, crédible pour développer un progiciel de gestion intégré
Fig. 1.1 – Description du méta-modèle mda
Une problèmatique du mda concerne l’organisation des modèles et donc des métamodèles. En effet, les différents domaines ne sont pas totalement disjoints. Il existe de
nombreuses relations entre eux. Il est donc nécessaire d’expliciter ces relations, et ce de
plus haut niveau d’abstraction afin de faciliter l’interopérabilité.
1.2.4
Détail de l’architecture du MDA
Le mda est un méta-modèle de composants. Comme précisé auparavant, il ne spécifie
pas une nouvelle architecture middleware mais définit une représentation de l’architecture abstraite et indépendante de la plate-forme technique, tout en lui associant une
multitude de services métiers. La figure 1.1, à la page 8, présente une description du métamodèle du mda [10].
Les termes pim, psm, expliqués dans le section suivante, représentent des modèles respectivement indépendant et spécifique à la plate-forme technique. Le pim, le psm et les
techniques de mappage sont basés sur un méta-modèle représenté de préférence avec les
standards définis par l’omg (uml, mof, cwm et xmi).
L’objectif du mda est la création d’une représentation uml de la logique métier et de
lui associer des caractéristiques mda. Des outils devraient permettre de générer automatiquement des composants en fonction de l’architecture à composants choisie (ejb, Corba,
.net ou services web). Un travail de finalisation sera nécessaire pour affiner le modèle
obtenu en fonction du contexte choisi.
La migration d’une application d’une infrastructure à une autre consiste ainsi à demander, du modèle mda de la logique métier, une génération du modèle spécifique à la
nouvelle infrastructure cible. L’automatisation de la génération devra permettre de réduire
la durée et les coûts de migration. De plus, un éditeur pourra envisager plus facilement
d’éditer un logiciel pour les plate-formes techniques supportées par le mda.
Xavier Moghrabi
— Année universitaire : 2002-2003 —
8
L’approche Model-Driven Architecture, crédible pour développer un progiciel de gestion intégré
Fig. 1.2 – Vue globale de l’achitecture du mda
La figure 1.2, de la page 9, représente une vision globale du mda [11].
Le noyau de l’architecture de mda est basé sur des standards de l’omg tels que uml,
mof, cwm et xmi. Plusieurs modèles types du noyau existent et l’omg les nomme des profils uml. Chaque profil répond à un besoin précis. Par exemple, l’un d’entre eux représente
le système de l’entreprise avec sa structure de composants et des interactions transactionnelles ; un autre, un système en temps réel avec des besoins spéciaux de contrôle de
ressources... Grâce aux technologies du noyau, les architectes pourront représenter les modèles du système.
L’anneau autour représente les technologies middleware. Nous y retrouvons les standards actuels tels que les ejb, Corba, .net et les Services Web. L’architecture technique
doit contenir des composants. Un modèle spécifique à la plateforme doit être réalisé. Il est
également représenté par le formalisme uml mais selon un profil spécifique à la plate-forme
cible.
L’anneau extérieur au cercle représente les services. Ceux-ci permettent de gérer les
fonctionnalités de base du système comme les transactions, la persistance, la sécurité, les
évènements ou les répertoires.
Enfin, une couche spécifique au domaine d’application se situe à la périphérie du noyau
en englobant le tout. Ce sont les profils uml qui permettent de définir cette couche et
proposent des frawework spécifiques au domaine d’application du système.
Xavier Moghrabi
— Année universitaire : 2002-2003 —
9
L’approche Model-Driven Architecture, crédible pour développer un progiciel de gestion intégré
1.3
1.3.1
L’importance des modèles
Les différents modèles du MDA
L’omg définit dans son guide sur le mda quatre modèles standards [12].
CIM
Le cim est l’abréviation anglaise de Computation Independent Model. Les exigences du
système sont modélisées dans ce modèle qui décrit la situation dans laquelle le système sera
utilisé. Un tel modèle est parfois appelé Business Model ou Domain Model (c’est-à-dire
un modèle de l’entreprise). Il ne montre pas les détails de la structure du système. Typiquement ce modèle est indépendant de l’implémentation du système. Le cim correspond
à la modélisation de l’entreprise sans parler encore de système informatique.
Il montre le système au sein de l’environnement dans lequel il opèrera. Il aide ainsi
pour représenter ce que le système devra exactement faire. Il se révèle utile, non seulement
comme une aide pour comprendre le problème, mais aussi comme une source du vocabulaire
partagé avec d’autres modèles. Dans la spécification mda, les exigences du cim doivent
pouvoir est suivies à la construction des autres modèles (pim et psm) qui les implémentent
et vice versa.
Le cim est constitué de deux modèles uml, des points de vue de l’entreprise et des
informations. Le cim joue un rôle important pour combler le fossé entre les experts, du
métier et des exigences, et les experts de la conception des artéfacts, qui ensemble satisfont
les exigences métier.
PIM
Le terme pim est l’acronyme de l’anglissisme Platform Independent Model soit le modèle
indépendant de la plate-forme. Cela signifie que ce type de modèle n’a pas de dépendance
avec la plate-forme technique. Il décrit le système mais ne montre pas les détails de son utilisation sur la plate-forme. Le pim représente ainsi la logique métier, spécifique au système,
mais indépendant de la technique et de la technologie. Le pim correspond à la modélisation
du système de manière indépendante à la plate-forme.
Ce modèle est concrètement représenté par un diagramme de classes en uml. Le pim
donne une sémantique aux classes à l’aide de stéréotypes selon le méta-modèle mda et les
profils uml.
PSM
Le psm, pour Platform Specific Model, est, quant à lui, un modèle dépendant de la
plate-forme technique. Ce type de modèle sert essentiellement de base à la génération de
code exécutable.
Ce modèle, produit à partir d’une transformation du pim, est un modèle du même
système que le pim mais spécifié par rapport à la plate-forme. Il décrit aussi comment ce
système utilisera la plate-forme choisie.
Un psm peut fournir plus ou moins de détails selon son but. Un psm peut être une implémentation, s’il fournit toutes les informations utiles pour construire le système. D’autre
part, un psm peut ressembler à un pim pour définir un niveau d’abstraction intermédiaire
entre le pim et le psm d’implémentation.
Xavier Moghrabi
— Année universitaire : 2002-2003 —
10
L’approche Model-Driven Architecture, crédible pour développer un progiciel de gestion intégré
Fig. 1.3 – Exemple d’utilisation des modèles du mda pour réaliser une application
Un psm d’implémentation fournit un large éventail d’informations tels que le code du
programme, les types pour l’implémentation, les programmes liés et les spécifications, les
descripteurs de déploiement, et d’autres formats de spécification.
PDM
Ce modèle est désigné par l’acronyme pdm pour Plateform Description Model. Il correspond à un modèle de transformation du pim vers un psm d’implémentation. L’architecte
doit choisir une ou plusieurs plate-formes pour l’implémentation du système avec les qualités architecturales désirées.
Ce modèle propre à la plate-forme est utile pour la transformation du pim en psm. La
démarche mda est ainsi basée sur le détail des modèles dépendant de la plate-forme. Il
représente les particularités de chaque plate-forme. Il devrait être fourni par le créateur de
la plate-forme.
La figure 1.3, de la page 11, représente un ordre d’intervention de ces modèles dans la
création d’une application. L’annexe A organise et structure tous ces modèles grâce à une
”Architecture à quatre niveaux” définie par l’omg.
1.3.2
La transformation des modèles
Le mappage est utilisé pour les transformations suivantes [11].
Xavier Moghrabi
— Année universitaire : 2002-2003 —
11
L’approche Model-Driven Architecture, crédible pour développer un progiciel de gestion intégré
PIM vers PIM
Ces transformations interviennent quand un modèle est agrandi, réduit ou spécialisé
pendant le cycle de développement sans aucune information dépendante de la plate-forme.
Le fait de masquer quelques éléments afin de s’abstraire de détails fonctionnels est typiquement une transformation pim vers pim. Un des mappages les plus évidents est la transformation du modèle d’analyse à celui de conception. Ces mappages sont généralement
reliés à un affinage du modèle. Ces transformations ne sont pas toujours automatisables.
PIM vers PSM
Ces transformations s’effectuent quand le pim est suffisamment défini pour être transposé dans l’infrastructure d’exécution. La projection est basée sur les caractéristiques de
la plate-forme technique. La description des caractéristiques doit être réalisée par le pdm
(et éventuellement un profil pour décrire les concepts de la plate-forme). La transposition
d’un modèle de composants logiques à un modèle de composants existants (tels que les ejb
du framework j2ee ou CCM de Corba) est un mappage de pim vers psm. L’opération
consiste à ajouter des informations propres à la plate-forme technique. Ces transformations
ont donc pour but d’être fortement automatisées.
PSM vers PSM
Ces transformations sont utilisées lors des phases de déploiement, d’optimisation ou de
reconfiguration. Une fois empaquetés, l’intégration des composants peut être réalisée en
spécifiant l’initialisation des données, les machines cibles, la génération du conteneur et la
configuration. . . Ces mappages sont généralement dus à un affinage du modèle.
PSM vers PIM
Ces transformations s’effectuent pour construire un modèle d’abstraction pim à partir
d’un système existant dépendant d’une plate-forme. Cette procédure correspond ainsi à
du reverse engineering. Elle est assez difficile à réaliser et est difficilement entièrement
automatisable. Cette transformation est pourtant nécessaire pour toute migration d’un
système existant vers l’approche mda.
1.3.3
Les profils UML
Les profils uml jouent un rôle important dans le mda du fait des mappages entre modèles. Pour implémenter le mappage, le mécanisme a besoin de connaı̂tre les méta-modèles
d’entrée, ceux de sortie et les règles de mappage. Les règles de transformation peuvent
être réalisées à l’intérieur des outils uml (par exemple en utilisant un système de script)
ou par des outils externes (par exemple en travaillant sur des fichiers xmi).
La figure 1.4, page 13, présente un exemple de mappage de pim vers psm en utilisant le
profil de l’omg de l’Enterprise Distributed Object Computing - EDOC [11]. Ce profil doit
permettre de définir un système d’information d’entreprise à base de composants distribués. C’est grâce à ce profil que les composants d’entreprise doivent être définis. D’autres
profils sont en cours de définition. Le profil Enterprise Application Integration - EAI permettra de concevoir des systèmes fortement couplés. Le profil permet de représenter les
communications asynchrones et les envois de messages, quelque soit la plate-forme (pim).
Le profil Scheduling - SCH servira à l’ordonnancement. Il est typiquement utilisé pour la
Xavier Moghrabi
— Année universitaire : 2002-2003 —
12
L’approche Model-Driven Architecture, crédible pour développer un progiciel de gestion intégré
Fig. 1.4 – Un exemple de méta-modèle en mda
modélisation des applications temps réels, quelque soit la plate-forme (pim).
Une architecture à base de composants est décrite en utilisant le profil EDOC sur la
figure 1.4, de la page 13. Ce profil spécifie également les règles de mappages standards entre
EDOC et les modèles de composants standards comme les ejb. Le mappage de EDOC à
ejb n’est pas un profil en lui-même, mais peut être associé à la notion de profil car on
connaı̂t les modèle et méta-modèle d’entrée et de sortie. Les règles et techniques standards
de spécification pour aller d’un modèle à un autre sont ainsi définies.
Actuellement, un effort important est à fournir pour transformer complètement le pim
vers un psm. Nous pouvons espérer que l’intégralité de cette phase sera automatisée dans
les années à venir (2008) [13].
1.4
Qu’attendre de l’approche MDA ?
Cette approche constitue un pas majeur dans le domaine du génie logiciel. Le principal
intérêt des chefs d’entreprise est de savoir la valeur ajoutée apportée par le mda.
1.4.1
Les forces
Une multitude d’avantages est attendue par les entreprises et les organisations de standardisation qui travaillent sur le mda. Dans les paragraphes suivants, nous en illustrerons
trois.
Xavier Moghrabi
— Année universitaire : 2002-2003 —
13
L’approche Model-Driven Architecture, crédible pour développer un progiciel de gestion intégré
Des systèmes interopérables favorisant l’hétérogénéité des plate-formes
Aujourd’hui, les groupes industriels essayent de créer des systèmes d’information ou
d’autres applications informatiques sur une seule plate-forme particulière. Bien que beaucoup d’industriels possèdent un middleware dominant leur système informatique, chez
aucun d’entre eux une unique plate-forme ne peut gérer l’ensemble de l’interopérabilité du
réseau.
Ainsi, dans le but d’accroı̂tre leur cible, les éditeurs de logiciels peuvent rendre rapidement disponible leurs produits pour différentes plate-formes et en développant l’interopérabilité avec les systèmes existants grâce à la démarche de mda.
De plus, comme le mda prévoit des passerelles favorisant l’interopérabilité d’une plateforme à une autre, les industries peuvent combiner plus facilement des systèmes hétérogènes. Cela permettra à toutes les entreprises d’utiliser des standards pour à la fois les
transactions internes ou interentreprises [14].
Le choix de la plate-forme technique la mieux adaptée
Les logiciels du marché sont le plus souvent destinés à une plate-forme technique donnée. L’utilisateur doit ainsi se soumettre à cette contrainte ou refuser d’utiliser le logiciel.
Les éditeurs adoptant le mda pourraient proposer à leurs clients ce choix. Par exemple,
des logiciels de conception et réalisation assistées par ordinateur (CAD/CAM : Computer
Aided Design/Manufacturing) et de gestion des données produits (PDM : Product Data
Management) nécessitent un couplage fort. L’utilisateur décide qu’ils fonctionneront sur
Corba, la plate-forme pour laquelle ils ont déjà été conçus.
De l’autre côté, il souhaite ajouter une application qui concerne l’ensemble de l’entreprise, la gestion de la chaı̂ne logistique (SCM : Supply Chain Management). Il choisit
de l’implémenter en services web pour l’avantage de cette technologie en terme d’interopérabilité avec des applications externes. En effet, cette plate-forme fournit la possibilité
d’intégrer cette application dans d’autres. En utilisant le mda, un tel environnement ne
pose pas de problèmes à être implémenté et déployé. En fait, beaucoup d’industries auront
besoin d’exposer une partie de leurs applications à des partenaires extérieurs qui ne possèdent pas le même système informatique. Les services web représentent une technologie
intéressante sur ce point et le mda fournira l’architecture qui convient [14].
Un développement plus rapide et des logiciels de meilleure qualité
Le modèle pim du mda spécifie seulement les fonctionnalités métier et le comportement
de l’application, sans se soucier de l’aspect spécifique à la plate-forme. En travaillant dans
cette optique, les architectes et les concepteurs peuvent se focaliser exclusivement sur le
détail de la logique métier. Ils travailleront le modèle jusqu’à obtenir exactement ce qui est
spécifié dans le cahier des charges. Ils mettront ainsi une charge de travail conséquente sur
la production de ce modèle car il est à la base de la génération des modèles spécifiques à la
plate-forme technique. Si un aspect de l’implémentation ne fonctionne pas correctement, il
est facile de savoir s’il s’agit d’une erreur comportementale sur le modèle métier ou d’une
faute dans le code.
De plus, l’approche de l’omg vise automatiser la production de code à partir des
Xavier Moghrabi
— Année universitaire : 2002-2003 —
14
L’approche Model-Driven Architecture, crédible pour développer un progiciel de gestion intégré
modèles psm. Le processus de développement est accéléré par l’utilisation d’outils. Ces
derniers permettent de réaliser automatiquement les mappages du pim vers le psm, laissant
aux concepteurs le soin de s’attacher sur les détails. Ensuite, ils permettent de générer
automatiquement le code à partir du psm. La migration vers une autre technologie est
ainsi plus aisée et rapide [14].
1.4.2
les faiblesses
Bien que cette approche soit intéressante, il existe plusieurs défis potentiels auxquels
l’omg devra s’attaquer. L’utilisateur actuel du mda doit en être conscient.
La question sur les outils
L’idée de mda est de générer (presque) automatiquement les modèles psm depuis les
pim. Toutefois, ceci ne pourrait être possible seulement pour quelques rares environnements
techniques. Le problème est que la technologie sous-jacente change trop rapidement, mais
le temps que les mappages automatiques soient en place pour une plate-forme, la technologie risque de changer. De plus, la démarche mda devrait être adaptée à plusieurs
plate-formes. Les vendeurs ne pourront fournir des outils pour toutes les plateformes et
ils devront en choisir quelques unes. Ainsi, un utilisateur qui acquérrait un outil mda se
limiterait à travailler sur les plate-formes supportées. Il ne serait pas possible d’intégrer
des plate-formes hétérogènes.
Chaque éditeur d’outil respectera le mda à sa propre manière à l’instar des outils
Corba. La norme Corba est très complète pour bâtir une architecture distribuée, toutefois beaucoup d’outils supportant Corba n’étaient pas aussi complets et les éditeurs implémentaient leur propre version de la norme. Le résultat était que différents orb Corba
fonctionnaient mal ensemble. Ainsi le même scénario peut se répéter avec les outils mda.
Les outils seront hétérogènes et le passage d’un modèle d’un outil à un autre pourrait être
délicat malgré l’utilisation de xmi. Ce type de problème est d’ailleurs souvent favorisé par
le leader du marché. Dans le passé, de nombreuses stratégies d’intégration d’outils ont
échoué lamentablement, pourquoi en serait-il différent avec le mda [15] ?
Le MDA est trop compliqué
Une hypothèse fondamentale de la démarche mda est que les développeurs aient des
compétences significatives en modélisation. Toutefois cette vision idéaliste reste loin de la
réalité. La plupart des développeurs créent rarement et difficilement des diagrammes uml.
Ils ne savent pas forcément ce que représentent les neuf diagrammes d’uml [15].
La difficulté d’une approche par modèles ne permettra qu’à un faible pourcentage
des développeurs d’avoir les compétences pour modéliser complètement des systèmes. Le
mda nécessite l’implication de professionnels de la modélisation. Ces personnes sont rares
dans les petites structures ou chez les industriels. Cette limitation risque de définir le
mda comme une approche destinée aux gros projets. Cette remarque peut faire penser à
l’évolution de Corba, une norme complète pour bâtir des systèmes distribués. Toutefois
cette norme est très compliquée à mettre en œuvre et la répartition des implémentations
Corba diminue au profit de technologies plus simples tels que .net ou j2ee.
Xavier Moghrabi
— Année universitaire : 2002-2003 —
15
L’approche Model-Driven Architecture, crédible pour développer un progiciel de gestion intégré
La distinction des modèles
Le mda distingue les objets liés à la plate-forme de ceux qui en sont indépendants.
Ce concept d’indépendance de la plate-forme reste aujourd’hui un objectif plus qu’une
définition opérationnelle. Derrière cette notion se cache une réalité complexe. On est en
droit de se poser la question où se trouve la limite entre les modèles ? L’omg n’a pas défini
le terme plate-forme qui n’est pas seulement un middleware. La limite entre les modèles
pim/psm n’est pas franche tant que l’ensemble des termes n’est pas spécifié.
Pour le moment, on précise la notion de pim en disant que ce n’est pas un psm. La notion
de pdm pour Platform Description Model (modèle de description de la plate-forme) aide à
affiner cette définition. Des propositions comme le cim sont apparues mais l’objectif reste
d’identifier ce qui est stable au travers de différentes mises en oeuvres si la logique métier
est conservée [20]. L’avancée du mda ne permet pas à n’importe qui de l’appliquer. Son
utilisation reste encore au stade expérimental et est réalisée par le monde de la recherche
ou par les sociétés impliquées dans la définition de cette norme.
1.5
Les standards de l’OMG utilisés
L’omg a défini plusieurs standards pour le mda. Ci-après nous dressons une liste des
plus importants, attachés d’une note explicative [11].
1.5.1
MOF : Meta Object Facility
Le mof définit la structure de tous les méta-modèles comme uml, cwm et SPEM.
L’intérêt principal du mof est surtout qu’il permet la définition d’opérations globales non
spécifiques applicables à tous les méta-modèles. L’exemple le plus significatif est xmi qui
propose l’échange de modèles quel que soit leur méta-modèle ou ocl qui permet de compléter des éléments arbitraires des modèles avec des assertions logiques. Un autre exemple
est la fourniture d’API définis en idl permettant la manipulation par programmation des
modèles.
1.5.2
UML : Unified Modeling Language
uml est devenu le standard de modélisation des logiciels à objets. Il permet la modélisation d’architectures, de structure d’objets, d’interactions entre ces objets, de données, de
composants, de framework,. . . Le mda préconise l’utilisation d’uml pour l’élaboration
des modèles. À l’heure actuelle, la version 2.0 est sortie et validée. Cette version contient
entre autre une évolution du langage d’expression de contrainte ocl [16], des concepts
renforcés pour les composants et s’intègrera plus facilement dans le mda grâce notamment
à un rapprochement avec le mof. Le noyau d’uml (infrastructure) et les extensions (superstructure) sont aussi redéfinis.
Un des aspects intéressants d’uml est le concept de profils. Ces derniers permettent
d’adapter uml à un domaine qui était souvent mal couvert. Comme uml est un formalisme, les profils représentent alors des dialectes de ce langage. Ces dialectes sont fortement
utilisés dans le mda. Par exemple le profil ejb permet l’élaboration de psm pour la plateforme ejb. À l’heure actuelle l’omg définit entre autre un profil pour l’EAI, un profil pour
les composants d’entreprise (EDOC), un profil pour les tests, un profil pour le temps réel,
Xavier Moghrabi
— Année universitaire : 2002-2003 —
16
L’approche Model-Driven Architecture, crédible pour développer un progiciel de gestion intégré
un profil pour Corba et un profil pour ejb. Ces deux derniers profils permettront d’automatiser la transformation du pim en psm de la plate-forme respective.
Enfin, la dernière partie d’uml 2.0 correspond à la séparation du contenu logique de
la présentation physique. Ce problème assez important est ainsi résolu en fournissant un
méta- modèle séparé de présentation (Diagram Interchange) qu’il sera possible de modifier
ou d’exploiter en utilisant des standards du W3C (xslt et svg notamment).
1.5.3
CWM : Common Warehouse Metamodel
cwm est le standard de l’omg qui traite des entrepôts de données. Il couvre toutes
les étapes nécessaires à l’élaboration, à la création et à la transformation des entrepôts de
données. L’approche préconisée par ce standard pour la migration est une approche mda.
C’est-à-dire la création de modèles et leurs transformations. cwm définit les méta-modèles
des principaux types d’entrepôts de données (Relationnel, Objet, xml,. . .) et propose des
règles de transformation entre ceux-ci.
1.5.4
XMI : XML Metadata Interchange
xmi est le standard de l’omg qui fait la jonction entre le monde des modèles et le
monde xml. xmi se base sur le mof. Il permet la génération de dtd et de schémas xml
à partir de méta-modèles. L’application la plus connue de xmi est celle qui a permis la
construction de la dtd uml. Cette dernière permet la représentation des modèles uml sous
forme de documents xml et assure ainsi les échanges de modèles uml entre les différents
outils du marché. Le standard xmi de sérialisation des modèles compatibles avec mof est
en cours de stabilisation et son utilisation devient incontournable dans les outils industriels.
Le mda propose une démarche privilégiant plus les modèles et méta-modèles de haut
niveau d’abstration que le codage de l’application et est ainsi plus pérenne. Il dispose d’un
certain nombre d’avantages comme l’automatisation des transformations de modèles et de
génération de code accélère le développement logiciel.
Xavier Moghrabi
— Année universitaire : 2002-2003 —
17
Chapitre 2
L’utilisation du MDA
Le développement mda se focalise d’abord sur les fonctionnalités et le comportement
d’une application ou d’un système distribué, sans se préoccuper de la technologie sur laquelle le logiciel sera implémenté. Ainsi il n’est pas nécessaire de recommencer la modélisation des fonctionnalités et du comportement du système chaque fois qu’une nouvelle
technologie est adoptée. Les autres approches lient généralement les architectures à une
technologie particulière.
2.1
L’approche MDA est-elle adaptée à la réalisation d’un
ERP
Cette partie montrera que l’approche mda n’est pas destinée à un domaine particulier
de l’industrie logicielle mais transversale à l’ensemble de cette industrie. Nous essayerons
de montrer ce qu’apporterait le mda pour le développement et l’intégration d’un erp.
2.1.1
Le MDA peut s’appliquer à l’ensemble de l’industrie logicielle
Le mda semble destiné à une large partie de l’industrie logicielle. Toutefois, il se montre
naturellement efficace pour les applications dont les fonctionnalités et comportements métiers sont primordiaux et pour les éditeurs qui souhaitent développer leurs produits pour
différentes plate-formes. Ainsi les éditeurs de logiciel de gestion ont tout intérêt à prendre
conscience de l’approche mda.
Le fait que le mda soit défini par le consortium de l’omg est un gage de qualité qui
permettra de réaliser un standard neutre des outils et des entreprises. Les groupes Domain
Task Forces - dtf de l’omg ont pour but de standardiser les modèles de domaines. L’objectif est de spécifier des architectures communes à des catégories particulières d’applications.
En effet, les applications d’un même domaine d’activité (par exemple : la comptabilité, le
commerce électronique, les banques, etc.) ont des caractéristiques communes. La factorisation de celles-ci aboutirait à des architectures pré-cablées. On évite ainsi aux développeurs
de travailler “from scratch” (autrement dit à partir de zéro) et de réinventer à chaque fois
la roue.
Depuis 1996, une partie des membres de l’omg se rencontre dans ces communautés
pour standardiser les services et les mécanismes spécifiques à un marché vertical. Jusqu’en
2000, ces spécifications consistaient à écrire des interfaces pour Corba accompagnées d’une
sémantique. Un service ou un mécanisme bien conçu est toujours basé sur un modèle de
Xavier Moghrabi
— Année universitaire : 2002-2003 —
18
L’approche Model-Driven Architecture, crédible pour développer un progiciel de gestion intégré
Fig. 2.1 – Modèles uml de framewroks pour des mécanismes verticaux
sémantique indépendant de la plate-forme cible.
Aujourd’hui l’omg dispose de 10 dtf. Des modèles pour les domaines suivants sont en
cours de réalisation : le transport, l’espace, la production, la finance, le commerce électronique, les télécommunications, la santé. . . Ces groupes produisent des framework pour
standardiser des fonctionnalités pour un domaine d’application. Par exemple, le dtf Finance standard pour un mécanisme de comptes doit contenir un model uml pim et des
modèles uml psm (un modèle spécifique Corba avec des interfaces idl, un modèle spécifique Java avec des interfaces Java). Des dtd xml ou des schémas générés via xmi peuvent
être inclus pour les règles de mappage. Tous ces artefacts sont normalisés. Comme un standard doit avoir un impact large, le pim est utile même pour construire des applications
utilisant un environnement middleware autre que ceux des modèles psm fournis.
Un autre exemple, le dtf production crée des modèles uml normalisés, des interfaces idl, des interfaces Java, des dtd xml . . . pour l’intéropérabilité entre les logiciels
de conception et réalisation assistées par ordinateur (CAD/CAM), la gestion des données
produits (PDM) et un mécanisme d’intégration de la chaı̂ne logistique (Supply Chain).
Une fois les modèles mda complétés et adoptés, leur implémentation peut être partiellement automatisée pour les plate-formes middleware supportées par le mda.
Ces trois mécanismes cités pour cet exemple, de la figure 2.1 à la page 19, démontre
un avantage que fournit le mda. Les deux premières (CAD/CAM et PDM) applications
sont fortement intégrées et seront implémentées par des entreprises individuelles ou des
éditeurs de logiciels en Corba ou ejb. La chaı̂ne logistique est un mécanisme interentreprises qui peut être préférable d’implémenter avec les services web (xml sur SOAP). Il
est ainsi essentiel qu’il existe une interopérabilité entre ces trois applications. En utilisant
le mda, il sera possible de générer une partie significative de l’implémentation pour chaque
plate-forme mais aussi les passerelles permettant à chaque application d’être interopérable
avec les deux autres [5].
Ces modèles de services et de mécanismes normalisés pour des marchés verticaux
montrent que le mda pourra s’appliquer assez facilement à un large éventail de d’activités. Pour concevoir un erp, il est utile d’utiliser les modèles standards qui seront fournis
par l’omg pour les domaines intéressés (production, finance, commerce électronique. . .).
Xavier Moghrabi
— Année universitaire : 2002-2003 —
19
L’approche Model-Driven Architecture, crédible pour développer un progiciel de gestion intégré
2.1.2
Le MDA demande des moyens adaptés
Des compétences
L’adoption du mda demande aux entreprises de réorganiser leurs ressources en privilégiant bien entendu les phases de modélisation. L’architecture mda favorise une répartition
des tâches au sein du projet selon les compétences disponibles. Chacun des acteurs travaillant avec le mda doit obligatoirement savoir modéliser en utilisant le formalisme uml.
Dans les entreprises, les nombreux développeurs connaissent et comprennent le diagramme
de classes. Toutefois, ils ne savent pas vraiment les concevoir et connaissent encore moins
les autres diagrammes uml. L’approche mda vise à automatiser la génération de code pour
cette raison la charge de programmation est diminuée.
Cette montée en abstraction privilégie les analystes métiers pour concevoir les modèles
métiers cim et les architectes fonctionnels pour les modèles de conception pim. Les spécialistes techniques (architectes, concepteur de base de données, concepteurs. . .) restent
encore indispensables car les transformations de modèle sont loin d’être entièrement automatisées. Cette montée en abstraction oblige les entreprises à maı̂triser les modèles et les
architectures pour améliorer la conception, le développement et l’implémentation.
Des outils
Depuis le début, nous faisons allusion à des outils pour faciliter l’approche mda. Le
principal intérêt de ces outils est la transformation des modèles (pim vers psm principalement) et la génération du code. Ces produits doivent automatiser au maximum les étapes
de transformation.
L’adoption du mda par l’industrie logicielle se fera une fois la démarche complètement
normalisée et quand des outils performants verront le jour. Sur le site de l’omg, le visiteur peut s’apercevoir qu’il existe un peu moins d’une trentaine d’outils “mda compliant”.
Parmi eux, on retrouve un grand nombre de générateurs de code à partir de modèles tels
que XDE d’IBM Rational ou Codagen de Codagen Technologies. . .. D’autres éditeurs s’attaquent à une démarche plus globale à l’instar d’Objecteering de Softeam, de
Model-In-Action de SodiFrance ou encore d’OptimalJ de Compuware [17]. Ces outils
ne sont qu’à une étape embryonnaire du mda, ils ne proposent pas de réaliser les transformations ou générations entièrement de manière automatique. Certes, ils accélèrent le
travail des analystes et des développeurs mais un important travail reste à faire pour obtenir des produits en adéquation avec les objectifs du mda.
En effet, la norme mda n’est pas encore définie et ainsi l’omg a spécifié ses objectifs sans
présenter les moyens pour les atteindre. D’autant plus, que les termes ne sont pas spécifiés
et les mécanismes de transformation ne sont qu’au stade expérimental. Des groupes de
recherchent mènent des travaux parallèles sur des transformations en utilisant des profils
uml, des pattern ou encore des transformations de modèles uml codés en xmi par xslt.
Le mda deviendra une architecture viable, une fois que ces tranformations seront
concrétisées et intégrées dans des outils. Cette automatisation est indispensable pour atteindre les objectifs de l’architecture mda.
Un grand nombre d’entreprises utilise actuellement des outils de modélisation compatibles mda au niveau des processus métier. Cependant, la plupart d’entre elles considèrent
Xavier Moghrabi
— Année universitaire : 2002-2003 —
20
L’approche Model-Driven Architecture, crédible pour développer un progiciel de gestion intégré
toujours la modélisation comme un exercice théorique. Cela engendre un problème de synchronisation entre le modèle d’application et l’application elle-même dans la mesure où
l’application est mise à jour alors que le modèle ne l’est pas. L’architecture mda résout ce
problème en fusionnant les processus de modélisation et de codage. Néanmoins, la plupart
des transformations pim en psm et psm en code s’effectuent, pour l’instant, en partie manuellement.
La standardisation des transformations automatiques au sein d’une structure mda est
actuellement assurée par certains des principaux membres de l’omg, tels que Compuware
et Sun Microsystems.
Les pattern pourraient constituer la clé de l’automatisation des transformations entre
les modèles. Ils garantissent que l’application incorpore les meilleures pratiques, les normes
et les directives de façon cohérente et fiable, ce qui optimise la qualité et réduit les risques.
On distingue deux catégories générales de patterns :
– les pattern technologiques qui transforment un pim en un psm,
– les pattern de mise en œuvre qui transforment le psm en un code réel en implémentant la spécification.
Avant de choisir un jeu d’outils compatible mda, il incombe à l’utilisateur final de
déterminer globalement, et non élément par élément, le niveau de conformité de l’organisation avec l’architecture mda. Il doit, en particulier, rechercher les organisations qui
recourent à une solution basée sur des patterns pour automatiser les transformations entre
les modèles. Le développement fondé sur des pattern constitue, pour l’instant, la meilleure
méthode d’automatisation des transformations, un élément fondamental de l’implémentation complète de l’architecture mda, et le seul moyen de tirer pleinement partie des
avantages de celle-ci.
Toutefois, d’autres types de transformation sont en cours d’élaboration. Nous avons
mentionné auparavant les profils uml dont certains devraient être utilisés pour cette automatisation (profils Corba, ejb, .net, services web . . .). Toutefois, les partisans d’xml
ont émis l’idée de transformer automatiquement un modèle uml codé en xmi par l’intermédiaire d’un transformateur xslt. Le travail sur les transformations vient à peine de
commencer et pour l’instant le mda ne dispose d’aucune méthode pour y répondre. La
définition des méthodes de transformation figurera dans la norme mda qui n’est toujours
pas établie.
Le projet MoDAthèque
Par ailleurs en janvier 2003, un consortium français réunissant industriels (Thales,
France Telecom, EDF), éditeurs d’outils (Softeam, SodiFrance, Omondo, W4) et
organismes de recherche (INRIA, CEA-List, LIP6, CNAM, IMAG) a présenté le projet
MoDAthèque. Le but est de bâtir une plate-forme mda libre qui puisse résoudre les problèmes relevés [18]. Ce travail serait financé par les industriels, par les éditeurs et ,à moitié,
par le Ministère de la Recherche pour un coût estimé à 8,5 millions d’euros.
Parmi les freins à la mise en place des approches de développement, le consortium
identifie deux verrous conceptuels :
– La définition du concept de composant méthodologique mda, unité de structuration
et de déploiement des règles et techniques de modélisation, permettant la constitution
Xavier Moghrabi
— Année universitaire : 2002-2003 —
21
L’approche Model-Driven Architecture, crédible pour développer un progiciel de gestion intégré
d’une chaı̂ne méthodologique mda au-dessus des outils de modélisation.
– La capacité d’identifier et gérer le rôle de composants mda dans un processus de
développement logiciel.
À ceux-ci s’ajoutent trois verrous technologiques :
– L’interopérabilité des outils supportant le chaı̂ne méthodologique mda.
– La maı̂trise du mda.
– Le pilotage assisté des processus de développement dans le mda.
La nature de ces verrous technologiques (interopérabilité, capitalisation et orchestration) nécessite d’aborder le problème en largeur et de manière très ouverte. La forme d’un
projet commun, plutôt qu’un ensemble de projets techniques ciblés, a été préféré. En effet,
cette approche permet de garantir plus facilement la cohérence et l’interaction.
Les résultats attendus sont les suivants :
– Une plate-forme technologique assurant l’interopérabilité des outils et offrant les
concepts et mécanismes nécessaires à la constitution de chaı̂nes méthodologiques
mda.
– La complétude de la plate-forme par un ensemble d’outils couvrant les aspects d’un
développement mda.
– l’expérimentation d’approches mda qui instancient la plate-forme dans des contextes
applicatifs et méthodologiques divers.
Ce projet dont la durée est prévue à deux ans, doit permettre aux industriels de disposer
d’une plate-forme libre qui interconnectera les outils entre eux et proposera une alternative
aux logiciels de compagnies américaines très dominantes. La démarche pourra également
crédibiliser l’approche mda en général.
2.1.3
Le MDA répond aux besoins de création et d’intégration des ERP
Le mda semble parfaitement bien adapté pour produire un erp. Cette approche peut
être utile à la fois pour la réalisation du progiciel et pour son intégration dans le système d’information de l’entreprise. En effet, pour la conception du progiciel la phase de
modélisation se montre indispensable pour donner à l’équipe de travail toutes les chances
de créer un produit de qualité et répondant aux besoins exigés. Le mda peut faciliter
cette approche puisqu’un progiciel de gestion d’entreprise comprend une logique métier
très forte. En effet, le mda préconise la séparation de la modélisation métier de la modélisation de l’implémentation du système. Le mappage d’un modèle à l’autre permettra
d’économiser du temps pour réduire les coûts de développement et favoriser l’analyse et
la modélisation. Les profils uml déterminés par les dtf peuvent apporter un avantage
quant à la standardisation des règles métier. Comme nous l’avons vu précédemment, il est
prévu de créer des profils pour les domaines de la production, finance, du commerce électronique. . . qui seraient intéressants de mettre en œuvre pour la réalisation d’un erp complet.
Le mappage automatique d’un pim vers des psm spécifiques à chaque plate-forme d’implémentation permettrait de développer un produit pour plusieurs middleware. L’entreprise pourra ainsi fournir différentes versions du produit selon le choix du middleware
par le client. Habituellement, un système de gestion d’entreprise fonctionne sur un nombre
très limité de plate-formes. Si le client dispose déjà d’un système informatique à base de
Xavier Moghrabi
— Année universitaire : 2002-2003 —
22
L’approche Model-Driven Architecture, crédible pour développer un progiciel de gestion intégré
middleware, il souhaiterait sûrement utiliser sa plateforme, qu’il maı̂trise, pour son erp.
Une société éditant un erp pour plusieurs plate-formes élargit par ailleurs sa cible de marché. De plus, la méthodologie mda disposera de moyens pour rendre interopérable l’erp
avec des systèmes d’information développés sur d’autres plate-formes. En effet, le mda
prévoit de générer une solution aux collaborations entre les middleware. Cette fonctionnalité permettra de répondre aux problèmes techniques d’interopérabilité entre erp. De
plus, une entreprise qui souhaite utiliser des produits modulables provenant de différents
éditeurs pourra plus facilement les intégrer.
La transformation de pim en pim évoquée dans le premier chapitre pourrait être utile
pour adapter un modèle générique aux besoins métiers spécifiques d’une entreprise. Cette
approche permettrait, à partir d’une solution logicielle générique, d’établir le système d’information spécifique à une entreprise.
La mda propose des avantages pour la construction et l’intégration de l’erp au sein du
système d’information de l’entreprise. L’approche mda permet d’ouvrir le progiciel vers
des systèmes extérieurs.
2.2
La méthode de développement
Le mda ne décrit pas une méthodologie de développement logiciel ou de suivi d’exploitation. Pour qu’il soit applicable, il lui faut une méthode qui puisse lui être couplée.
2.2.1
La MDA face aux méthodes agiles
Philippe Saint Martin montre le décalage entre une des méthodes “agiles”, l’eXtrem
Programming (XP) et l’approche mda [19]. L’examen plus poussé des caractéristiques de
cette famille de méthodes incite à la circonspection. La frénésie entourant les projets de
la nouvelle économie a fait le lit de l’XP et de ses consœurs. Le raz-de-marée du Web a
triomphé des dernières réticences méthodologiques, faisant allègrement sauter les verrous
de la sûreté de développement logiciel. Une fois cette tendance aseptisée, le concept s’est
avéré fertile que sur une minorité de projets.
L’XP est d’une efficacité remarquable pour autant que le projet présente un ensemble
spécifique de facteurs de réussite, aisément réunis sur les projets à faibles contraintes
contractuelles et de taille raisonnable, beaucoup plus difficilement sur les autres. La première génération des applications Internet respectaient ce cahier des charges. Les applications Web, cantonnées au rôle de vitrine commerciale, ne nécessitaient pas le recours à une
méthodologie stricte, d’autant plus que les utilisateurs pouvaient difficilement établir des
besoins précis. Aujourd’hui, les utilisateurs ont pris la mesure du phénomène et réclament
l’intégration du système d’information dans les projets. Ces nouvelles ambitions affichées
par les donneurs d’ordre, bouleversent profondément la nature des projets, invalidant ainsi
la pertinence du recours aux méthodes agiles.
Mais faisons abstraction des conditions optimales requises sur les projets agiles et poussons plus avant l’examen des fondements théoriques sur lesquels s’appuient ces méthodes.
Nous ne pouvons alors nous empêcher d’éprouver une pointe de scepticisme. En fait d’agilité, elles requièrent de véritables talents d’acrobates de la part d’un développeur. À l’aise,
aussi bien dans le recueil des besoins, que dans la modélisation conceptuelle, ou encore
Xavier Moghrabi
— Année universitaire : 2002-2003 —
23
L’approche Model-Driven Architecture, crédible pour développer un progiciel de gestion intégré
dans la maı̂trise des dernières technologies à la mode et des nombreux outils y afférents, le
programmeur allie qualités communicationnelles avec esprit d’analyse et logique programmatique. Un grand écart disciplinaire qui nous fait penser que ce mouton à cinq pattes
n’est pas très largement répandu dans le landernau du Génie Logiciel. On n’est guère surpris d’apprendre que les fondements de l’XP reposent sur douze principes fondamentaux
dont certains relèvent de l’épreuve de force. En fait, on constate dans la pratique que cette
méthode requiert de la part du programmeur une agilité implicite, qui lui fait souvent
défaut à ses débuts professionnels. Ceci illustre un paradoxe ! La méthode censée suppléer
au manque d’expérience du programmeur exige au contraire, de sa part, une compétence
pré-requise. D’ailleurs, les mieux armés pour le maniement de ces méthodes sont d’ailleurs
les anciens utilisateurs des méthodes traditionnelles.
L’XP participe d’une nouvelle génération de méthodes, plus proches des attentes du
développeur, ce qui la rend plus productive. Le succès d’une telle entreprise implique une
confiance aveugle dans le professionnalisme des développeurs et dans leurs réelles motivations à appliquer les principes de l’agile. Tout repose sur les capacités des programmeurs
à s’imprégner de la démarche. On attend qu’ils programment simplement, efficacement,
proprement, en duo et produisent la documentation qu’ils jugent suffisante. Ils ne doivent
pas hésiter pas à casser le code pour l’améliorer. C’est reléguer la psychologie comportementale au second plan et oublier un peu la rétivité naturelle dont nous faisons tous
preuve, à l’idée de modifier du code qui fonctionne.
Cette position prend le contre-pied des intentions originelles du Génie Logiciel pour
qui l’activité de développement devait être cadrée et canalisée. Plus grave, que dire de
l’approche mda dans un tel cadre organisationnel ? Comment espérer l’émergence d’un
consensus de règles de transformation dans un tel contexte ? Le programmeur, livré à luimême, ne sera pas enclin naturellement à produire les pim sur lesquels repose toute la mise
en œuvre des processus de transformation. En laissant un large champ de manœuvre aux
développeurs, ne risque-t-on pas de retomber dans les travers de l’informatique des années
1970 ?
Il se dégage de cette analyse que les méthodes agiles, trouvent un terrain d’expression
favorable dans une frange limitée de projets informatiques : les projets à taille raisonnable,
soumis à des conditions idylliques de coopération entre utilisateurs et développeurs. Dans
tout autre contexte, comme celui du forfait par exemple, l’application scrupuleuse des
principes de l’agile serait illusoire et aboutirait à un échec retentissant. Dans des conditions de projets extrêmes, la dénomination de méthodes “fragiles” semble mieux convenir
à cette catégorie de démarches. Toutefois, certains principes exposés par ces méthodes
restent pertinents, pour peu qu’ils soient intégrés à une approche plus globale telle qu’une
implémentation de l’Unified Process - UP.
2.2.2
La révision du cycle en Y
La proposition mda donne l’occasion de revisiter le cycle en Y de développement, dans
un contexte plus normatif. C’est un corollaire des objectifs du mda. C’est l’aboutissement
des promesses faites lors de l’arrivée des technologies orientées objet où l’on avait annoncé
la mutation du travail de l’ingénieur informaticien vers un travail d’assemblage de deux
types d’entités :
– les composants métiers issus d’une analyse neutre du domaine et
Xavier Moghrabi
— Année universitaire : 2002-2003 —
24
L’approche Model-Driven Architecture, crédible pour développer un progiciel de gestion intégré
Fig. 2.2 – Le cycle Y dans le mda
– les composants plate-formes issus de la technologie informatique de mise en œuvre.
Le fait que ces deux types de composants puissent être modélisés par le même formalisme (uml) et implémentés dans le même langage de programmation (Java par exemple)
facilite leur séparation puis leur assemblage. L’existence d’une base de composants réutilisables et validés, pour la plate-forme aussi bien que pour le domaine, est maintenant
bien acceptée. Le principe du cycle en Y s’est lui-même progressivement imposé, séparant
les spécifications fonctionnelles de l’architecture logicielle et applicative. Valtech a créé à
partir du cycle en Y la méthode 2 Track UP.
Le pari de l’omg avec le mda consiste à dire que le cap de l’intuition dans le déploiement du cycle en Y est maintenant en cours d’être dépassé et que l’on est en mesure de
commencer à penser à l’automatisation. Les problèmes de formalismes étant à peu près
maı̂trisés avec les méta-modèles et les profils. Il est maintenant envisageable des automatisations partielles de la synthèse des deux branches du Y. L’expérience acquise, avec la
culture des design pattern, doit pouvoir commencer à alimenter les outils industriels. La
figure 2.2, de la page 25, illustre le cycle en Y dans le mda.
Les modèles cim et pim se situent sur la branche de gauche qui constitue la logique
métier et l’implémentation fonctionnelle de cette logique. La branche de droite est propre
à la plate-forme cible. Elle correspond au pdm. En fait, ce modèle sert à décrire les caractéristiques de la technologie utilisée. Ce modèle devrait être fournit par le créateur de la
plate-forme. Le professeur Bézivin [20] a identifié un modèle qu’il a nommé DDM pour
Design Decision Model correspond plus à un modèle intermédiaire construit à partir d’une
opération de mélange des modèles pim de pdm. Le passage du DDM au psm serait alors
une étape de configuration et finition. De ce modèle, le code d’implémentation est généré.
Même si les trois branches du Y sont parsemées de modèles basés sur des méta-modèles
sémantiquement très précis, elles doivent être encore étudiées pour que l’on puisse annoncer
une avancée des pratiques industrielles. Cependant, il est fort souhaitable de remarquer
que l’initiative ne se situe pas en rupture avec les pratiques de production logicielle. Elle
constitue une évolution en continuité et en consolidation.
Xavier Moghrabi
— Année universitaire : 2002-2003 —
25
L’approche Model-Driven Architecture, crédible pour développer un progiciel de gestion intégré
Fig. 2.3 – Le cycle de vie de l’EUP
2.2.3
Une nouvelle implémentation du processus unifié : EUP
L’EUP, pour Enterprise Unified Process, (Ambler 2001) est une instanciation de l’UP
(Jacobson, Booch et Rumbaugh 1999), à l’instat du RUP, Rational UP, (Kruchten
2000). Comme on peut le voir sur la figure 2.3, de la page 26, représentant les phases
de l’EUP, il n’est qu’une extension du RUP. Ce dernier se focalise sur le processus de
développement logiciel alors que l’EUP inclut une phase de production pendant laquelle
l’application fonctionne et est suivie par la maintenance. Plus important encore, l’EUP
inclut une discipline de gestion de l’infrastructure qui comprend des activités transversales
telle que la gestion de la réutilisation, la gestion de programme, la gestion du processus
logiciel et l’architecture de l’entreprise pour n’en citer que quelques-uns. En rétrospection,
un nom qui convient plus à cette discipline est la gestion de l’entreprise.
La plus importante force de l’EUP est qu’il apporte explicitement les thèmes de l’architecture d’entreprise et de l’administration d’entreprise au RUP. Ceci est important car
le RUP est le plus populaire et rigoureux processus logiciel de l’industrie des technologies
de l’information. Ainsi l’EUP a un potentiel d’impact fort dans cette industrie. Il montre
comment inclure des problèmes d’entreprise dans les activités de développement logiciel,
un sujet sur lequel beaucoup d’organisations travaillent [15].
Toutefois, il faut émettre quelques réserves concernant l’EUP. Cette méthode dérivée
de l’UP est largement moins répandue que le RUP et manque de soutien de la part de
l’industrie logicielle. Bien que le RUP a gagné une reconnaissance suffisante de l’industrie,
l’EUP doit encore séduire. Cela est dû à plusieurs raisons. Tout d’abord, l’entreprise IBM
Rational ne soutient pas l’EUP car ne le considère pas comme une extension valide. La
société le ferait peut-être un jour en développement des extensions avec ses outils. Ensuite,
de nombreuses organisations sont en train de lutter pour réussir le développement de systèmes uniques. Elles ne souhaitent pas s’attaquer aux problèmes au niveau de l’entreprise
mais se limitent au système.
Xavier Moghrabi
— Année universitaire : 2002-2003 —
26
L’approche Model-Driven Architecture, crédible pour développer un progiciel de gestion intégré
L’EUP est typiquement instancié comme un processus normatif et rigoureux, mais pas
comme un processus agile. Sa force est qu’il s’agit d’un processus bien défini et rigoureux.
Bien qu’il soit possible de l’adapter tel un processus agile, cette démarche est rarement réalisée en pratique avec le RUP. Les organisations qui s’intéressent aux processus rigoureux
tendent vers l’adoption du RUP. Celles qui sont intéréssées pour être agiles tendent vers
les processus agiles tels que XP, FDD (Feature-Driven Developpement) ou encore DSDM
(Dynamic System Development Method). En conséquence, comme l’EUP est une extension du RUP, il est très probable qu’il soit également instancié d’une manière normative.
Cela aboutit sur un processus doté d’une lourde documentation qui ne correspond pas bien
aux efforts des entreprises pour bâtir une architecture agile. Une instanciation de l’EUP
de manière agile pourrait résoudre ce problème.
L’EUP est plus adapté pour adopter une démarche mda du fait de la présence des
phases d’exploitation et de retrait. En fait, ces phases permettent de gérer l’ensemble du
cycle de vie d’une application. Le mda est une approche qui consiste à fournir un modèle
métier pérenne ainsi qu’un modèle technique dont l’espérance d’exploitation dépend de la
technologie sous-jacente. Pour un même modèle métier, plusieurs modèles techniques sont
réalisés selon l’avancée des technologies. De ce fait, un travail est demandé en exploitation
sur la plupart des disciplines hormis la modélisation métier afin d’accompagner l’évolution
des technologies.
2.3
Détail d’un système d’information utilisant la philosophie du MDA
Sur le site de l’omg, il est possible de trouver une page relatant des “success story”. L’une d’entre elle concerne le système d’information de la banque américaine Wells
Fargo. Elle est détaillée par Paul Harmon, un consultant senior d’architectures distribuées de Cutter Consortium [21].
2.3.1
Le système d’information de la banque Wells Fargo
La banque Wells Fargo a été classée par le Business Week comme la quatrième
plus grande banque des États Unis d’Amérique. Pendant ces dix dernières années, cette
banque s’est faite la réputation d’avoir une stratégie agressive du fait d’avoir acquis et intégré d’autres banques pour créer une organisation de services financiers croissante. Cette
stratégie a généré un challenge pour le système d’information de la compagnie. En effet,
chaque année le système d’information a été modifié pour incorporer les applications existantes et les bases de données des sociétés absorbées à l’architecture logicielle complexe du
groupe. Ce dernier s’est établi une réputation méritée d’être sophistiqué dans son approche
d’intégration de systèmes.
Le service informatique du groupe utilise Corba depuis une dizaine d’années et a
récolté des résultats significatifs dans son approche middleware. Récemment, il a commencé à développer une nouvelle approche architecturale pour assurer l’intégration de son
middleware avec les nouvelles technologies et approches d’intégration. L’équipe BOS
(Business Object Services) est responsable de la maintenance de tous les middleware
et des serveurs utilisés pour lier les applications aux systèmes existants et aux données.
La figure 2.4, de la page 28, montre l’architecture du système que l’équipe BOS crée et
Xavier Moghrabi
— Année universitaire : 2002-2003 —
27
L’approche Model-Driven Architecture, crédible pour développer un progiciel de gestion intégré
Fig. 2.4 – L’architecture logicielle de Wells Fargo et le rôle du BOS
maintient.
L’équipe BOS s’occupe de la partie middleware et des applications permettant de
faire le lien entre les systèmes hétérogènes et les applications clientes. Pour affronter la
complexité du système, l’équipe BOS utilise la philosophie du mda. Elle a créé un model métier unique, équivalent du pim. Il est maintenu en utilisant des outils classiques
de modélisation qui permettent aux développeurs de Wells Fargo de générer le code
d’implémentation. En maintenant ce modèle indépendamment des technologies d’une plateforme spécifique, l’équipe peut intégrer plusieurs technologies ou changer de technologie
sans impacter les modèles d’abstraction.
2.3.2
L’environnement des traitements
La figure 2.5, de la page 29, illustre la complexité physique de l’environnement métier
des traitements avec les différentes plate-formes. Un orb Corba, l’ObjectBroker de BEA,
est utilisé pour gérer les interactions entre les composants et les applications tournant sur
les différentes plate-formes.
Wells Fargo a de nombreuses applications basées sur des mainframe et de nombreuses applications clientes basées sur des environnements Windows, Linux ou Unix. La
société dispose de systèmes Unix pour les SGBD, Oracle et Informix, et un système d’intégration du téléphone. Par dessus tout, la société nécessite que tous ses systèmes soient
capables de manipuler un grand volume de processus, soient très fiables et aient des temps
de réponse très courts.
Xavier Moghrabi
— Année universitaire : 2002-2003 —
28
L’approche Model-Driven Architecture, crédible pour développer un progiciel de gestion intégré
Fig. 2.5 – L’environnement de traitement du BOS de Wells Fargo
Pour répondre à ces exigences, la banque a choisi Corba pour relier les mainframe
aux clients. L’ensemble de l’architecture du système est hétérogène. Le milieu du système
encapsule des systèmes différents et fournit un environnement distribué pour les applications clientes. Il s’agit d’un framework objet qui normalise les différents systèmes dans
un modèle d’entreprise commun. Ce modèle d’entreprise est décrit selon le mda. Il est
également exprimé en interfaces Corba pour les développeurs de l’application. Le framework est indépendant de la plate-forme, du langage et basé sur le mda et Corba.
Le modèle métier est représenté à l’aide du logiciel de modélisation Rational Rose. Ce
modèle métier objet fournit une spécification logique détaillée des composants et de la
façon dont ils interagissent, incluant les messages échangés. Wells Fargo peut générer
le code des interfaces idl pour des modèles. En d’autres mots, l’équipe BOS a fournit
des interfaces flexibles pour faire communiquer des systèmes inflexibles. Cela permet de
rapidement et facilement changer la technologie sur-jacente.
2.3.3
Le développement à base de modèles
Des applications en ligne de la société sont créées par les équipes de développement
divisées en trois groupes : le groupe client qui développe la partie Internet, le groupe BOS
et l’organisation du systèmes qui maintient les systèmes de données. Le groupe BOS contribue au modèle métier uml, qui définit les objets métiers, les interfaces et l’infrastructure
du middleware pour le projet. L’application actuelle est créée par réutilisation d’objets
définis dans l’infrastructure du BOS et, dans certains cas, par extension de ces objets.
Xavier Moghrabi
— Année universitaire : 2002-2003 —
29
L’approche Model-Driven Architecture, crédible pour développer un progiciel de gestion intégré
Fig. 2.6 – Création et maintenance de l’environnement middleware à partir du modèle
Les développeurs créent les diagrammes uml qui décrivent l’application spécifique. Ensuite, ils génèrent le code des messages en idl, qui sont utilisés pour générer l’adressage
dynamique de Corba pour la transmission de messages entre les composants.
Le travail réalisé donne un bon exemple d’une approche mda au développement logiciel.
L’équipe BOS s’est spécialisée dans la maintenance du modèle objet métier. L’équipe de
développement utilise ce modèle pour obtenir l’architecture générale pour concevoir leurs
applications. Plus tard, elle utilise le modèle de conception pour générer les messages pour
les composants qui seront utilisés. Les architectes du BOS et les développeurs dépendent
tous les deux des modèles uml pour joindre leurs efforts et communiquer avec un même
langage.
L’environnement de développement a été divisé pour supporter une approchée centrée
sur le modèle. Tout d’abord, l’équipe BOS définit le cim dénommé aussi modèle métier.
L’équipe de développement crée le pim ou modèle de conception. Duquel, est généré le
modèle d’implémentation psm. Ce dernier est utilisé pour générer le code de l’application.
Du code supplémentaire doit être incorporé pour implémenter complètement la logique
métier. La figure 2.6, de la page 30, illustre l’utilsation les modèles uml pour générer et
maintenir son environnement middleware.
Dans cet exemple, un modèle uml définit les relations entre les applications clientes, le
serveur et le support de données. Il décrit les appels et les réponses entre ces trois parties
Xavier Moghrabi
— Année universitaire : 2002-2003 —
30
L’approche Model-Driven Architecture, crédible pour développer un progiciel de gestion intégré
du système. Une fois créé ou modifié, l’outil uml génère le code pour l’utilisation dans un
environnement middleware. Depuis que la banque utilise Corba, le modèle génère du
code Corba, soit des interfaces idl et l’adressage, aussi bien que les objets utiles pour
supporter les liaisons entre les systèmes.
2.3.4
Le MDA fournit une passerelle pour le futur
Cette expérience comparable à la philosophie du mda a montré que quelques programmeurs ont résisté à cette approche. La plupart des acteurs impliqués se rendent compte
que le processus de développement est plus rapide en utilisant l’éditeur de modèle au lieu
de la faire manuellement. Le temps de programmation est significativement réduit, entre
50 et 80 %, grâce à la génération d’une partie du code par les outils.
D’un autre côté, la phase de spécification est plus longue, d’environ 20 %, puisque le
développeur est forcé d’identifier totalement et précisément tous les attributs et relations
des entités du modèle et de les définir. . . Une fois familiarisés avec l’outil, les développeurs
deviennent productifs. Un long chemin est à parcourir pour qu’ils aient le sentiment qu’il
s’agit d’un moyen naturel pour exprimer leurs idées.
Les réels bénéfices de l’approche apparaissent lorsque les équipes commencent à étendre
ou améliorer l’application. Comme l’application est une transformation du modèle, et vice
versa, cela limite les problèmes de synchronisation. Les analystes commencent les prochains
projets en utilisant les informations de la conception du précédent projet. Ils obtiennent
ainsi une description précise des fonctionnalités du système pensé par les précédents développeurs.
Parallèlement, Wells Fargo expérimente des technologies Java avancées (ejb, RMI)
et les services web. La société étude la possibilité de migrer technologiquement. Cette
option est motivée par le fait que l’environnement middleware est déjà décrit en uml
sans être lié à une plate-forme particulière et que ces technologies se répandent largement
grâce à leur facilité relative de mise en œuvre face à Corba.
Le mda rend plus accessible la migration technologique d’un système ou la construction de systèmes mélangeant plusieurs technologies. Le système des données n’est pas prêt
d’être changé et beaucoup de liaisons resteront, même si une nouvelle technologie est ajoutée. Le mda fournit, des ponts entre plusieurs technologies et assure qu’ils peuvent être
gérés par un modèle commun.
Le vice président en charge du projet BOS affirme que l’approche mda est validé par
leur direction. Il croit qu’une norme ouverte sur l’industrie comme le mda sera bénéfique à
l’ensemble des industries. Celles-ci l’adopteront fortement pour l’imposer comme un standard.
La mda paraı̂t adapter pour la construction et l’intégration de systèmes de gestion. Naturellement, il peut être utilisé pour développer un erp. Il demande toutefois l’acquisition
d’outils et la réorganisation du personnel. Le cycle en Y semble adapté mais sans soutien
d’un acteur puissant, il ne sera pas facile à utiliser. L’expérience de la Wells Fargo
montre que le mda résout des problèmes d’hétérogénéité du système d’information.
Xavier Moghrabi
— Année universitaire : 2002-2003 —
31
Chapitre 3
Les perspectives de cette approche
logicielle
Ce chapitre tentera de prédire les perspectives du mda et l’engouement de l’industrie
logicielle. Pour cela, nous utiliserons une étude sur la productivité du mda face au développement traditionnel pour avoir une idée de l’ampleur du gain. Ensuite, nous déterminerons
si le mda pourra s’imposer comme un standard dans l’approche par modèles.
3.1
Étude de productivité de la démarche MDA
Cette étude vise établir la vérité sur le gain de productivité prôné par l’omg. Pour cela,
deux équipes ont développé la même application mais avec des approches divergentes.
3.1.1
Les différences entre les approches MDA et traditionnelle
Nous avons mentionné à diverses reprises que le mda génère le code d’implémentation
à partir des modèles uml. Ceci existait déjà avant le mda. L’outil Rational Rose peut, par
exemple, générer des classes Java à partir du diagramme de classes. L’avantage majeur
de l’approche mda est qu’elle se base sur une abstraction indépendante de la plate-forme
pour créer complètement le code spécifique à la plate-forme.
Plusieurs différences sont à mettre en valeur comme :
– Le mda débute sur un plus haut niveau d’abstraction que les méthodes traditionnelles. Le modèle cim est le plus haut niveau d’abstraction représentant le logique
métier et le pim, le fonctionnement des entités et des services.
– Le psm est une description complète de l’application sous la forme de méta-données.
À ce niveau, le modèle est enrichi de parties spécifiques à la technologie.
– Le code, généré à partir du psm, est proche de l’application finale. Beaucoup d’outils
génèrent du code de quelques types de modèle, mais ils ne donnent que des morceaux
de l’application. Ils sont inutilisables directement car ils ne sont pas basés sur un
méta-modèle complet.
– Les algorithmes qui transforment le pim en psm et le psm en code sont configurables
par l’architecte grâce à l’utilisation de méta-modèles.
Les organisations de l’omg pensent que cette nouvelle directive aura des retombées
bénéfiques pour l’industrie logicielle concernant :
Xavier Moghrabi
— Année universitaire : 2002-2003 —
32
L’approche Model-Driven Architecture, crédible pour développer un progiciel de gestion intégré
– l’accélération du développement logiciel : Grâce à l’automatisation des transformations et des générations de code, le travail du développeur est réduit.
– les avantages architecturaux : Le mda se focalise sur la modélisation en uml tout
au long de la chaı̂ne méthodologique. Cette démarche force à penser correctement
l’architecture et le modèle objet derrière le système. Actuellement certains développements négligent la phase de modélisation et laissent au soin des développeurs la
réalisation d’un code qui fonctionne.
– l’amélioration de la maintenabilité et de la consistance du code : En utilisant
la génération de code par l’outil, le codage est ainsi plus homogène. Lors d’un développement classique, certains développeurs utilisent des design pattern et d’autres
non. Ce point améliore la maintenance du code car les développeurs comprennent
plus facilement le code généré que celui qu’ils n’ont pas écrit. De plus, les modèles
facilitent le suivi du système.
– l’amélioration de la portabilité entre middleware : Le changement d’un middleware à un autre est facilité grâce au pim et aux outils de transformation. Ceci
est d’autant plus vrai que le mda fournira des passerelles entre les plate-formes.
L’attente des industries se situe principalement sur le premier point cité. Le mda se
focalise sur la productivité et la maintenabilité. L’omg montre que les gains attendus par
l’adoption du mda sont la réduction des coûts de fonctionnement, du temps de développement, l’augmentation du retour sur investissement et l’intégration rapide de nouvelles
technologies dans un système existant.
3.1.2
Description de l’objectif de l’étude
Pour vérifier la prétention d’accélérer le développement logiciel avec le mda, le société américaine Compuware Corporation a commissionné le cabinet de conseil The
Middleware Company pour réaliser une étude de cas. Deux équipes équivalentes ont
développé la même application. L’une a respecté une démarche mda, l’autre non. Cette
étude a été faite sérieusement et de manière objective selon les deux sociétés impliquées
[22].
Les deux entités ont choisi de développer l’application mondialement connue, “Petstore” en j2ee. Initialement réalisée par Sun Microsystems, cette application illustrait
l’utilisation des composants ejb. “Petstore” présente l’avantage d’être une application assez
simple et connue par l’ensemble de la communauté de développeurs Java. Pour le lecteur
qui n’est pas forcément familier avec “Petstore”, il s’agit d’un simple système de commerce
électronique d’animaux domestiques.
Sans détailler les 46 pages de spécifications, le “Petstore” implémenté disposera les
fonctionnalités suivantes :
– la sécurité et la gestion des utilisateurs : les utilisateur s’inscrivent dans le
système et peuvent gérer leur compte ;
– le catalogue des produits : les utilisateurs peuvent naviguer sur le catalogue des
animaux du site (oiseaux, poissons, reptiles,. . .) ;
– les fonctionnalités du panier : les utilisateurs peuvent ajouter des articles dans
leur panier et le gérer ;
– les fonctionnalités de commande : les utilisateurs peuvent commander le contenu
de leur panier ;
Xavier Moghrabi
— Année universitaire : 2002-2003 —
33
L’approche Model-Driven Architecture, crédible pour développer un progiciel de gestion intégré
– les services web : les utilisateurs peuvent suivre leurs commandes via un Service
Web. Le “Petstore” original a été étendu pour inclure cette technologie, émergente
et intéressante.
Pour une perspective des technologies utilisées, l’application inclut :
– un client léger, un navigateur Web interprétant le HTML pour l’interface utilisateur,
– des pages jsp pour générer le code HTML sur le serveur Web,
– un accès aux données basé sur sql et jdbc,
– des composants ejb pour les contrôles et les entités,
– la recherche dans la base de données,
– des transactions à la base de données pour éviter les erreurs d’enregistrement,
– la gestion des sessions clientes,
– des services web et
– un formulaire d’authentification.
L’application “Petstore” originale ne proposait pas de spécifications mais n’était qu’un
exemple d’utilisation de la plate-forme j2ee. Le développement de l’application ne s’inspirera pas de celle existante car cette dernière ne présentait pas une architecture bien conçue.
En plus des résultats, l’annexe B décrit le déroulement du projet pour chacune des deux
équipes.
3.1.3
L’analyse architecturale du système
Les deux équipes ont créé des diagrammes uml pour les modèles. En fait, il s’est avéré
que ces modèles étaient assez similaires. Chacun avait des classes d’abstraction pour les
comptes clients, les informations des clients, les produits, les catégories de produits, les
fournisseurs, le panier, les commandes et ses lignes.
L’équipe traditionnelle a créé des modèles uml strictement pour la conception et la
communication. Elle n’a pas généré automatiquement le code j2ee de ces modèles. Toutefois, elle a utilisé les “wizards” (outil d’aide à la réalisation) d’un environnement de
développement intégré pour les méthodes de base des ejb, les composants, l’adressage, le
traitement des exceptions et les interfaces.
L’équipe mda a créé les modèles pim et psm. Le code généré automatiquement était
plus important que celui de l’équipe précédente grâce à un outil supportant le mda. Ce
code inclut les jsp, l’ensemble des composants ejb, l’adressage, le traitement des exceptions et les interfaces.
La partie Web des deux équipes comprenait des servlet et jsp. Elles se sont appuyées
sur le framework Struts d’Apache Jakarta pour la navigation. Il s’agit d’un framework libre répandu pour bâtir des applications Web j2ee. Elles ont utilisé le paradigme
de conception MVC (Model-View-Controller) qui automatise la construction du code.
D’un point de vue architectural, la différence entre les deux équipes concerne les pattern utilisés. Le tableau de la figure 3.1, de la page 35, présente les design pattern mis
en œuvre. Les deux équipes ont des bonnes notions pour utiliser ces design pattern j2ee.
Bien que ces pattern n’aient pas été utilisés dans l’application originale, leur utilisation
place ce projet dans un développement concret. Ainsi la comparaison de productivité sera
Xavier Moghrabi
— Année universitaire : 2002-2003 —
34
L’approche Model-Driven Architecture, crédible pour développer un progiciel de gestion intégré
Pattern
Session-entity wrapper
Génération de clefs primaires des EJB
Business delegate
Data Transfert Objects (DTO)
Custum DTO
DTO Factory
Service locator
JDBC for Reading via Data Access Objects (DAO)
Business interface
Model-Driven Architecture
Équipe trad.
Oui
Oui
Oui
Oui
Oui
Oui
Oui
Oui
Oui
Non
Équipe MDA
Oui
Oui
Oui
Oui
Oui
Non
Non
Non
Non
Oui
Fig. 3.1 – Liste des design pattern utilisés par chaque équipe
plus pertinente. L’annexe C détaille plus précisément chacun de ces pattern.
L’équipe traditionnelle a utilisé plus de pattern que celle mda. On peut naturellement
penser que le code développé par la première équipe prendra plus de temps, en fonction
du nombre de pattern utilisés. Pour valider cette idée, il est intéressant de se préoccuper
de chaque pattern supplémentaire. Après avoir réaliser des recherches, le groupe chargé de
l’étude conclut que, même en utilisant plus de pattern, la comparaison reste toujours valide.
Pour comprendre cette conclusion, il est judicieux de détailler le travail engendré par
chaque pattern supplémentaire :
– Le pattern service locator ne demande pas à l’équipe traditionnelle du travail
supplémentaire. En fait, cela leur a fait économiser du temps. En effet, il simplifie
l’écriture du code pour la communication entre jsp/ejb et ejb/ejb. Le nombre
de lignes a été réduit par rapport à une implémentation classique d’une unique
classe avec des méthodes statiques. Tous les accès aux ejb ont été réalisés avec cette
méthode.
– Le pattern JDBC for Reading via DOA a nécessité du temps à l’implémentation.
Toutefois, sans l’utiliser, l’équipe aurait dû écrire des ejb entités au lieu de générer
des DOA. En contrepartie, l’équipe mda a écrit du code pour trier les données
manuellement, fonction réalisée par ce pattern.
– Le pattern business interface ne fût pas une source de travail supplémentaire. Selon l’équipe traditionnelle, cela prend approximativement dix minutes par interface.
L’équipe mda doit également créer ses interfaces, d’un niveau d’abstraction plus
élevé.
– Le pattern DTO Factory n’a demandé qu’une faible durée d’implémentation et de
test. Il économise du temps car le code est réduit.
L’utilisation de pattern accélère en fait le développement tout en améliorant l’architecture logique. En fait, l’utilisation d’un nombre de pattern plus élevé par l’équipe traditionnelle peut se comprendre par le fait qu’elle comprend un expert des pattern j2ee,
Owen Taylor.
En grande partie, les deux applications étaient très proches. La franche divergence est
observable au niveau de la sécurité. L’équipe traditionnelle a utilisé des filtres d’accès. Ce
Xavier Moghrabi
— Année universitaire : 2002-2003 —
35
L’approche Model-Driven Architecture, crédible pour développer un progiciel de gestion intégré
Équipe
Équipe traditionelle
Équipe MDA
Temps prévu
499 h
442 h
Temps réel
507,5 h
330 h
Fig. 3.2 – Temps de développement consommé par chaque équipe
système vérifie si la page restreinte et si l’utilisateur est enregistré. L’équipe a développé
entièrement ce filtre.
L’équipe mda a utilisé son outil mda pour développer la sécurité. Plusieurs framework sont disponibles permettant de choisir parmi différentes méthodes d’authentification.
3.1.4
Les résultats quantitatifs
Le tableau de la figure 3.2, de la page 36, contient le nombre d’heures de développement
dépensées par chacune des équipes.
Comme vous pouvez le voir, l’équipe mda est clairement le vainqueur de cette étude de
productivité. Le gain par rapport à un développement classique est de 34 %. L’équipe mda
a même surperformé ses estimations sur le temps initialement prévu. Le gain relatif semble
augmenté proportionnellement à la taille du projet. Les analystes de The Middleware
Company attribuent cette constatation au fait que les développeurs doivent avoir une
période pour se familiariser avec les outils mda, puisqu’il s’agit d’un nouveau paradigme.
Ainsi un programmeur de l’équipe mda pense qu’il aurait pu réaliser son travail de 10 à
20 % plus rapidement avec plus d’expérience puisqu’il s’agissait de son premier projet mda.
Toutefois dans cette étude, il n’a pas été mentionné le point récurrent à la programmation : la recherche de bogues. Des tests à partir de scénarii ont été réalisés. Plusieurs
bogues ont été trouvés pour l’application développée par l’équipe traditionnelle et aucun
pour celle mda. Les analystes pensent que cela est dû à la cohérence du code généré par
les outils mda.
3.1.5
Conclusion de l’étude de productivité
En se basant sur les résultats de cette étude, les analystes de The Middleware Company ont été impressionnés par le gain de productivité de l’équipe qui a expérimenté le
mda. Ils encouragent les organisations qui souhaitent améliorer la productivité des analystes et développeurs d’évaluer les outils mda pour leurs projets. Les organisations visées
sont principalement les entreprises qui développent des applications à base d’objets, de
composants et de services web. Un temps d’adaptation est nécessaire aux acteurs pour
comprendre et maı̂triser cette approche. Les gains de productivité demande un effort significatif mais louable pour les applications ultérieures.
L’approche mda a également d’autres vertus. Par exemple, le pim a une durée de vie
très longue ce qui rentabilise le travail sur ce modèle. Lors du développement, il incombe
aux acteurs de créer les modèles d’objets métiers qui survivent aux successions technologiques et durent de nombreuses années. Le suivi du modèle pim permet de modifier les
fonctionnalités ou la logique métier de l’application. Ce modèle est un moyen indéniable
Xavier Moghrabi
— Année universitaire : 2002-2003 —
36
L’approche Model-Driven Architecture, crédible pour développer un progiciel de gestion intégré
pour bâtir un support commun de communication entre les développeurs qui utilisent des
outils ou des technologies différents.
Un autre avantage du mda est qu’il permet aux architectes de s’assurer que les programmeurs utilisent des design pattern j2ee. Les architectes peuvent réaliser cela grâce
aux outils mda qui génèrent automatiquement le code des pattern. De cette manière l’utilisation de pattern devient une part naturelle du travail des programmeurs.
Les analystes de l’étude arrivent toutefois au constat que le mda est bien utilisé si des
architectes expérimentés conduisent les projets. L’équipe doit obligatoirement connaı̂tre
et maı̂triser les pattern et les bonnes pratiques du développement orienté objet. Le fort
engagement d’architectes est indispensables.
Finalement, en ce qui concerne la qualité du code, il s’est avéré que les résultats de
l’équipe mda surpassaient ceux du développement traditionnel. Le code généré automatiquement via les pattern ne demandaient pas des phases de correction de bogues et de
nouveaux tests.
Il est intéressant de noter que le mda possède d’autres intérêts qui n’ont pas été mis en
valeur par cette étude, comme la maintenabilité et les performances de l’application. Les
analystes ont procédé à quelques tests de performances basiques pour déterminer que les
deux applications étaient assez comparables. Pour la maintenabilité, les analystes ont expérimenté la modification du code de l’application utilisant le mda. En fait, ce changement
se répercute sur les modèles uml par reverse engineering puis le mda régénère le code à
partir des modèles modifiés. Le suivi de l’application est ainsi facilité. Concernant l’analyse
des différences entre les codages manuel et automatique, The Middleware Company
nous promet une deuxième étude qui s’attaquera aux contextes de la performance, de la
maintenabilité et d’autres aspects de l’application.
Le mda propose ainsi des avantages indéniables face aux méthodes traditionnelles mais
nécessite une équipe de développement expérimentée sur la conception de modèles et l’utilisation de design pattern. Les nombreuses entreprises ne possèdent pas ces compétences
en interne. La plupart du temps, elles sont composées de beaucoup de développeurs non familiarisés avec ces concepts. Pour elles, suivre une approche mda est compliquée en raison
du manque de compétences dans l’architecture et l’approche par modèle. Pour prouver que
le gain de productivité est général en abordant une approche mda d’autres études doivent
être menées sur plusieurs types d’applications.
3.2
Vers un nouveau standard de développement logiciel
Le mda semble prometteur même si l’approche est loin d’être finalisée. Mais il nous
semble que l’engouement actuel vers les techniques de modélisation peut jouer en faveur
de celui-ci.
3.2.1
L’approche MDA, évolution ou révolution ?
L’approche mda est un important changement de paradigme, des objets aux modèles,
d’une approche interprétative vers une approche générative. Comme Monsieur Jourdain
qui découvrait qu’il faisait toujours de la prose sans le savoir, beaucoup de gens découvrent
Xavier Moghrabi
— Année universitaire : 2002-2003 —
37
L’approche Model-Driven Architecture, crédible pour développer un progiciel de gestion intégré
ou déclarent qu’ils appliquent les principes du mda depuis une dizaine d’années. Toutefois,
avec ce récent engouement pour le mouvement d’ingénierie des modèles, il semble important de clairement exprimer l’essentiel de ce nouveau moyen de conception de systèmes
d’information. Le principal avantage est de proposer aux organisations stables de pérenniser leur système information pour faciliter les phases de construction, d’exploitation et
de maintenance. Les travaux du professeur Bézevin cherchent à identifier les composants
du mda [23] et à définir précisément ce framework [24].
Le mda oblige les concepteurs à expliciter beaucoup d’habitudes de travail dans l’intention d’améliorer le processus de développement. Des démarches de développement débutent
avec la définition d’un modèle métier abstrait pour progressivement descendre au niveau
de l’application. En identifiant, la façon dont les concepteurs transposent ce modèle à celui
de l’application, il sera possible de définir des mécanismes de transformation de modèles.
La transformation de modèles existe bien avant le mda mais la norme tente de l’automatiser.
L’idée qu’un modèle est associé à un méta-modèle spécifique est un concept d’une importance primordiale. Il permet de dire que chaque modèle représente exactement un aspect
du système et de le construire à partir d’une solide base. La bonne conception d’un système
repose sur son architecture. En fournissant un méta-modèle, sa définition est alors facilitée.
Deux opérations importantes dans l’ingénierie des modèles sont la capture de l’environnement et la transformation. La capture de l’environnement représente la capture des
détails des systèmes externes dans un modèle mda précis. Cette étape est essentielle pour
l’interopérabilité du système développé avec le système d’information. Une fois ce modèle
construit, les outils de transformations automatiques ou semi-automatiques prennent le
relais pour définir les modèles successifs. La figure 3.3, de la page 39, illustre un processus
de conception avec le mda en mettant en évidence les transformations. Ce point concerne
la vraie révolution du mda.
La transformation peut être vue comme une évolution des techniques de génération de
code. Comme un programme est un modèle (son méta-modèle correspond à la grammaire),
la génération de code est un cas spécial de transformation. Il existe toutefois beaucoup plus
de sources d’inspiration lorsqu’il s’agit de transformation de modèles dans le sens mda.
La majeure partie du travail restant se trouve dans la transformation de mda et l’adaptation de cette méthode à chaque domaine particulier. Une fois arrivée à ce stade, le mda
sera plus facile à mettre en œuvre pour les industriels. Il s’agit d’une révolution dans la
conception logicielle du fait qu’un consortium tel que l’omg choisit de normaliser cette
approche. Des démarches similaires existaient auparavant mais sans norme forte, elles ne
pourront pas avoir le même impact que le mda.
3.2.2
Une approche de modélisation d’un ERP où le MDA a sa place
Face à la complexité croissante des systèmes d’information, le constat est le suivant :
– il est de plus en plus difficile d’appréhender l’univers du réel et de structurer la
connaissance,
– le risque de fossé sémantique entre l’univers réel et ses modèles est de plus en plus
Xavier Moghrabi
— Année universitaire : 2002-2003 —
38
L’approche Model-Driven Architecture, crédible pour développer un progiciel de gestion intégré
Fig. 3.3 – Capture de l’environnement et transformation de modèles
important,
– la variété des acteurs participant à la réalisation des tâches d’une entreprise et la
variété des postes de travail et des outils utilisés provoquent nécessairement une rupture sémantique tout au long de la réalisation de ces tâches.
Les travaux de recherche de Richard Lemesle [25]montrent que les techniques de modélisation et méta-modélisation répondent aux problèmes précédents. Par exemple, une
approche telle que le mda apporte un certain nombre de réponses ou tout au moins d’éléments de réponse :
– il joue le rôle de solution unifiée de représentation de modèles,
– il permet de structurer ces modèles et d’en réduire ainsi la complexité,
– il apporte une structuration modulaire de la sémantique des modèles et permet la
spécialisation de ces univers sémantiques,
– il propose des facilités de navigation, de manipulation et par conséquent de réactivité
pour les usagers,
– il propose également des facilités de transformation de modèles et d’élaboration de
ponts pour assurer la continuité sémantique et ainsi rapprocher les différents acteurs
de ces processus.
Des leurs sujets de recherche, Valérie Botta-Genoulaz [26] et Pascal Boutin [27]
ont montré l’importance de la modélisation métier dans la conception d’un erp. La modélisation d’entreprise propose de comprendre et d’analyser les processus opérationnels du
“système entreprise” grâce à un cadre de conception représenté sur la figure 3.4, de la page
40. La démarche repose sur l’aboutissement d’un modèle référence, correspondant à une
représentation conceptuelle et générique de la solution, et d’un modèle entreprise propre
au flux d’informations et processus de l’application.
Xavier Moghrabi
— Année universitaire : 2002-2003 —
39
L’approche Model-Driven Architecture, crédible pour développer un progiciel de gestion intégré
Fig. 3.4 – Architecture de modélisation d’un système d’information
Dans ses travaux de thèse, Franck Darras [3] propose de représenter ces deux modèles
avec uml. En utilisant ce formalisme commun, il compte mettre en évidence les dépendances entre les modèles. Cette démarche a pour intérêt de configurer la solution aux
besoins de l’entreprise. La représentation de la figure 3.4, de la page 40, présente l’intérêt
de décrire une méthode issue de ces travaux de conception sous la forme d’un cheminement
particulier.
Le mda peut être perçu comme une spécialisation d’une logique métier vers une plateforme d’implémentation alors que Franck Darras nous propose une double spécialisation
d’un modèle générique vers un modèle particulier à une entreprise et d’un modèle de
haut niveau d’abstraction vers une application. Toutefois, nous pouvons comparer cette
spécialisation métier à la transformation d’un pim en un second pim. Malheureusement,
cette transformation n’est a priori pas automatisable comme la transformation du pim en
psm. La spécification d’un modèle de haut niveau vers un modèle de conception peut être
comparée à une transformation d’un pim en psm. Le passage du modèle de conception à
l’implémentation correspondrait à la génération de code à partir de ce psm. Le mda peut
s’intégrer dans ce processus de développement.
En lisant l’article précité, on se rend compte que le mda permet la réalisation d’un système d’information d’entreprise à partir d’un progiciel erp générique. La tendance montre
que les systèmes de configuration des erp sont actuellement insuffisants ou coûteux en
ressources. Le concept de proposer un pim générique implémenté par plusieurs pim particuliers facilite cette étape. Le modèle générique décrit les flux d’informations et toutes
les variantes des processus couverts par l’application. La spécialisation s’appuie sur l’hypothèse qu’il existe un certain nombre de gestions d’entreprise types auxquelles chaque
entreprise cible correspond. Le mda n’est pas la solution miracle car n’automatise pas ses
transformations mais peut convenir à cette approche.
Xavier Moghrabi
— Année universitaire : 2002-2003 —
40
L’approche Model-Driven Architecture, crédible pour développer un progiciel de gestion intégré
Fig. 3.5 – Le bus logiciel et le bus de connaissances
3.2.3
Le MDA présente des atouts pour s’imposer comme un nouveau
standard
La chaı̂ne méthodologique mda est perçue par une partie de la communauté logicielle
comme une norme qui s’imposera pour devenir un nouveau standard de développement
logiciel. Mais pour devenir un standard, Le mda doit se répandre dans l’industrie logicielle.
Pour l’instant, le sentiment est que les éditeurs d’outils mda valorisent cette approche pour
proposer de nouveaux produits.
Sur le papier, le mda a de sérieuse chance de s’imposer les années à venir comme un
standard. Tout d’abord, il fait appel à des standards pour la méta-modélisation et la modélisation comme mof, xmi, uml et cwm. Ces derniers se sont imposés pour la conception
de logiciels à base des technologies objet. Ils fournissent un support robuste pour le mda et
permettent l’interopérabilité de modèles et méta-modèles. On peut comparer cet ensemble
de standard à un bus de connaissances comme le montre la figure 3.5, de la page 41, avec
le bus logiciel Corba.
Ensuite, le mda est conçu pour générer des applications sur les plate-formes qui prennent
de plus en plus d’importance au sein des systèmes d’information : Corba, j2ee, .net et
les services web. L’interopérabilité entre ces systèmes est d’ailleurs prévue. C’est un
point essentiel car l’industrie logicielle tente depuis de nombreuses années à améliorer la
capacité de différents systèmes informatiques à coopérer pour la réalisation de traitements
en commun. L’omg a essayé avec Corba de fournir un bus logiciel avec des passerelles
vers d’autres technologies [3]. Mais la pérennité de cette solution suite aux mises à jour
des applications ne pouvait être assurée. En positionnant un modèle commun, le pim, l’interopérabilité a ainsi été montée d’un niveau d’abstraction.
Les travaux de thèse de Erwan Breton [28] tendent à démontrer la pertinence des
techniques de méta-modélisation dans le domaine des processus. Cela a pu être tout particulièrement mis en évidence par des réalisations industrielles. Même si la solution développée au cours de ces travaux est basée sur un méta-modèle propriétaire répondant aux
besoins des experts métier de SofiFrance, l’auteur reconnaı̂t que le mda saura ajouter
la reconnaissance et la pérennité à son approche. Il lui semble évident qu’une des premières suites de ses travaux consiste à prendre acte de l’émergence de ce standard et à
Xavier Moghrabi
— Année universitaire : 2002-2003 —
41
L’approche Model-Driven Architecture, crédible pour développer un progiciel de gestion intégré
étudier son intégration dans l’outillage développé. De plus, avec l’utilisation importante
des méthodes basées sur le processus unifié, le mda apportera un gain à tous les utilisateurs.
Un des points qui peut rendre le mda crédible est son soutien par l’omg qui est un
consortium de 472 sociétés. Ces dernières vont mettre, plus ou moins, en avant cette approche. D’ailleurs l’omg travaille sur la conception de méta-modèles pour un large éventail
de domaines d’applications. Cette vision est beaucoup plus ouverte que si une société tentait seule de démocratiser cette démarche.
Toutefois l’expérience de Corba a montré que malgré une norme ouverte et complète,
il n’était pas évident d’imposer ce middleware à l’ensemble de l’industrie logicielle. Des
modèles concurrents sont apparus ultérieurement et ont fait de l’ombre à Corba grâce
à leur simplicité d’utilisation bien qu’elle cloisonnait le système d’information à des technologies particulières. Le mda n’est pas à l’abri de l’émergence de nouvelles approches
concurrentes. Les approches traditionnelles sont de mieux en mieux maı̂trisées par les entreprises et le changement de méthodologie demande un temps d’adaptation.
Un des problèmes de Corba est que les implémentations du marché étaient très hétérogènes. Il se passe pour l’instant la même chose pour les produits compatibles mda. Le
produit libre OpenMDA se limite pour l’instant à la génération de code alors que OptimalJ
réalise une partie de la transformation de modèles.
Finalement, le mda se limite aux middleware précités et les systèmes d’information
basés sur des middleware propriétaires hérités de d’applications existant depuis quelques
années sont laissés pour compte.
Le mda a des chances pour convaincre l’industrie logicielle de ses qualités. Il permet
de réduire le développement logiciel de façon significatif. Toutefois, d’autres études doivent
évaluer chacun des avantages mis en avant par le mda. Pour devenir un nouveau standard,
il lui reste encore quelques points à surmonter.
Xavier Moghrabi
— Année universitaire : 2002-2003 —
42
Conclusion
Les entreprises sont lassées d’investir dans les technologies pour suivre les évolutions
des middleware. Elle souhaite pérenniser l’architecture de leur système d’information
et évoluer à leur rythme. Dans ce contexte, l’omg travaille sur une spécification robuste,
ouverte et parfaitement adaptée à l’évolution des technologies et des méthodes de travail :
le Model-Driven Architecture.
Cette approche apporte un gain indéniable à l’ensemble des acteurs des systèmes informatiques. Le mda aide :
– les architectes à pérenniser les architectures,
– les développeurs à générer automatique des éléments récurrents et fastidieux,
– les managers à identifier les tâches de chaque expert dans le processus,
– et les chefs d’entreprise à réduire leur investissement et à minimiser les risques d’engagement dans une technologie.
Le mda a toutes ses chances de devenir le nouveau paradigme de développement logiciel et un standard reconnu par l’ensemble de la communauté. À l’instar d’uml qui est
devenu le formalisme standard de modélisation à base des technologies objet, le mda apporte un besoin de normalisation d’approches de modèles et méta-modèles qui existaient
déjà. Toutefois la norme n’est pas encore définie, les transformations et les outils sont au
stade embryonnaire. Cette situation devrait s’arranger avec le temps et le mda devrait
être entièrement finalisé à l’horizon 2008.
Pour le développement d’un erp, l’approche mda peut se révéler encore plus intéressante. Tout d’abord avec le concept d’erp à base de composants, le mda va encore plus loin
en proposant une normalisation pour les domaines verticaux (la production, la finance,. . .)
Ensuite, il permettra de construire, à partir d’une solution logicielle générique, le système
d’information d’une entreprise.
Toutefois, le mda demande des compétences pointues en architecture et modélisation
que les entreprises n’ont pas forcément. Le manque de visibilité sur les outils mda dû à la
liberté d’implémentation freine également l’adoption du mda.
En s’inpirant des phrases promotionnelles de Java telle que la fameuse expression“Write
once, run everywhere”, Jean Bézivin propose “Model once, Generate everywhere” pour
illustrer la montée en abstraction de la portabilité. Nous restons tout de même dubitatifs
quant à l’atteinte de l’ensemble des objectifs du mda.
Xavier Moghrabi
— Année universitaire : 2002-2003 —
43
Glossaire
.NET : Framework de Microsoft pour constuire des applications orientées Web
15, 21, 41
CIM : Computation Independent Model
2, 8, 9,
10, 16, 20, 25, 30, 32
CWM : Common Warehouse Metamodel, standard d’entrepôts de données 8, 9, 16, 17,
41
Corba : Common Object Request Broker Architecture, architecture normalisée d’ORB 2,
6, 8, 9, 12, 14, 15, 17–19, 21, 27–31, 41, 42
DTD : Document Technical Description, structures types de documents qui décrivent les
éléments composant les textes et les règles qui les régissent, utilisé pour XML 17, 19
DTF : Domain Task Force, groupes de l’OMG qui s’occupent de la standardisation de
domaines verticaux
18, 19, 22
EJB : Enterprise Java Beans, composants de la plate-forme J2EE
19, 21, 31, 33–35
7–9, 12, 13, 16, 17,
ERP : Enterprise Resource Planning, progiciel de gestion intégré 1–4, 18, 19, 22, 23, 31,
39, 40, 43
Framework : Ensemble d’outils et de composants qui aident au développement d’application, pour un contexte donné
12, 16, 19, 29, 34, 36,
38
IDL : Interface Definition Language, Langage de définition d’interfaces permettant de
spécifier des opérations sur les objets, proposé comme standard par l’OMG 16, 19,
29–31
J2EE : Java 2 Enterprise Edition, framework de l’environnement Java composé de nombreuses API et composants destinés à une utilisation ”côté serveur” au sein du système d’information de l’entreprise
2, 12, 15, 33–35, 37,
41
JDBC : Java DataBase Connectivity, ensemble d’API permettant à un programme Java
l’accès aux bases de données
34
JSP : Java Server Page, technologie Java qui s’insère dans les pages en HTML pour
ajouter des fonctionnalités dynamiques
34, 35
MDA : Model-Driven Architecture, norme d’approche des modèles
1, 2, 6–25, 27–43
MOF : Met Object Facility, standard d’échange de métadonnées entre contenants de
données distribuées
1, 8, 9, 16, 17, 41
Middleware : Couche logicielle assurant la communication entre une application et le
réseau en architecture client-serveur ou distribuée
1, 2, 6, 8, 9, 14, 16, 19, 22, 23,
27–31, 33, 42, 43
Xavier Moghrabi
— Année universitaire : 2002-2003 —
44
L’approche Model-Driven Architecture, crédible pour développer un progiciel de gestion intégré
OCL : Object Constraint Language, méthode d’expression de contraintes entre les objets,
fait partie d’uml
16
OMA : Object Management Architecture, désigne une activité de l’OMG
7
OMG : Object Management Group, consortium d’entreprises dont l’objectif est de développer des spécifications techniques favorisant l’émergence d’un marché de composants logiciels orientés objet
1, 6, 8–12, 14–21, 25, 27, 32, 33, 38,
41–43
ORB : Object Request Broker, bus logiciel pour faire collaborer des objets et des composants
3–5, 15,
28
PDM : Platform Description Model
11, 12, 16, 25
PIM : Platform Independent Model
8, 10–17, 19–25, 28, 30, 32–34, 36, 40, 41
PSM : Platform Specific Model
8, 10–13, 15–17, 19–22, 25, 30, 32, 34, 40
SQL : Structured Query Language, langage structuré de requête que l’on réserve à l’interrogation de bases de données importantes
34
SVG : Scalable Vector Graphics, norme pour créer des dessins vectoriels à partir d’XML 17
Services Web : Norme pour faire collaborer des applications Web à base de XML sur le
protocole SOAP
6, 8, 14, 19, 21, 31, 34, 36, 41
Servlet : Programme Java qui s’exécute sur un serveur pour créer dynamiquement des
pages en HTML
34
UML : Unified Modeling Language, méthode de modélisation orientée objet
8–10, 12, 15–17, 19–22, 25, 29–34, 37, 40, 41, 43
1, 3, 6,
XMI : XML Metadata Interchange, projet visant à associer MOF, UML et XML pour
créer un standard d’échange de contenant de données 1, 8, 9, 12, 15–17, 19–21, 41
XML : eXtended Markup Language, méta-langage extensible dérivé permettant de structurer des données
17, 19,
21
XSLT : eXtensible Style Language Transformation, langage sous-ensemble de XSL, qui
permet d’effectuer des traitements et des transformations sur les données XML 17,
20, 21
Xavier Moghrabi
— Année universitaire : 2002-2003 —
45
Table des figures
1.1
1.2
1.3
1.4
Description du méta-modèle mda . .
Vue globale de l’achitecture du mda
Exemple d’utilisation des modèles du
Un exemple de méta-modèle en mda
. . .
. . .
mda
. . .
. . .
. . .
pour
. . .
. . . . . . .
. . . . . . .
réaliser une
. . . . . . .
2.1
2.2
2.3
2.4
2.5
2.6
Modèles uml de framewroks pour des mécanismes verticaux . . . . . . . . .
Le cycle Y dans le mda . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le cycle de vie de l’EUP . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
L’architecture logicielle de Wells Fargo et le rôle du BOS . . . . . . . . .
L’environnement de traitement du BOS de Wells Fargo . . . . . . . . . . .
Création et maintenance de l’environnement middleware à partir du modèle
19
25
26
28
29
30
3.1
3.2
3.3
3.4
3.5
Liste des design pattern utilisés par chaque équipe . . . .
Temps de développement consommé par chaque équipe . .
Capture de l’environnement et transformation de modèles
Architecture de modélisation d’un système d’information .
Le bus logiciel et le bus de connaissances . . . . . . . . . .
35
36
39
40
41
.
.
.
.
.
. . . . . . .
. . . . . . .
application
. . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 8
. 9
. 11
. 13
.
.
.
.
.
A.1 L’architecture à quatre niveaux . . . . . . . . . . . . . . . . . . . . . . . . . 51
Xavier Moghrabi
— Année universitaire : 2002-2003 —
46
Bibliographie
[1] Sprott D., Componentizing the enterprise application packages, Communications
of the ACM volume 43, 2000.
[2] Kumar K. et van Hillegersberg J.,ERP : Experiences and Evolution, Communications of the ACM, volume 43, 2000.
[3] Darras F., Gaborit P. et Pingaud H., Gestion de la configuration lors de
l’intégration d’un ERP, article École des Mines d’Albi–Carmaux.
[4] Oya M., MDA and System Design, présentation aux MDA Information Days, Avril
2002, disponible sur :http://www.omg.org/mda/presentations.htm.
[5] Soley R. et l’OMG Staff Strategy Group, Model-Driven Architecture, Version 3.2,
27 novembre 2000, disponible sur : http://www.omg.org/mda/presentations.htm.
[6] Bézivin J. et Blanc X., MDA : Vers un important changement de paradigme
en génie logiciel, Développeur référence v2.16, 15 juillet 2002, disponible sur :
http://www.sciences.univ-nantes.fr/info/lrsg/Pages perso/JB/Jean 2002.htm.
[7] R. Dirckze et al., A Metamodel-Based Approach to Model Engineering Using the
MOF, FIWME, Nice, 13 juin 2000, disponible sur : http://www.metamodel.com.
[8] Bézivin J., From Object Composition to Model Transformation with the MDA,
publié dans TOOLS’USA, Volume OEEE TOOLS-39, Santa Barbara, août 2001.
[9] D’Souza D., Model-Driven Architecture and Integration : Opportunities and Challenges, Version 1.1, février 2001, disponible sur : http://www.kinetium.com.
[10] Miller J. et Mukerji J., Model Driven Architecture - A technical perspective, 9
juillet 2001, disponible sur : http://www.omg.org/mda/presentations.htm.
[11] OMG, Model-Driven Architecture, A Techncal Perspective, 14 février 2001, disponible
sur : http://www.omg.org/mda/presentations.htm.
[12] OMG, MDA Guide Version 1.0.1,
//www.omg.org/mda/.
47
1
juin
2003,
disponible
sur
:
http:
L’approche Model-Driven Architecture, crédible pour développer un progiciel de gestion intégré
[13] Juliot E., Présentation de MDA : Model Driven Architecture, DESS Génie Informatique, Université de Nantes, 10 juin 2002, disponible sur : http://www.toutmda.fr.st.
[14] Siegel J. et l’OMG Staff Strategy Group, Developing in OMG’s ModelDriven Architecture, Version 2.6, novembre 2001, disponible sur : http:
//www.omg.org/mda/presentations.htm.
[15] Ambler S. W., Architecture and Architecture Modeling Techniques, 2002, disponible
sur : http://www.agiledata.org/essays/enterpriseArchitectureTechniques.html.
[16] Malenfant J., Modélisation de la sémantique formelle des langages de programmation en UML et OCL, Rapport de recherche n◦ 4499, juillet 2002, disponible sur :
http://www.inria.fr/rrrt/rr-4499.html.
[17] OMG, Committed Companies and Their Products, disponible sur : http:
//www.omg.org/mda/committed-products.htm.
[18] Parigot D., MoDathèque, Plate-forme MDA, janvier 2003, disponible sur :
http://www-sop.inria.fr/oasis/Didier.Parigot/MDA/resumer.html.
[19] Saint Martin P., UML, le retour en grâce, Développeur référence 2.20 et 2.21, 6
et 22 novembre 2002, disponible sur : http://devreference.net.
[20] Bézivin J. et Blanc X., Promesses et Interrogations de l’Approche MDA, Développeur référence 2.17 et 2.18, 5 septembre et 2 octobre 2002.
[21] Harmon P., Wells Fargo’s Business Object Services : A Case Study in Model-Driven
Architecture, octobre 2001, disponible sur : http://e-serv.ebizq.net/obj/harmon 1.html.
[22] The Middleware Company, Model Driven Development for J2EE Utilizing a
Model-Driven Architecture (MDA) Approach – Productivity Analysis, juin 2003,
http://www.omg.org/mda/mda files/MDA Comparison-TMC final.pdf.
[23] Bézivin J. et Gérard S., A Preliminary Identification of MDA Components, présentation à OOPSLA 2002, 4-8 novembre 2002, disponible sur :
http://www.softmetaware.com/oopsla2002/bezivinj.pdf.
[24] Bézivin J. et Gerbé O., Towards a Precise Definition of the OMG/MDA Framework, présentation à ASE’01, San Diego (USA), 26-29 novembre 2001, disponible
sur : http://www.sciences.univ-nantes.fr/info/lrsg/Pages perso/Publications/ASE01.
OG.JB.pdf.
[25] Lemesle R., Techniques de Modélisation et de Méta-modélisation, Thèse, Université
de Nantes, 26 octobre 2000, disponible sur : http://www.sciences.univ-nantes.fr/info/
lrsg/Pages perso/RL/Richard 2001.htm.
Xavier Moghrabi
— Année universitaire : 2002-2003 —
48
L’approche Model-Driven Architecture, crédible pour développer un progiciel de gestion intégré
[26] Botta-Genoulaz V., Millet P.-A. et Neubert G., The role of enterprise
modelling in ERP implementation, IEPM pp 220-231, 2001.
[27] Boutin P., Définition d’une méthode de mise en œuvre et de prototypage d’un
progiciel de gestion d’entreprise (ERP), Thèse, École des Mines de Saint-Étienne,
2001.
[28] Breton E., Contribution à la représentation de processus par des techniques
de méta-modélisation, Thèse, Université de Nantes, juin 2002, disponible sur :
http://www.sciences.univ-nantes.fr/info/lrsg/Pages perso/EB/Erwan.htm.
Xavier Moghrabi
— Année universitaire : 2002-2003 —
49
Annexe A
Une architecture stratifiée
La distinction entre les PIMs et les PSMs est plutôt d’ordre méthodologique. Il est
important de noter que cette distinction n’est pas la seule. En effet, les modèles manipulés
dans le MDA sont de natures très diverses. Il y a bien sûr les modèles d’objets métier,
les modèles de processus ou de workflow, les modèles de règles mais aussi les modèles de
service, de qualité de service, les modèles de plate-forme, les modèles de transformation,
les modèle de tests, les modèles de mesure, etc. . . Derrière le recensement en cours de tous
ces modèles (la cartographie générale du MDA) se profile un projet ambitieux et à long
terme de définition d’un cadre générique de conception et de maintenance des systèmes
d’information.
Afin d’organiser et de structurer tous ces modèles, l’OMG a défini une architecture
appelée : “Architecture à quatre niveaux” représenté sur la figure A.1, de la page 51.
Ces quatre niveaux sont :
– Le niveau M0 qui est le niveau des données réelles, est composé des informations que
l’on souhaite modéliser. Ce niveau est souvent considéré comme étant le monde réel.
– Le niveau M1 est composé de modèles d’information. Lorsque l’on veut décrire les
informations de M0, le MDA considère que l’on fait un modèle appartenant au niveau M1. Typiquement, un modèle UML appartient au niveau M1. Tout modèle
est exprimé dans un langage unique dont la définition est fournie explicitement au
niveau M2.
– Le niveau M2 est donc composé de langages de définition des modèles d’information,
appelés aussi méta-modèles. Typiquement, le méta-modèle UML qui est décrit dans
le standard UML appartient au niveau M2 ; il définit la structure interne des modèles UML. Notons au passage que le concept de profil UML qui permet d’étendre le
méta-modèle UML est aussi considéré comme appartenant au niveau M2. Un métamodèle définit donc un langage de modélisation spécifique à un domaine et un profil
définit un dialecte (une variante) de ce langage.
– Le niveau M3 qui est composé d’une unique entité qui est le langage unique de définition des métamodèles, aussi appelé le méta-méta-modèle ou le MOF (Meta-Object
Facility). Le MOF définit lastructure de tous les méta-modèles qui se trouvent au
niveau M2. Le MOF est réflexif, c’est-à-dire que la description du MOF s’applique
au MOF lui-même, ce qui permet de dire que le niveau M3 est le dernier niveau
Xavier Moghrabi
— Année universitaire : 2002-2003 —
50
L’approche Model-Driven Architecture, crédible pour développer un progiciel de gestion intégré
Fig. A.1 – L’architecture à quatre niveaux
de l’architecture. Le niveau M3 correspond donc aux fonctionnalités universelles de
modélisation logicielle, alors que le niveau M2 correspond aux aspects spécifiques
des différents domaines, chaque aspect particulier étant pris en compte par un métamodèle spécifique.
Dans cette architecture, les PIM et les PSM appartiennent au niveau M1. Leurs structures sont définies par des méta-modèles (ou profils) qui appartiennent au niveau M2. Le
MOF permet de définir de façon homogène, tous ces méta-modèles. Le MDA ne traite pratiquement pas du niveau M0. Il faut enfin insister sur le fait que les niveaux qui viennent
d’être décrits n’ont rien à voir avec des niveaux d’abstraction ou de machines virtuelles
comme on peut en trouver dans les piles ISO/OSI ou TCP/IP par exemple. Ce sont des
niveaux de méta-modélisation (également différents de ce que l’on nomme parfois la métaprogrammation).
Xavier Moghrabi
— Année universitaire : 2002-2003 —
51
Annexe B
Évolution hebdomadaire de l’étude
Cette annexe en anglais décrit l’évolution du projet de chacune des équipes au fil des
semaines.
Traditional Team
Traditionnal Team – Week 1
The traditional team adopted an iterative prototyping style development process. In
the first week, they built a simple prototype that allowed them to architect their design
patterns basis for their project. It was a fairly involved process for them to establish a
comfortable development environment, and they ran into a few challenges getting StarTeam version control to collaborate effectively with their IDE. They used workarounds to
sidestep this issue, which was largely resolved by week 2. They also spent a good amount
of time during week 1 architecting the object model for their system, deciding on a package
structure, and other environment-related issues.
From the productivity perspective, they were impressed by the capabilities of their
IDE that first week. They found the IDE to integrate well with their chosen application
server, as well as have good code generation capabilities. It helped that each of the team
members had experience with the IDE in the past.
Their productivity challenges this week related to sharing files, communication issues,
performing code reviews, and maintaining a consistent package structure.
Traditionnal Team – Week 2
In week two, the traditional development team began to specialize in their various development roles. One team member owned the model (EJB) layer, another team member
owned the view (web) layer, while a third team member added value through providing
helper classes and interfaces between layers to keep the team members productive.
The team decided to build their system in a use-case fashion, by focusing on each
use-case in turn. This week they worked on user account maintenance use-cases, such as
sign-in, sign-out, user creation and user preference maintenance.
Xavier Moghrabi
— Année universitaire : 2002-2003 —
52
L’approche Model-Driven Architecture, crédible pour développer un progiciel de gestion intégré
From the productivity perspective, what they found good this week was leveraging
the Struts framework. They found Struts coding to be very efficient. Furthermore, they
decided to use a strategy of decoupling their web tier and business tier by allowing “stub”
implementation code to be plugged in for code that was not fully built yet. They switched
between “stub” and “real” code through properties files and the business delegate design
pattern described in the next appendix.
The productivity challenges this week were the typical ones a development team first
encounters, such as consistent use of source control. They also had some challenges with
their IDE, in that if they tried to generate J2EE components from their IDE, and needed to modify them later, the components did not round-trip back into the IDE very easily.
Traditionnal Team – Week 3
This week, the traditional team continued their development by working on product
catalog browsing, as well as some shopping cart functionality.
From the productivity perspective, what they found good this week was that they had
resolved their version control collaboration issues. They also reduced build-time dependencies by building libraries of interfaces that team members could use. At this stage in
development, each team member was very productive and the project was well partitioned
so that each team member had his own area of development. Furthermore, their IDE had
been providing them value in code generation capabilities.
The only challenges this week were clarifications required for the PetStore specification,
and some minor refactoring they needed to perform on their shopping cart.
Traditionnal Team – Week 4 and 5
In their final weeks, the traditional development team wrapped up their application by
coding the final use cases, performing testing, and debugging. Also, they integrated their
team members’ code together, abandoning the stub implementations that had served their
purpose.
Productivity gains these weeks included several items. They received a continual benefit from the stub implementation architecture they chose. Very little team communication
was required given the interfaces they had authored that allowed them to collaborate
efficiently. Also, their web service implementation was built very quickly, as their IDE
provided capabilities enabling them to do this – specifically, code generation capabilities
in the form of automated WSDL generation and SOAP server deployment.
The challenges this week included some re-factoring and re-analysis of code, such as in
their data access layer, which had several flaws. The fact that their application had many
layers also caused challenges when things broke, since it was not always clear where the
issue was until they delved into the layers. They also had some other minor issues related
to Struts and property files.
Xavier Moghrabi
— Année universitaire : 2002-2003 —
53
L’approche Model-Driven Architecture, crédible pour développer un progiciel de gestion intégré
MDA Team
MDA Team – Week 1
In the first week, the MDA team performed many of the typical steps project teams
go through at the onset of their project. They created a detailed design of their object
model using their MDA tool’s UML modeling capabilities. They set up their source control
system, and began to partition the project tasks so that each team member could remain
efficient. They also set up a project directory structure and began some initial development.
What was good this week from the productivity perspective was they noticed that
they didn’t need to build very many components, because the MDA tool was capable of
generating the code for them. In fact, they noticed the tool could generate not only the
components, but also much of the ’scaffolding’ code that links the components together,
generating the application end-to-end. The team anticipated 50 to 90 percent of their
application could be generated, including web pages, Struts actions, EJB entity beans,
EJB session bean facades, J2EE design pattern scaffolding code and database tables. The
key challenge this week was to grasp mentally the new paradigm that the MDA approach
represents.
The approach was a departure from things they had been doing traditionally, and the
tool they used provided many layers and structure that required ramp-up time.
MDA Team – Week 2
In week 2, the MDA team was knee-deep in development. They had completed many
parts to their site, including their UML object model, their framework for components,
the site navigation system, JSP templates (made in Dreamweaver) that have some code
common to all pages, their home page, a good portion of the EJB shopping cart functionality and minor user account management functionality.
What had been good this week from the productivity perspective was that they were
able to generate EJB session/entity bean code, web tier code, and a DDL model from their
UML object model. It was also very easy to create a test data set. Finally, the end-to-end
application framework provided by their MDA tool allowed them to integrate their components together quickly.
The challenges this week were similar to those of the traditional team. They had environment challenges, including getting used to their source control system in a collaborative
development environment. They spent quite a bit of time getting their product configured.
They also underestimated the learning curve required to embrace their MDA tool, and had
to continually learn throughout the week to get used to the paradigm shift from traditional development. Finally, they realized that the code generation capabilities of MDA are
sometimes overkill, in that it generated heavier code than they needed. They did want to
note, however, that it was possible to modify the algorithms used by the tool to generate
code, and in a real project that would be done to alleviate this problem, however this fell
outside the scope of this case study.
Xavier Moghrabi
— Année universitaire : 2002-2003 —
54
L’approche Model-Driven Architecture, crédible pour développer un progiciel de gestion intégré
MDA Team – Week 3
During week 3, the MDA team finished several more use-cases for their system, including shopping cart, order processing, account management, and a sign-in module.
From the productivity perspective, several good things happened this week. Their security system was built very easily since the MDA tool assisted them in this code generation.
Their idea of using JSP templates also was beneficial, since their JSPs in essence “inherited” common code from other JSPs, so common code could be updated in a centralized place.
One developer was starting to see the benefits of the MDA process this week, and felt
compelled to make the following statement :
The value of MDA is analogous to the value of OO in general. It requires more of you in
the design phase, and the payoff comes in the implementation phase. And once you’ve built
one or two apps, you really start to get the benefit from it.
They also had several challenges this week. They ran into some Struts nuances that
bogged them down temporarily. They also had a minor issue relating to using session identifiers and cookies with web browsers. Their final challenge this week was MDA-related.
They noticed that with the MDA process, you may run into development potholes due to
a mismatch between the code that you thought would be generated, and the code that
was actually generated. Their MDA tool sometimes generated code they didn’t need, or
too much code, which did not help productivity. What the team realized was that their
own inexperience with MDA and code generation was the cause of this problem, since they
were inexperienced in anticipating what code would be generated. They believe this would
be solved with experience and time with using their MDA tool, and the more they used it,
the more productive they became. But the shortterm unfamiliarity with their MDA tool
did cost them a few minor delays.
MDA Team – Week 4
In week 4, the MDA team finished their development, testing and debugging.
From the productivity perspective, their positive gains this week were due to MDAbased code generation, as well as the value of the Struts framework and authentication
framework that came with their MDA tool. Also, the integration process they used ran
very smoothly.
The challenge this week was that sometimes the code that was generated was a liability.
They would either have to materially modify it, or abandon it. They did note, however,
that the code they wrote manually was patterned after what the MDA tool generated, and
that gave them a leg up from the implementation perspective. They also had challenges
with source control integration of the MDA tool. The takeaway point they wanted to note
is that when you’re using a complex product like an MDA tool, you need to understand
what’s going on and be careful about how you mesh it with version control. First-time
users may stumble a couple of times before getting it right.
Xavier Moghrabi
— Année universitaire : 2002-2003 —
55
Annexe C
Glossaire des design pattern
utilisés
Dans cette annexe, nous avons repris le document qui détaille chacun des design pattern utilisés par les équipes. Il s’agit du document original dans la langue de Shakespear détaillé par les annalystes de The Middleware Company. Ce document est technique et demande au lecteur une connaissance de la programmation avec J2EE. Pour
plus d’information, un livre sur les design pattern est disponible au téléchargement sur :
http://www.theserverside.com/.
Session-Entity Wrapper
When client code (such as JSP code or servlet code) accesses an EJB, it’s important
to reduce the number of network round trips and transactions to a bare minimum. You
can achieve this by wrapping entity beans with a session bean wrapper. The client code
calls the session beans, which then delegate to entity beans. Thus the session beans serve
as a network façade and a transactional façade on behalf of the entity beans. This is also
a natural fit, since a session bean models an action while an entity bean models data.
Actions use data.
Primary Key Generation in EJB Components
A primary key is a unique identifier for a database record. Traditionally primary keys
have been generated at the database-level by using database features (such as Oracle’s
sequences). This approach is perfectly valid, however it is not portable across databases.
This is problematic for independent software vendors (ISVs) and other groups that need
to support a wide variety of databases.
You can generate primary keys in a portable fashion by using EJB components. There
are several strategies you can use to achieve this. For example, you can use an algorithmic
primary key generator to generate keys in-memory (note that the precision of such primary
keys is limited due to limitations in the Java Virtual Machine). You can also create a
database table dedicated to creating primary keys, and increment a counter that is cached
in-memory via EJB components for performance reasons. These strategies are discussed
in more detail in the EJB Design Patterns book or our J2EE Patterns course.
Xavier Moghrabi
— Année universitaire : 2002-2003 —
56
L’approche Model-Driven Architecture, crédible pour développer un progiciel de gestion intégré
Business Delegate
One of the challenges with EJB development is coordinating a team to be productive.
Often times team members are waiting on each other for code, twiddling their thumbs.
The business delegate design pattern solves this problem. The idea behind business
delegates is to create a layer of plain Java classes that hide EJB API complexity by encapsulating code required to call EJB components. The client code (in this case, the web
layer) calls the business delegates, which then access EJB components on their behalf. This
allows you to “plug in” stub implementations for code that is not yet developed, keeping
team members productive.
Business delegates have other minor benefits as well. They effectively shield your client
code from EJB completely, allowing you to use another technology at a later date if you
see fit. They can also cache data locally, and retry failed transactions in a transparent
manner to client code.
Data Transfer Objects (DTOs)
Data Transfer Objects (DTOs), also known as Value Objects (VOs), are classes that
hold data that is marshaled across tiers. They are useful for aggregating large amounts of
data that would normally take many network roundtrips to retrieve. By using DTOs you
can reduce the number of network roundtrips required to your EJB layer. Rather than
calling 10 entity bean getter methods, you would retrieve a single DTO that contained all
10 fields. Generally speaking, a DTO maps to an entity bean.
Custom Data Transfer Objects
Custom DTOs are a specialization of the generic DTO design pattern. The best way to
understand the need for Custom DTOs is to think about an entity bean that has hundreds
of attributes. Most of the time, client code will only want to retrieve a small fraction of
this data from the entity bean. Thus it doesn’t make sense to populate and marshal a
DTO that embodies the complete entity bean. A Custom DTO can represent a subset of
an entity bean, thus solving this problem.
DTO Factory
A typical J2EE application will require a plethora of DTOs. DTOs may be needed for
each use-case of the system, and DTOs may need change as the domain model changes. A
DTO Factory is responsible for creating and consuming DTOs. It can create a DTO and
populate it based on a primary key of an entity bean. It can look up an entity bean, make
local calls to retrieve data, populate a DTO, and return that DTO to a session bean. This
saves from having to rewrite this basic population code over and over again in the session
beans. The purpose of the DTO factory is to shield the application from the high velocity
of change DTOs experience. It can increase maintainability, reuse, and even performance.
Service Locator
The Service Locator pattern was invented by John Crupi’s team at Sun Microsystems
who wrote the J2EE Patterns book. It is a Java class with static methods that EJB client
code uses to obtain references to EJB homes via the Java Naming and Directory Interface
Xavier Moghrabi
— Année universitaire : 2002-2003 —
57
L’approche Model-Driven Architecture, crédible pour développer un progiciel de gestion intégré
(JNDI). The Service Locator pattern enhances performance since it can cache JNDI homes,
and reduces the need to write redundant JNDI code in clients. Client code doesn’t need to
know JNDI, deal with EJB exceptions, or narrow references. Think of the Service Locator
pattern as a helper class that contains common JNDI code needed to be written many
times.
Business Interface
One of the best-practices established in EJB development is that an enterprise bean
class should not implement its own remote interface, since a remote interface contains
methods that a bean should not implement, such as those defined in javax.ejb.EJBObject.
However, the idea of a class implementing an interface is a nifty way to enforce compile-time
checking that the method signatures for an implementation match those of an interface,
and we would still like to retain this value.
A solution to this is the business interface pattern for EJB components. A business
interface contains your EJB business methods. The remote interface extends this interface,
and the enterprise bean class implements this interface.
JDBC for Reading via Data Access Objects (DAOs)
The JDBC for Reading pattern encourages you to use JDBC to read database data,
rather than go through an entity bean layer. There are many reasons for this, such as
inflexibility in the EJB query language, the ability to hand-tune SQL, and the granularity
constraints that you have when performing SQL with entity beans.
Data Access Objects (DAOs) are lightweight persistent Java classes that are a valid
substitute for entity beans. In this project, the traditional team used them as an implementation of the JDBC for Reading pattern, in that they used them purely for reading
purposes. They had entity beans as well, for writing purposes, primarily because entity
beans were easily generated using the IDE.
DAOs for reading perform well since they can release database connections quickly.
Also DAOs allow you to perform order-by operations on queries, which you can’t do with
entity beans in the current EJB specification’s query language. This ordering helps in sorting data to be presented in the user interface. By way of comparison, the MDA team
used entity beans to go directly to the database and didn’t use the “JDBC for reading”
pattern or DAOs. They sorted data by pushing them into special Java classes called Form
Beans and then wrote a routine to sort them. Thus, both teams achieved the same result
in different ways.
Xavier Moghrabi
— Année universitaire : 2002-2003 —
58

Documents pareils