Vous êtes sur la page 1sur 39

Ingénierie dirigée par les modèles

Model Driven Architecture

Laurent Pérochon
INRA
URH
63122 Saint Genès Champanelle
perochon@clermont.inra.fr

Laurent Pérochon, programme ENVOL2008, Annecy 19 au 24 octobre 2008


La conception d’un programme classique

Diagramme UML
Ni

Diagramme UML
ve

Diagramme UML
a

Diagramme UML Programme


ux

Modèle conceptuel outils exécutable


d’a

(UML …)
bs
tra
cti
no

Compléments Evolutions

Programmeur
Laurent Pérochon, programme ENVOL2008, Annecy 19 au 24 octobre 2008
Constat

Diagramme UML
Diagramme UML
Diagramme UML Programme
Diagramme UML
Modèle conceptuel exécutable
(UML …)

Laurent Pérochon, programme ENVOL2008, Annecy 19 au 24 octobre 2008


L’Ingénierie Dirigée par les Modèles (Model Driven …)
Objectifs

Diagramme UML
Diagramme UML
Diagramme UML
Diagramme UML Programme
Transformation
Modèle exécutable
automatisée

Compléments Evolutions

Laurent Pérochon, programme ENVOL2008, Annecy 19 au 24 octobre 2008


L’Ingénierie Dirigée par les Modèles (IDM)
Hiérarchie pyramidale / espaces techniques

Grammarware BDware Docware Modelware Espaces


Techniques

Langage de Langage de Langage de Langage de


Un Description de
langage définissant Description
les langages dede modélisation
Description de description de M3
Grammaires Schéma Documents Métamodèle
(EBNF) (alg. relationnelle) (XML) (MOF)

La grammaire de Un schéma relationnel


Le langage Un schéma XML
de modélisation Métamodèle M2
Java (UML)

Un programme Un modèle
Une base de du
Unsystème
document XML Un modèle M1
Java Données relationnelle spécifique UML

Ce qu’on étudie Système M0

Laurent Pérochon, programme ENVOL2008, Annecy 19 au 24 octobre 2008


L’Ingénierie Dirigée par les Modèles (IDM)
La manipulation des modèles : la transformation

Différents aspects : spatial, décisionnel, social …

Une modification

Modèles en interaction
tion
a
sf orm
n
: tra
sion
s
rcu
é pe
R
Différents niveaux d’abstraction
(on affine les modèles)
1 aspect
1 niveau d’abstraction

Laurent Pérochon, programme ENVOL2008, Annecy 19 au 24 octobre 2008


L’Ingénierie Dirigée par les Modèles (IDM)
C’est quoi ?

•Intégration des techniques précédentes


•Vise à couvrir tout le cycle de développement du logiciel
•On manipule des modèles
•On automatise les transformations entre différents modèles (aspects , niveaux
d’abstraction)

L’élément de base n’est plus l’objet : c’est le modèle

(Favre et al., 2006)

Laurent Pérochon, programme ENVOL2008, Annecy 19 au 24 octobre 2008


L’Ingénierie Dirigée par les Modèles (IDM)
Les architectures basées sur l’IDM

Microsoft Software factories Domain Specific Langage

IBM Eclipse Modeling Framework Ecore (Essentiel MOF)

Object
Management
Model Driven Architecture Meta Object Facility (MOF)
Group (MDA)
(OMG) UML

Laurent Pérochon, programme ENVOL2008, Annecy 19 au 24 octobre 2008


Model Driven Architecture (MDA)
L’ingénierie dirigée par les modèles vue par l’OMG

Une architecture, mais pas une méthode de modélisation

Vision lancée en 2000, toujours en cours de développement

Des parties ont été créées D’autres restent à développer

Laurent Pérochon, programme ENVOL2008, Annecy 19 au 24 octobre 2008


Model Driven Architecture (MDA)

Modèle des exigences


Computation Independent Model
CIM
Plateforme

Fournit des fonctionnalités, Modèle métier


pas besoin de les programmer Plateform Independent Model
PIM
Java, PHP, .Net …

Idées de base Modèle technique


•Le métier évolue moins vite que la technique Plateforme Specific Model
•On doit pouvoir utiliser plusieurs plateformes, PSM
changer de plateforme
•Le PIM reste le PSM change
Code
Laurent Pérochon, programme ENVOL2008, Annecy 19 au 24 octobre 2008
Model Driven Architecture (MDA)

Modèle des exigences


(CIM)
On veut modéliser ces transformations
pour faciliter Modèle
Transformations les métier
futurs évolutions
Transformations
(PIM)

Modèle technique
(PSM)

Code

Laurent Pérochon, programme ENVOL2008, Annecy 19 au 24 octobre 2008


