|
En matière de développement logiciel, l'un
des principaux objectifs est la pérennité, et
donc par extension la portabilité. Par ailleurs, il
devient crucial de définir une application une seule
fois, morceau par morceau, et de faire en sorte que le développement
puisse être aussi rapide que possible. C'est dans cet
objectif que le concept de modélisation a été
inventé.
Nombreuses ont été les tentatives de définition
d'une architecture de conception efficace, notamment le concept
CASE (pour Computer Aided Software Engineering, dans
les années 70). L'architecture MDA, conçue et
promue par l'OMG (Object Management Group), a le mérite
d'être élevée au rang de standard et de
profiter des travaux passés. C'est elle qui pour l'heure
tient le haut du pavé en matière de conception
logicielle, notamment au travers de la méthode de conception
UML, très en vogue depuis quelques années.
De quoi s'agit-il ?
La MDA, pour Model-Driven Architecture (Architecture basée
sur les modèles), a été conçue
afin de séparer les contraintes fonctionnelles des
contraintes techniques.
MDA se présente sous la forme d'un jeu de standards
proches (mais non co-dépendants), utilisés pour
créer un modèle et l'affiner jusqu'à
obtenir, idéalement, un produit fini, comme du code
source.
En pratique, on rencontre le plus souvent la MDA en définissant
une application avec UML et en générant automatiquement
l'exécutable lié, grâce à des générateurs
Java, C# ou autre...
Ainsi, la proposition de MDA est de définir les fonctionnalités
système dans un modèle indépendant de
la plate-forme (PIM : Platform Independant Model) à
l'aide d'un langage de spécification, et de le traduire
en un modèle spécifique à une plate-forme
(PSM : Platform Spécific Model), pour enfin générer
le code compilable (ou compilé) pour cette plate-forme.
Rien n'empêche a priori, à partir d'un PIM, d'obtenir
plusieurs PSM pour plusieurs plate-formes. Le concept MDA
propose donc une approche ouverte à l'interopérabilité
des systèmes.
Plusieurs standards
Les différents langages de spécification associés
à MDA sont UML, MOF, XMI, CWM et OCL.
MOF
(Meta-Object Facility)
Un ensemble d'interfaces standards permettant de définir
et modifier des meta-modèles et leurs modèles
correspondants. Le MOF est un moyen de définir la syntaxe
et la sémantique d'un langage de modélisation
- il a donc été créé par l'OMG
afin de définir la notation UML, par exemple. C'est
un standard de métamodélisation.
UML (Unified Modeling Language)
Un langage visuel permettant de modéliser des besoins
d'un système à l'aide de diagrammes et de textes.
Il permet aussi de décrire des architectures, des solutions
ou des points de vue.
XMI (XML Metadata Interchange)
Un standard d'échange de métadonnées.
CWM (Common Warehouse Metamodel)
Une interface servant à faciliter les échanges
de métadonnées entre outils, plates-formes et
bibliothèques de métadonnées dans un
environnement hétérogène.
Il est basé sur UML, MOF et XMI.
OCL (Object Constraint Language)
Un ajout à UML 1.1, lui apportant la capacité
de formaliser l'expression des contraintes. Il est désormais
intégré à UML.
 |
Forum |
|
|
Réagissez
dans les forums
de JDN Développeurs
|
Est-ce vraiment intéressant ?
La MDA est un apport majeur au monde du développement,
car elle autorise la création efficace de modèles
non liés à une plate-forme et leur réutilisation
à l'envie, ainsi qu'un support total des meilleures
pratiques disponibles.
De même, le fait de travailler sur un PIM avant de passer
au PSM permet de faciliter la validation d'un modèle
sans être gêné par les détails techniques
spécifiques à une plate-forme.
Par ailleurs, il est plus simple et rapide de gérer
les différentes implémentations d'un système
a partir de modèles abstraits que de devoir s'y prendre
une fois arrivé au niveau système, où
le portage se complique.
Nous aurons l'occasion de revenir sur les différentes
caractéristiques de la MDA lors de prochains articles...
|