Académique Documents
Professionnel Documents
Culture Documents
Le modèle du réseau de Petri est composé de différents éléments : places, transitions et arcs.
Ils sont définis dans le métamodèle du réseau de Petri. De même, dans un modèle conforme à
un métamodèle, il existe une relation entre les éléments du modèle et ceux du métamodèle appelée "méta
relation", associant chaque élément du modèle instancié à un élément du métamodèle.
Mais un métamodèle est lui même un modèle qui doit être conforme à son propre métamodèle. Pour cela
le Model Driven Architecture MDA défini un 3ème niveau correspondant au métamétamodèle.
Pour éviter d'avoir un mécanisme sans fin ( métamétaméta... ), le métamétamodèle se défini lui même c'est à
dire qu'il peut être spécifié avec sa propre sémantique. Par conséquent un métamétamodèle est conforme à lui
même.
Définition MDA
MDA
Vue macroscopique
Architecture MDA
Modèles
« Modéliser est le futur, et je pense que les sociétés qui travaillent
dans ce domaine ont raison » B. Gates
« Obtenir du code à partir d’un modèle stable est une capacité qui
s’inscrit dans la durée » R. Soley
Pratiques
Décomposer en niveaux d’abstraction
Objectifs
Élaboration de nouvelles applications
Puisque les modèles sont plus pérennes que les codes, ils permettent de :
Modèle d’analyse et de
conception abstraite:
représente l’architecture
de l’application.
Modèle de code:
représente la construction
de l’application.
Code de l’application et
fichier de configuration.
Architecture MDA
L’approche
Le CIM (Computation Independent Model)
Le CIM :
! est le modèle d'analyse de base du métier ou du domaine dʼapplication
! décrit
les concepts de l'activité métier, le savoir faire les processus, la terminologie et les règles
de gestion (de haut niveau)
! n'est
modifié uniquement que si les connaissances ou les besoins métier changent (très longue
durée de vie)
Les exigences modélisées dans le CIM seront prise en compte dans les constructions des PIM
(Platform Independent Model) et des PSM (Platform Specific Model)
Architecture MDA
L’approche
Le PIM (Platform Independent Model)
Le PIM :
! est un modèle de conception
Les différents niveaux de PIM précisent les choix de persistance, de gestion des transactions, de
sécurité…
Architecture MDA
L’approche
Le PDM (Plate-forme Description Model)
Un PDM :
! contient des informations pour la transformation des modèles vers une plateforme
Un PSM :
Niveaux de PSM :
Le premier niveau, issu de la transformation dʼun PIM par l'adaptation des modèles UML aux
spécificités la plate-forme
Les autres niveaux PSM sont obtenus par transformations successives en prenant en compte
le langage (Java, C#, PHP...), les choix de conception...
L'approche MDA précise quatre types de transformations pendant le cycle de développement, les
modèles devenant de plus en plus concrets jusquʼà lʼobtention du code
Par transformations successives, le PIM, modèle de niveau le plus abstrait, est transformé en un
PSM exécutable (ou code exécutable)
Si la démarche MDA a été respectée, il est possible de générer un PSM, puis un PIM, à partir du
code exécutable
(rétro-ingénierie)
Architecture MDA
L’approche
La transformation des modèles MDA
Transformation de PSM vers PSM (raffinement), souvent nécessaire pour générer un code, se fait par l'utilisation de
formalismes intermédiaires comme SDL Specification and Description Language)
Transformation de PSM (ou du code) vers PIM, ou rétroingénierie (reverse engineering), indispensable pour
permettre lʼintégration dʼapplications existantes
Architecture MDA
Architecture
MOF
M2 QVT M2
Application Informatique
Architecture MDA
Les moyens
Définition de tous les métamodèles de manière uniforme
Le standard MOF définit le langage de définition des
métamodèles
Format standard d’import et d’export des modèles
Le standard XMI définit les moyens d’import et d’export de tous
les modèles selon le format XML
Langage de manipulation des modèles
Les frameworks JMI/EMF définissent les moyens de
représentation des modèles à l’aide de langages de
programmation objet.
Langage dédié au transformation de modèles
Le standard QVT définit le langage d’expression de
transformations de modèles
Architecture MDA
Les résultats
Pérennité des savoir-faire
L’ambition du MDA est de faire en sorte que les modèles (CIM,
PIM) aient une durée de vie supérieure au code.
L’objectif est donc de fournir des langages de modélisation
supportant différents niveaux d’abstraction.
Gains de productivité
MDA vise à apporter des gains de productivité en automatisant
les opérations sur les modèles.
L’objectif est donc de faciliter la création d’opérations de
production sur les modèles (du contemplatif au productif)
Prise en compte des plates-formes d’exécution
MDA veut rendre explicite la prise en compte des plates-formes
d’exécution dans le cycle de vie des applications.
L’objectif est donc de construire des langages permettant de
modéliser les plates-formes et de lier ces modèles aux modèles
des applications.
Architecture MDA
Les 3 axes du MDA
pérennité
Pour mettre en œuvre le
UML2.0 QVT MDA il faut fixer ses
MOF2.0 priorités selon ces trois
XMI2.1
axes
Profil QoS GenDoc
• Il est actuellement trop tôt pour
UML1.4 utiliser UML2.0 et être productif.
MOF1.4 EMF
Profil EJB JMI • Il est actuellement trop tôt pour
pouvoir dire que EMF est
Profil Corba
pérenne.
productivité
• Il est actuellement trop tôt pour
UML->Java pouvoir expliciter la plate-forme
UML/EJB->J2EE sous forme de modèle.
Plate-forme
Pérennité des savoir-faire
Architecture et Standard
Pérennité
Métamodèle
Système
+nom
Un métamodèle est
essentiellement la définition d’un
1
ensemble de concepts et de leurs * * *
relations à l’aide d’un diagramme +hérite 0..*
Acteur +participe Cas d'Utilisation
de classes. +nom +intitulé
*
0..1 +étend
*
Un métamodèle ne définit que la
structure et pas la sémantique. * +inclut
métamodèles *
les concepts de *
1
*
méta-association, etc. 1
1
* +super
l’aide d’un diagramme de * 1 -type * 1
le métamétamodèle
*
*
AssociationEnd
Association
+nom
définit.
Pérennité
Niveaux Méta
d’instructions
AS est un métamodèle qui
a été totalement intégré à 10
100
UML2.0
AS n’a pas de syntaxe cb
XMI et UML
XMI se décline en 6 versions et UML se décline en 4 versions
Cela explique pourquoi l’échange de modèle UML en XMI pose quelques
problèmes
XMI et diagrammes
DI (Diagram Interchange) est une extension à XMI et UML qui permet
la représentation des diagrammes UML sous forme de document XML.
Pérennité
Synthèse sur la pérennité
MOF permet de décrire les métamodèles uniformément
Permet la définitions de structuration et leur standardisation (ex:
réseaux de Petri)
Le métamodèle UML est le métamodèle le plus abouti pour
élaborer des modèles d’applications informatiques
Les modèles UML sont de très bons PIM (complets et
indépendants des plates-formes).
OCL et AS sont les métamodèles permettant la définition précise
de comportements
Ils permettent la construction de modèles UML très précis.
XMI permet l’échange de n’importe quel modèle sous forme de
document XML
Les modèles MDA ont tous une représentation concrète standard
Gains de productivité
Framework et outils
Production
API de manipulation
Objets Java
modèles
Production
Eclipse Modeling Framework
Élaboration d’un
métamodèle (instance
de Ecore)
Génération de l’API
Interface de manipulation
Classes dans
l’environnement Eclipse
Classes d’éditeur
graphique
Utilisation directe dans
un nouveau
environnement Eclipse
Production
Transformation de modèles
Les transformations de modèles sont le cœur des aspects de
production de MDA
CIM vers PIM, PIM vers PSM, PSM vers code (sens inverse).
Les transformations de modèles sont basées sur les
métamodèles
Tout composant UML se transforme en une classe PHP.
Les constructeurs de plate-forme devraient produire les
transformateurs permettant d’exploiter les plates-formes
UML vers EJB
Les sociétés devraient pouvoir adapter les transformateurs selon
leurs propres expériences et leurs propres besoins
Ex: ne pas utiliser de composant EJB Entity!
Actuellement les transformations de modèles peuvent s’écrire
selon trois approches
Programmation, Template, Modélisation
Production
Programmation
lire écrire
UML PHP
Template
pour UML
vers PHP
Modèle
Transfo
Framework et outils
Plate-forme
Cycle en Y et plate-forme
PIM PM
Besoins
Exigence Techniques
PIM
Analyse
PM Architecture
PIM Technique
Conception
(Abstraite) Explicitation de la
plate-forme
Conception PSM
(concrète)
Prise en compte
Conception PSM
de la plate-forme
(fine)
Code
Plate-forme
Profil ou métamodèle
Il n’existe pas de métamodèle permettant de modéliser les plates-
formes
Un métamodèle de plate-forme définit plutôt la structure de modèles
d’applications utilisant les fonctionnalités de la plate-forme
On appelle donc ces métamodèles des métamodèles de PSM
par exemple le métamodèle EJB définit la structure de modèles
d’applications utilisant les fonctionnalités de la plate-forme EJB
PetStore
Étude de Cas
PetStore selon MDA
PSM Java
Profil UML
PSM PHP
Méta-modèle
PIM vers PSM Java
avec MDA Modeler
PIM vers PSM PHP
avec RSA
public class { php {
} }
Étude de Cas
Pérennité