Model Driven Architecture (MDA)

Comment représenter les modèles (CIM PIM PSM) ?

Comment représenter les transformations ?

Laurent Pérochon, programme ENVOL2008, Annecy 19 au 24 octobre 2008


Model Driven Architecture (MDA)
Représenter les modèles

Langage de
description de
Métamodèle

UML UML MOF

Profil UML
(lié au domaine) UML Notre ML

Laurent Pérochon, programme ENVOL2008, Annecy 19 au 24 octobre 2008


Model Driven Architecture (MDA)
Profils UML

Stéréotype Tagged value Contraintes


attribut sur stéréotype et
Tagged value

Laurent Pérochon, programme ENVOL2008, Annecy 19 au 24 octobre 2008


Model Driven Architecture (MDA)
<<profile>> Profil UML : stéréotype et tagged value
EJB On spécialise UML

<<stereotype>>
Component
Bean

<<stereotype>> <<stereotype>>
EntityBean SessionBean Artifact
state: stateKind

<<enumeration>> <<stereotype>> <<stereotype>>


StateKind Remote JAR
Interface
Stateful <<stereotype>>
stateless Home

(T. Stahl et M. Völter, 2006)

Laurent Pérochon, programme ENVOL2008, Annecy 19 au 24 octobre 2008


Le nombre
context
de personnes
Chambre inv:
par chambre doit être inférieur ou égal au nombre de lits
Modelclient->size
dans la chambre Driven
louée. Les <=Architecture
enfants
_nbDeLits
(accompagnes)
or (MDA)de moins de 4 ans ne
”comptent
Profil UML pas” dans
(client->size
: :Les cette règle
contraintes= _nbDeLits
: de calcul
Object +(à1hauteur
and Langage
Constraint d’un enfant
(OCL)de moins
de 4 ans maximum par chambre).
client->exists(p : Personne | p._^age < 4))

Un hôtel ne contient jamais d’étage numéro 13 (superstition oblige).


context Chambre inv:
self._étage <> 13

(Olivier Caron : http://www.polytech-lille.fr/~ocaron/)


Laurent Pérochon, programme ENVOL2008, Annecy 19 au 24 octobre 2008
Model Driven Architecture (MDA)
Profil UML : Modéliser les opérations

Object Constraint Langage (OCL)


Il ne permet pas des modifications dans le modèle
Exemple : augmenter le nombre de chambre de 1

Action Semantic (AS). Standard OMG

Spécifier les actions, opération qui fait changer l’état du modèle


Pas de représentation textuelle : difficulté

Laurent Pérochon, programme ENVOL2008, Annecy 19 au 24 octobre 2008


Model Driven Architecture (MDA)
Profils UML disponibles

OMG Sociétés/recherche

Secteurs industriels EJB, CORBA, Java, C# …

Laurent Pérochon, programme ENVOL2008, Annecy 19 au 24 octobre 2008


Model Driven Architecture (MDA)
Bilan Profil UML

Description sous forme de diagramme des classes : ok

Object Constraint Langage c’est bien mais ….


La majorité des outils ne supportent pas ou trop partiellement OCL durant
une transformation (Cabot et Teniente 2006)

Action Semantic
A voir dans le futur

Laurent Pérochon, programme ENVOL2008, Annecy 19 au 24 octobre 2008


Model Driven Architecture (MDA)
Représenter les modèles

UML UML MOF

Profil UML
(lié au domaine) UML Notre ML

Laurent Pérochon, programme ENVOL2008, Annecy 19 au 24 octobre 2008


Model Driven Architecture (MDA)
Meta Object Facility

Le MOF est un langage de définition de métamodèles


Il définie UML, pourquoi ne pas définir directement notre métamodèle du domaine ?

Model
Element

Import Namespace Constraint Tag Feature

Generalizable Behavioral
element Feature

Laurent Pérochon, programme ENVOL2008, Annecy 19 au 24 octobre 2008


Model Driven Architecture (MDA)
Représenter les modèles

Architecture
Modèle des exigences
Cas d’utilisation (CIM)

UML, Profils UML


Modèle métier
ou (PIM)
à partir du MOF

Principalement Modèle technique


Profils UML (PSM)

Laurent Pérochon, programme ENVOL2008, Annecy 19 au 24 octobre 2008


Model Driven Architecture (MDA)

Comment représenter les modèles (CIM PIM PSM) ?

Comment représenter les transformations ?

Laurent Pérochon, programme ENVOL2008, Annecy 19 au 24 octobre 2008


Model Driven Architecture (MDA)
Les transformations

Des outils existent

PIM PSM
Transformation
UML ou
Profil UML du domaine
Profil UML PSM

Métamodèle (MOF)
du domaine

A écrire

Laurent Pérochon, programme ENVOL2008, Annecy 19 au 24 octobre 2008


Model Driven Architecture (MDA)
Les transformations ne feront pas tout automatiquement : danger

Public RPVO getReservationParameter ()


Modèle transformation throws RemoteException{
} RPVO vo = null;
try
{ Danger
Autre modification

u el …
a n }
t m
jou
A
}

(T. Stahl et M. Völter, 2006)

Laurent Pérochon, programme ENVOL2008, Annecy 19 au 24 octobre 2008


Model Driven Architecture (MDA)
Les transformations ne feront pas tout automatiquement

Public RPVO getReservationParameter ()


throws RemoteException{
// PROTECTED REGION ID(12) START
RPVO vo = null;
try
{

}
// PROTECTED REGION END
}

(T. Stahl et M. Völter, 2006)

Laurent Pérochon, programme ENVOL2008, Annecy 19 au 24 octobre 2008


Model Driven Architecture (MDA)
les transformations

Comment décrire les règles de transformation ?


•Approche par programmation
Java MetaDataI Interchange (JMI),
Eclipse Metamodèle Framework (EMF)
MOF 2.0 to IDL(MOF vers Interface Definition Langage)
•Approche par template
(paramètres du modèle template)
•Approche par modélisation. On modélise la transformation. Query View
Transformation (MOF 2.0 QVT) : métamodèle des modèles de transformation.

Laurent Pérochon, programme ENVOL2008, Annecy 19 au 24 octobre 2008


Model Driven Architecture (MDA)
Exemple de transformation avec RubyTL
Module <module-name> do

rule <rule-name> do Nom de la règle


from <source-metaclass>
Défini source et cible
to {target-metaclass}

filter do |source_element| Filtre les éléments de la source


<expression>
end

mapping do |<source_element>, {target_element}|


{bindings}
Décrit précisement les transformations
end #de mapping

end #de rule

End #de Module


(Cuadrado et al. 2006)

Laurent Pérochon, programme ENVOL2008, Annecy 19 au 24 octobre 2008


Model Driven Architecture (MDA)
SimpleClass
Exemple de transformation avec RubyTL
typeOf *
Classifier 1 type Attribute
Name : String
Name : String
*
Owner
Visibility : String
attrs
DataType Class 1

SimpleJava

Classifier TypedElement
Name : String 1 type Name : String

Owner *
PrimitiveType Class Feature
1 attrs Visibility : String

Field Method parameters


* Parameter

(Sánchez Cuadrado et al. 2006)

Laurent Pérochon, programme ENVOL2008, Annecy 19 au 24 octobre 2008


Model Driven Architecture (MDA)
SimpleClass
Exemple de transformation avec RubyTL
typeOf *
Classifier 1 type Attribute
Name : String
Name : String
*
Owner
Visibility : String
attrs
Class 1

SimpleJava

Module transformation
Classifier TypedElement
Name : String 1 type Name : String rule ‘klass2javaclass’ do
from SimpleClass::Class
Owner * to SimpleJava::Class
Class Feature mapping do |klass, javaclass|
1 attrs Visibility : String javaclass.name = klass.name
javaclass.feature = klass.attrs
end
end

(Sánchez Cuadrado et al. 2006)

Laurent Pérochon, programme ENVOL2008, Annecy 19 au 24 octobre 2008


Model Driven Architecture (MDA)
les transformations

Le problème récurrent :
Plusieurs règles peuvent pouvoir être appliquées en même temps (ordre ?)
Deux règles peuvent s’imbriquer

(Sánchez Cuadrado et al. 2006)

Laurent Pérochon, programme ENVOL2008, Annecy 19 au 24 octobre 2008


Model Driven Architecture (MDA)

Persistance et échange de modèles

enregister Transférer entre applications

Laurent Pérochon, programme ENVOL2008, Annecy 19 au 24 octobre 2008


Model Driven Architecture (MDA)
Persistance et échange de modèles : XMI
XMI (XML Metadata Interchange) permet de représenter un modèle sous forme de
document XML. (Pas les diagrammes).
On complète avec DI (UML Diagram Interchange) pour les outils gérant les
modèles, sinon on utilise SVG (écrit en XML) pour les outils purement
graphique.
XLST (eXtensible Stylesheet Langage Transformation) permet de spécifier
des transformations de documents XML (donc éventuellement de
modèles). Transformation entre XMI, UML/DI vers SVG

Problème
Actuellement XMI ne permet pas l’échange de modèle entre outils car il repose
sur différentes versions de UML DI, XMI

Laurent Pérochon, programme ENVOL2008, Annecy 19 au 24 octobre 2008


Model Driven Architecture (MDA)
Persistance et échange de modèles: alternatives à XMI

OMG : MOF 2.0 to IDL


Java Community Process (JCP) SUN : Java Metadata Interface (JMI)
IBM : Framework Eclipse Modeling Framework (EMF)

Laurent Pérochon, programme ENVOL2008, Annecy 19 au 24 octobre 2008


Model Driven Architecture (MDA)
En bref

•Séparation infos métiers du technique : pérennité des savoir-faire


•Automatisation de modèles, productivité meilleur
•MDA est une approche à partir de CIM PIM et PSM, mais n’est pas une méthode
•Prise en compte des plateformes dans les PSM et les transformations PIM PSM

CIM PIM PSM CODE

On complète On complète
manuellement manuellement

•Stockage des modèles pas encore vraiment standardisé


• transformations à améliorer

Laurent Pérochon, programme ENVOL2008, Annecy 19 au 24 octobre 2008


Model Driven Architecture (MDA)
Les outils

Freeware
AndroMDA (andromda.org)
Eclipse/Acceleo (Obeo)
Eclipse / Open Architecture Ware (openArchitectureWare.org)
Eclipse/ Generic Eclipse Modeling System (Vanderbilt University)
Eclipse / Xscarecrows 4 MDA

Commercial
MDA Modeler (Softeam)
Eclipse/Rational Software Modeler (IBM)

Laurent Pérochon, programme ENVOL2008, Annecy 19 au 24 octobre 2008


Model Driven Architecture (MDA)
Bilan (mitigé)
MDA or not MDA ?
OUI
C’est une architecture qui repose sur des standards
Il y a de nombreuses recherches, de nombreux outils
Le gain potentiel semble intéressant

NON
Tout n’est pas encore standardisé, voir même développé
On doit compléter avec des approches/outils/langages non standardisées ou
propriétaires (paradoxe avec le soucis d’indépendance aux plateformes)

DONC ?
Cela semble être la voie du future proche : Il faut donc en tenir compte.
La séparation du domaine et de la technique est à réaliser. L’utilisation
d’UML ou des profils UML semble aussi être un bon choix.

Laurent Pérochon, programme ENVOL2008, Annecy 19 au 24 octobre 2008


Bibliographie
•Cette présentation est basée principalement sur le livre :
Blanc X.. MDA en action. Ingénierie guidée par les modèles.Eyrolles.
2005. 269 pages.
•Pour un aperçu général sur l’ingénierie dirigée par les modèles :
Favre J.M., Estublier J., Blay-Fornarino M. L’ingénierie dirigée par
les modèles. Au-delà du MDA.. Lavoisier. 2006. 227 pages.
•Pour une vision pratique de l’IDM :
Stahl T., Völter M. Model-Driven Software Development. Wiley. 2005.
428 pages.
•Pour une vision rapide :
Revue IEEE Computer Society, Vol 39, N°2, 2006.
•Un profil UML en biologie ?
Roux-Rouquié M., Caritey N., Gaubert L., Le Grand B., Soto M.
Metamodel and modeling langage : towards an unified modelling
langage (UML) profile for systems biology. SCI05, Orlando, Florida,
USA, 2005. Disponible à www.mcxapc.org/docs/ateliers/0506roux1.pdf.
2005

Laurent Pérochon, programme ENVOL2008, Annecy 19 au 24 octobre 2008


•Métamodélisation et ontologies :
Gašević D., Djurić D., Devedžić V. Model Driven Architecture and
Ontology development. Springer. 2006. 311 pages
•Divers :
Cabot J., Teniente E. Constraint Support in MDA tools : a survey. Model
Driven Architecture-Foundations and Applications. ECMDA-FA,
Bilbao, Spain. 2006. Springer. Pp. 256-267.
Mellor S.J., Clark A.N., Futagami T. introduction: Model-Driven development.
IEEE Software, 2003. vol 20, no 5, pp 14-18.
Roux-Rouquié M., Schuch da Rosa D. Ten Top Reasons for systems biology
to get into Model-Driven Engineering. Proceedings of the 2006
international workshop on Global integrated model management.
Metamodels and semantics. Pp. 55-58. 2006
Sànchez Cuadrado J., García Molina J., Menárguez Tortosa M. RubyTL: A
practical, extensible Transformation Langage. Model Driven
Architecture-Foundations and Applications. ECMDA-FA, Bilbao, Spain
2006. Springer. Pp. 158-172.
•Sites internet :
www.omg.org
www.eclipse.org
www.developpez.com
exemple simple : cedric-brun.developpez.com/mda/acceleo/acceleogmf/
Laurent Pérochon, programme ENVOL2008, Annecy 19 au 24 octobre 2008