Sie sind auf Seite 1von 138

Ingnierie Dirige par les Modles

Ingnierie Dirige par les Modles


Cours du Mastre de recherche en Informatique de lESSTT

Yousra Hlaoui Bendaly

-1-

Ingnierie Dirige par les Modles

Rfrences du cours

Cours de Hanen Abdallah lingnierie de modles logiciels: OMG, MDA Guide Version 1.0.1 . http://www.omg.org/mda OCL: Models Manipulation, Christian Hein, Fraunhofer FOKUS www.eclipse.org/gmt/omcw/resources/chapter01/downloads/OCL2ShortLe cture.Fraunhofer.ppt

Yousra Hlaoui Bendaly

-2-

Ingnierie Dirige par les Modles

Plan
V. Les transformations de modles : I. Introduction Taxonomie des transformations de Langages/mthodes de modles programmation : une volution Types de transformations. Mthodes de GL: une volution ATL, et Le standard QVT. Crise du logiciel: Intgration et interoprabilit Exemples de transformation. II. Introduction au MDSD VI. Outils de support pour MDA Dfinition, avantages Extensions UML et OCL Vision de lOMG III. Introduction MDA: ([1]) Principe du MDA Outils du MDA IV. La modlisation dans MDA Ce quest un modle ? Lintgration, La transformation, La gnration de code, Le stockage et laccs PIM PSM un exemple de PM (CCM)
.

Yousra Hlaoui Bendaly

-3-

Ingnierie Dirige par les Modles

I1. Langages/mthodes de programmation

Langages Procduraux et Fonctionnels: Fortran, Cobol, C Langages orient-objet: Smalltalk, C++, Java Evolution guide par lamlioration de la productivit, rutilisabilit, facilit de maintenance, volution des logiciels Langages (architectures) orient-composant: CCM, DCOM, EJB Evolution des rseaux (Internet) et laugmentation de la complexit des logiciels Un composant: est un ensemble dobjets, cohrent et autonome peut tre distribu sur un rseau peut appeler dautres composants sans savoir leur emplacement physique Langages orient-webservice: UDDI (annuaire), WSDL (description), SOAP (communication) Expansion dusage de XML (langage de description de donnes), besoin de standardiser la communication inter composant Standardisation de composant par lOMG: la norme Corba
.

Yousra Hlaoui Bendaly

-4-

Ingnierie Dirige par les Modles

Mthodes de GL

Dfinition :

Une mthode est une manire de dire, de faire, d'enseigner une chose suivant certains principes et avec un certain ordre.
Petit Larousse

Merise et OMT sont des mthodes. Mthode = Notation + Dmarche + Outils. Initialement l'OMG dsirait une mthode "unifie". De faon raliste il n'a t possible de se mettre d'accord dans
un premier temps que sur une notation "unifie" (UML).

Aprs avoir standardis la notation, l'OMG s'attaque


maintenant au problme de la standardisation des mthodes.

L'une des raisons est qu'il n'existe pas une seule mthode, mais une infinit de mthodes.

l'OMG s'appuie sur des mthodes industrielles comme le RUP


(Rational Unified Process) pour dfinir le noyau de mthode gnrique UPM (Unified Process Model).
.

Yousra Hlaoui Bendaly

-5-

Ingnierie Dirige par les Modles

Les grandes classes de mthodes en G.L.

Les mthodes d'organisation stratgique.

Comment laborer le schma directeur ? Orientations suivre. Moyens mettre en uvre. Guider les dveloppeurs de la phase d'analyse la phase de maintenance. Aider le chef de projet informatique planifier son projet, valuer les charges et en suivre l'avancement. Mettre en place des procdures pour amliorer la qualit des produits dvelopps.

Les mthodes de dveloppement.

Les mthodes de conduite de projet.

Les mthodes d'assurance et de contrle qualit.

Yousra Hlaoui Bendaly

-6-

Ingnierie Dirige par les Modles

Mthode de dveloppement

Elle doit permettre de :

Construire des systmes oprationnels Organiser le travail Grer le cycle de vie complet Grer les risques Obtenir de manire rptitive des produits de qualit constante Le cycle de dveloppement prend en compte la partie amont (pr
tude) et s'achve lorsque le logiciel est livr. Le cycle de vie dbute avec la spcification et s'achve sur les phases d'exploitation et de maintenance.

Dfinitions de l'IEEE :

Yousra Hlaoui Bendaly

-7-

Ingnierie Dirige par les Modles

Dfinitions

Une notation permet de reprsenter de faon uniforme


l'ensemble des artefacts logiciels produits ou utiliss pendant le cycle de dveloppement. Artefact = tout lment d'information utilis ou gnr pendant la totalit du cycle de dveloppement d'un systme logiciel.

Exemple: morceau de code, commentaire, spcification

statique/comportementale d'une classe, jeu/programme de test, interview d'un utilisateur potentiel du systme, description du contexte d'installation matriel, diagramme d'une architecture globale, prototype, rapport de ralisation, modle de dialogue, manuel utilisateur, etc.

Une mthode c'est un processus outill avec un ensemble


cohrent de notations.
Yousra Hlaoui Bendaly
.

-8-

Ingnierie Dirige par les Modles

Plan du cours : Partie thorique I


I. Introduction

V. Les transformations de modles

Langages/mthodes de programmation : une volution Mthodes de GL:

une volution

Crise du logiciel: Intgration et interoprabilit Dfinition, avantages Extensions UML et OCL Vision de lOMG Principe du MDA Outils du MDA Ce quest un modle ? Lintgration, La transformation, La gnration de code, Le stockage et laccs PIM PSM un exemple de PM (CCM)
.

II. Introduction au MDSD

Taxonomie des transformations de modles Types de transformations. Le standard QVT. Exemples de transformation.

VI. Outils de support pour MDA

III. Introduction MDA

IV. La modlisation dans MDA

Yousra Hlaoui Bendaly

-9-

Ingnierie Dirige par les Modles

Crise du logiciel
Yousra Hlaoui Bendaly
.

- 10 -

Ingnierie Dirige par les Modles

Les systmes deviennent plus complexes

Volume croissant

Des donnes Du code De la partie mtier (mondialisation, concentrations, restructurations, ) De la partie plate-forme d'excution Des langages et des paradigmes Des supports de donnes et des protocoles d'accs Des systmes et des plates-formes Des technologies

volutivit croissante

Htrognit croissante

Le rythme d'arrive des nouvelles technologies s'acclre sans cesse Les vielles technologies persistent

Yousra Hlaoui Bendaly

- 11 -

Ingnierie Dirige par les Modles

Deux dfis pour le dveloppement de logiciels:

Grer la complexit:

Volume croissant de code et des donnes:

Windows XP > 40 million lignes de code!! Un seul programmeur ne peut pas grer une telle quantit de code tout
seul

Evolution continue des logiques des affaires et des plate-formes Htrognit croissante:

Nouveaux langages et paradigmes Nouvelles technologies et plate-formes Plusieurs personnes incluses dans le processus de dveloppement dun
logiciel (quipes distribues, pas tous des experts en programmation, clients, )

Grer les changements:

Quand un nouveau middleware est produits (ex: EJB ou Corba), on ne veut pas changer compltement les logiciels des applications

Yousra Hlaoui Bendaly

- 12 -

Ingnierie Dirige par les Modles

Que faire ?

( sachant que de ne rien faire est une option de plus en plus


coteuse et dangereuse) ( sachant que la complexit a atteint un tel niveau qu'il est hors de porte d'un seul individu d'avoir une vision globale sur un systme en volution)

Acclrer encore la course aux nouvelles technologies

dans l'espoir qu'une nouvelle solution magique se prsente ? Fuite en avant ? Les technologies doivent tre values essentiellement pour leur capacit

d'intgration de matrise de la complexit

Yousra Hlaoui Bendaly

- 13 -

Ingnierie Dirige par les Modles

Des organisations de complexits croissantes

1980
Technologie procdurale Technologie des objets

1995
Technologie des composants
Beans, Components, Containers, Packages, Interfaces, Use cases, Scenarii,Services, Frameworks, Applications, Patterns, Aspects, etc.

Procdures

Objets, Classes, Mthodes

Yousra Hlaoui Bendaly

- 14 -

Ingnierie Dirige par les Modles

Les limites des objets et des composants

Les patrons de conception ne sont pas des objets Les aspects ne sont pas des objets Les applications ne sont pas des objets Les services ne sont pas des objets Les objets ont chou dans prise en compte de la concurrence Les objets ont chou dans la recherche de simplicit Les objets ont chou dans la recherche de l'extensibilit Les objets ont chou dans la recherche de l'intgration Les objets ont chou dans leur tentative d'intgration des SGBD Les objets ont rat le rendez-vous du Web (URI, etc) La technologie des composants n'est qu'une fuite en avant et apporte peu d'espoir pour une sortie de crise. Elle accentue la complexit des solutions. Les logiciels composants seront le legacy de demain.

Yousra Hlaoui Bendaly

- 15 -

Ingnierie Dirige par les Modles

La cote des paradigmes

objets composants processus rgles services vnements, transactions,


etc.

Par exemple :

Un modle de services est mieux adapt la techno Web actuelle (WebServices, SOAP, WSDL, WSFL, etc.) Un modle de services s'accommode beaucoup mieux qu'un modle d'objets ou de composants aux extensions nonfonctionnelles Un modle de services s'interface beaucoup plus facilement avec un modle de workflow qu'un modle d'objets

La technologie des modles permet de subsumer la plupart de ces paradigmes et bien d'autres.

Yousra Hlaoui Bendaly

- 16 -

Ingnierie Dirige par les Modles

Objets vs. Modles : ce n'est qu'un volet du dbat

La proportion de code automatiquement gnr par rapport au code directement produit la main tend crotre trs rapidement. certains gards Java tient dj la place du langage d'assemblage et UML du langage de haut niveau.

Interpretative approaches

MDA

Dist. OS + Middleware

compiler compiler's

OS

Transformational approaches

1950
.

1975

2000

2025
- 17 -

Yousra Hlaoui Bendaly

Ingnierie Dirige par les Modles

Une organisation plus raliste

Les use cases; Les racines applicatives fonctionnelles; Les fonctions selon JSD;

Modle de mtier

Le contexte; Le modle neutre et stable de l'entreprise; Les objets mtier, les rgles mtier, les processus mtier;

Modle de service

fusion

Modle de conception

Modle de code
Le code excutable;

Modle de ressources
Yousra Hlaoui Bendaly
.

La plate-forme (CORBA, EJB, DotNet, );

- 18 -

Ingnierie Dirige par les Modles

Conclusion

Use cases
Patterns

Technologie des Objets

La Technologie des Objets a eu rpondre de nombreux dfis depuis sa diffusion industrielle dans les annes 1980 De faon gnrale, elle n'a pas russi trouver en son sein, les moyens de rpondre ces dfis En consquence les solutions trouves sont souvent baroques, informelles, non gnralisables difficilement combinables.

Aspects

etc.

Yousra Hlaoui Bendaly

- 19 -

Ingnierie Dirige par les Modles

Conclusion

L'IdM (Ingnierie des Modles) semble tre en mesure de rpondre certains de ces dfis pour lesquels la TdO n'a pas su trouver des rponses internes. Parmi ceux-ci on pourrait citer :

IdM
Services

Patterns

Use cases

TdO
QoS Rgles Aspects Processus Applications

Gestion spare des aspects Prise en compte homogne des lments fonctionnels et nonfonctionnels Intgration homogne de points de vue diffrents (rgles, services, processus, architecture, etc.) etc.

etc.

L'IdM semble pouvoir subsumer la TdO et offrir une voie d'volution progressive aux solutions actuelles base d'objets et de composants.

Yousra Hlaoui Bendaly

- 20 -

Ingnierie Dirige par les Modles

Plan du cours : Partie thorique I


I. Introduction II. Introduction au MDSD
V. Les transformations de modles

Dfinition, avantages Extensions UML et OCL Vision de lOMG Principe du MDA Outils du MDA [7] Ce quest un modle ? Lintgration, La transformation, La gnration de code, Le stockage et laccs PIM PSM un exemple de PM (CCM)

III. Introduction MDA:

Dfinitions Mta-modles et niveaux de mtamodles Les transformations de modles et CWM La gnration de code. Persistance des modles et XML. Echange de modles et XMI.

V. Outils de support pour MDA

IV. La modlisation dans MDA

Yousra Hlaoui Bendaly

- 21 -

Ingnierie Dirige par les Modles

II. Introduction au MDSD

Model-Driven Software Development


Yousra Hlaoui Bendaly
.

- 22 -

Ingnierie Dirige par les Modles

Modlisation et modle

La modlisation est le fait de reprsenter une certaine

ralit pour atteindre un but bien dtermin de manire de manire simple en vitant la complexit et lirrversibilit de la ralit Un modle est une abstraction de la ralit

il ne peut pas reprsenter la totalit de la ralit Il reprsente une perception ou une vue de la ralit
Interprtation mentale

Ralit: perception

Modle

Yousra Hlaoui Bendaly

- 23 -

Ingnierie Dirige par les Modles

Un modle est une vue partielle dun systme


RepDe

Un systme

Diffrents Modles du systme (Vues partielles)

Modle respiratoire

Modle de Squelette

Yousra Hlaoui Bendaly

- 24 -

Ingnierie Dirige par les Modles

Dveloppement de logiciels dirig par les modles 1

Une approche de dveloppement de logiciels

dont les artefacts de base sont les modles et non pas les programmes

Gnration automatique des programmes partir des


modles

Utilisation directe de langages de modlisation comme outils


dimplmentation

Le modle est limplmentation

Yousra Hlaoui Bendaly

- 25 -

Ingnierie Dirige par les Modles

Dveloppement de logiciels dirig par les modles 2

MDSD est

le dveloppement de logiciels reli au domaine (domain-related) et non pas reli reli au traitement (computing related) MSMD rend le dveloppement de logiciels spcifique un domaine bien dtermin Markus Voelter: Focus on business not code

Yousra Hlaoui Bendaly

- 26 -

Ingnierie Dirige par les Modles

Phases du MDSD

1. Dvelopper les modles


bass sur certains mtamodles 2. Transformer les modles vers un code excutable en utilisant des patrons de transformation 3. Fusionner si ncessaire le code gnr automatiquement avec un code gnr manuellement 4. Des transformations modle-modle peuvent prcder la transformation de code excutable
Yousra Hlaoui Bendaly
.

- 27 -

Ingnierie Dirige par les Modles

Pourquoi utiliser MDSD

Fournir diffrentes implmentations pour un seul modle

qui sera excut sur diffrentes plaleformes (Java, Corba, .Net) Se librer du dtail de limplmentation et se focaliser sur la spcification des fonctionnalits du systme Simplifier et abstraire les systmes complexes Produit un bon moyen de communication entre clientdveloppeur et entre dveloppeur-dveloppeur tout en rduisant le cot d une fausse interprtation Documentation amliore Met en vidence diffrents niveaux dabstraction

Abstraction: cacher le dtail

Raffinement: ajouter le dtail


Yousra Hlaoui Bendaly
.

Cacher les changements du bas niveau dabstraction

- 28 -

Ingnierie Dirige par les Modles

Pourquoi utiliser MDSD

Amliorer la maintenance et faciliter lvolution et

lextension Permettre une meilleur gestion de la complexit par la modlisation travers des digrammes spars Augmente la visibilit dans les projets Renforce la rutilisation au moment de la conception

Yousra Hlaoui Bendaly

- 29 -

Ingnierie Dirige par les Modles

Plan du cours : Partie thorique I


I. Introduction II. Introduction au MDSD

V. Les transformations de modles

Dfinition, avantages Extensions UML et OCL Vision de lOMG Principe du MDA Outils du MDA Ce quest un modle ? Lintgration, La transformation, La gnration de code, Le stockage et laccs PIM PSM un exemple de PM (CCM)

III. Introduction MDA

Taxonomie des transformations de modles Types de transformations. Le standard QVT. Exemples de transformation.

VI. Outils de support pour MDA

IV. La modlisation dans MDA

Yousra Hlaoui Bendaly

- 30 -

Ingnierie Dirige par les Modles

Le Mtamodle UML

Un mtamodle est un modle reprsentant la


structure et la smantique dun ensemble particulier de modles.

Un modle UML model est une instance dun


mtamodle UML.

Le mtamodle UML

Dcrit les lments dun modle UML Est spcifi en utilisant un sous-ensemble dUML Est organis sous forme de packages

Yousra Hlaoui Bendaly

- 31 -

Ingnierie Dirige par les Modles

Le Mtamodle UML (suite)

Un mtamodle UML est dfini par:


Syntaxe abstraite: le mtamodle UML est dcrit par un diagramme de classe UML - Rgles bien formes : utlises pour exprimer des contraintes dfinies sur les lments du modle -Exemple: une classe ne peut pas avoir deux noms - Smantique: dcrit en utilisant le langage naturel la smantique des lments du modle

Yousra Hlaoui Bendaly

- 32 -

Ingnierie Dirige par les Modles

Pourquoi utiliser un mcanisme dextension

Bien que UML possde une syntaxe bien dfinie, il

ncessite dtre adapt un domaine spcifique pour rsoudre un problme dtermin Les mcanismes dextension tendent UML par:

Il existe trois mcanismes dextension

Lajout des nouveaux lments de modlisation La cration de nouvelles proprits La spcification dune nouvelle smantique Strotypes, valeurs tiquettes, contraintes et commentaires

Yousra Hlaoui Bendaly

- 33 -

Ingnierie Dirige par les Modles

Strotypes

Les strotypes sont utiliss pour tendre UML par des

nouveaux lments de modlisation qui peuvent tre utiliss dans un domaine bien spcifique Exemple: Lorsquon modlise un systme de contrle dun ascenseur nous avons besoin de spcifier des classes et des tats comme:

Les strotypes doivent tre utiliss de manire


consistante

<<Matriel>> <<Logiciel>>

Yousra Hlaoui Bendaly

- 34 -

Ingnierie Dirige par les Modles

Strotypes

Comment reprsenter un strotype

Placer le nom du strotype au-dessus du nom de


llment concern le nom du strotype doit tre mis entre <<>>. Exemple:

Yousra Hlaoui Bendaly

- 35 -

Ingnierie Dirige par les Modles

Valeurs tiquettes

Dfinissent de nouvelles proprits pour nimporte quel

type dlment de modlisation Peuvent tre utiliss pour des lments de modlisation strotyps ou non Sont dfinies par la paire tiquette-valeur:

ajoutent des proprits concernant:


Gnration de code Contrle de la version Droits dauteur

tiquette: proprit Valeur: valeur de la proprit

Yousra Hlaoui Bendaly

- 36 -

Ingnierie Dirige par les Modles

Valeurs tiquettes

Une valeur tiquette est reprsente par une chane de


caractres entre deux accolades :

{ Eiquette1=Valuer1,
Etiquette 2= Valeur2, Etiquetten=valeurn }

Exemple:

Yousra Hlaoui Bendaly

- 37 -

Ingnierie Dirige par les Modles

Contraintes

Sont utilises pour tendre la smantique dUML

en ajoutant de nouvelles rgles ou en modifiant les anciennes

Sont aussi utilises pour spcifier des conditions qui Sont reprsentes par le langage naturel ou par le
langage OCL (Object Constraint language)

doivent tre satisfaites par les lments de modlisation

Yousra Hlaoui Bendaly

- 38 -

Ingnierie Dirige par les Modles

Commentaires

Sont utiliss pour clarifier les modles construits

Est reprsent par une chane de caractres dans


une note Une note peut contenir aussi une expression OCL Exemple

Expliquer la rflexion effectue pour tablir un modle

Yousra Hlaoui Bendaly

- 39 -

Ingnierie Dirige par les Modles

Profiles UML - UML profiles

Fournissent un mcanisme dextension pour construire


des modles UML pour des domaines spcifiques

Exemples:

Systmes temps rel, dveloppement Web

Un profil consiste en un package contenant un ou


Appliqus aux lments de modlisation dUML

plusieurs mcanismes dextension relatifs savoir les strotypes, valeurs tiquettes et contraintes

Les profiles UML ntendent pas le mta-modle UML

Ils sont appels les mcanismes lger dextension dUML


Yousra Hlaoui Bendaly
.

- 40 -

Ingnierie Dirige par les Modles

Profiles UML

Un profile UML est une spcification qui:


Identifie un sous ensemble dlments du mta modle UML ou sa
totalit

Spcifie les strotypes et ou les valeurs tiquettes Spcifie des rgles bien formes autre que celle prdfinies Spcifie une smantique en langage naturel

Yousra Hlaoui Bendaly

- 41 -

Ingnierie Dirige par les Modles

Exemple dun profile

On dsire crer

un UML profile pour reprsenter les composantes basiques dun GUI

Nous supposons que notre GUI contient les lments


suivants:

Fentres qui peuvent tre aussi des boites de dialogue Boutons

Des contraintes: en pratique nous avons besoin dtre


plus prcis

Une fentre peut invoquer une boite de dialogue les fentre ou les boites de dialogue peuvent contenir des boutons
- 42 -

Yousra Hlaoui Bendaly

Ingnierie Dirige par les Modles

Le package GUI

Yousra Hlaoui Bendaly

- 43 -

Ingnierie Dirige par les Modles

Diagramme dinstance pour le profile GUI

Yousra Hlaoui Bendaly

- 44 -

Ingnierie Dirige par les Modles

OCL OBJECT CONSTRAINT LANGUAGE

Yousra Hlaoui Bendaly

- 45 -

Ingnierie Dirige par les Modles

Motivation

Les langages graphiques de spcification telles que UML


ne peuvent modliser quune vue partielle du systme en tant que notes marginales

Les contraintes sont souvent exprimes en langage naturel


Gnralement sont ambigus et imprcises Non automatiquement contrlable ou vrifiables

Les langages formels sont les plus adapts

Yousra Hlaoui Bendaly

- 46 -

Ingnierie Dirige par les Modles

Motivation

Les langages formels traditionnels ncessitent des


connaissances mathmatiques assez pousses

Exemple: Z, CTL, Utiliss souvent par les acadmiques et non pas par les industriels Difficiles apprendre et manipuler

Le langage OCL vient pour satisfaire les objectifs suivants:


Formel, rigoureux et prcis Utilis par un grand nombre dutilisateurs: programmeurs,
dveloppeurs, Est un langage de spcification et non pas de programmation

Yousra Hlaoui Bendaly

- 47 -

Ingnierie Dirige par les Modles

Contraintes

Une contrainte est toujours associe un lment du


modle

Invariants Pr et Post condition Garde Spcification des buts des messages et des actions Valeurs initiales et drives des attributs

Cet lment constitue le contexte de la contrainte Deux manires pour exprimer le contexte dune contrainte
En crivant la contrainte entre {} dans une note En utilisant le mot cl context dans un document accompagnant
le modle

Yousra Hlaoui Bendaly

- 48 -

Ingnierie Dirige par les Modles

Contraintes OCL

Yousra Hlaoui Bendaly

- 49 -

Ingnierie Dirige par les Modles

Type de contrainte - Invariants

Un invariant exprime une contrainte sur un objet ou un Syntaxe :


inv : <expression_logique>

groupe dobjets qui doit tre respecte en permanence

Lexpression logique doit tre toujours vraie Exemple 1 : Le solde dun compte doit tre toujours positif
context Compte inv : solde>0

Yousra Hlaoui Bendaly

- 50 -

Ingnierie Dirige par les Modles

Type de contrainte - Invariants

Exemple 2

Context Employee Inv : self.age > 18

Yousra Hlaoui Bendaly

- 51 -

Ingnierie Dirige par les Modles

Type de contrainte Prcondition - Postcondition

Une prcondition permet de spcifier une condition qui

doit tre vrifie avant lappel dune opration. Une postcondition permet de spcifier une condition qui doit tre vrifie aprs lappel dune opration self: fait rfrence lobjet sur lequel laction est appele Return dsigne le rsultat de lopration

Yousra Hlaoui Bendaly

- 52 -

Ingnierie Dirige par les Modles

Spcification du rsultat ou du but dune action

Lexpression de contrainte body permet de dfinir


directement le rsultat dune opration

Syntaxe :
body : <action> <action> : expression qui retourne le rsultat dont le type est compatible avec le type de retour de lopration

Exemple

Yousra Hlaoui Bendaly

- 53 -

Ingnierie Dirige par les Modles

Dfinition de variables et dactions

Une sous expression peut tre utilise plusieurs fois dans


une expression

Deux expressions de contraintes :



let : permet de dclarer et dinitialiser un attribut qui peut tre utilis dans lexpression qui suit le mot cl in def : permet de dclarer et dinitialiser une variable ou un attribut qui peut tre utilis dans dautres expressions OCL .

Syntaxes :
let <dclaration>=<action> in <expression>

def : <dclaration>=<action>

Yousra Hlaoui Bendaly

- 54 -

54

Ingnierie Dirige par les Modles

Dfinition de variables et dactions

Exemple

Yousra Hlaoui Bendaly

- 55 -

Ingnierie Dirige par les Modles

Initialisation et drivation des attributs

Le type de contrainte init permet de prciser la valeur

initiale dun attribut ou dune terminaison dassociation La valeur dun attribut driv est dfinie par la contrainte derive. Syntaxes init : <requte> derive : <requte> Exemples

Yousra Hlaoui Bendaly

- 56 -

56

Ingnierie Dirige par les Modles

Types et oprations OCL

Le langage OCL possde un certain nombre de types


prdfinis et doprations prdfinies sur ces types :

Boolean Integer Real String

Yousra Hlaoui Bendaly

- 57 -

57

Ingnierie Dirige par les Modles

Types et oprations OCL

Type

oprateurs

Boolean And, or, xor, not, implies, ifthenelseendif Integer Real String
+,-, *, /, abs(), +,-, *, /, abs(), floor(), Concat(), size(), substring(),

Yousra Hlaoui Bendaly

- 58 -

58

Ingnierie Dirige par les Modles

Collections

Le langage OCL manipule plusieurs collections :



Set : collection non ordonne dlments uniques orderedSet : collection ordonne dlments uniques Bag : collection non ordonne dlments Sequence : collection ordonne dlments Collection Set lments ordonnes lments uniques Non Oui Oui Non Non

OrderedSet Oui Bag Sequence Non Oui

Yousra Hlaoui Bendaly

- 59 -

59

Ingnierie Dirige par les Modles

Quelques oprations sur les collections - Opration de base La syntaxe : collection -> operation()

size() : nombre dlments count() : nombre doccurrences sum() : somme des lments isEmpty() : est vide notEmpty() : non vide includes(el) : appartenance excludes(el) : non appartenance includesAll(col) : inclusion excludesAll(col) : exclusion

Yousra Hlaoui Bendaly

- 60 -

60

Ingnierie Dirige par les Modles

Quelques oprations sur les collections - Filtrage select(cond) : retient les lments qui vrifient la condition reject(cond) : limine les lments qui vrifient la condition any(cond) : retourne lun des lments qui vrifie la condition forAll(cond) : true si tous les lments vrifient la condition exists(cond) : true si au moins un lment vrifie la condition isUnique(exp) : true si une et une seule valeur de la collection qui vrifie la condition

Yousra Hlaoui Bendaly

- 61 -

61

Ingnierie Dirige par les Modles

Opration ensembliste - Set ou OrederedSet union(ens) : union - : diffrence (ens1 ens2) including(el) : ajoute un lment excluding(el) : retire un lment

Yousra Hlaoui Bendaly

- 62 -

62

Ingnierie Dirige par les Modles

Navigation travers une association

Pour faire rfrence un objet (ou un groupe dobjets)


associ via une association, On utilise :

Dans le contexte de la classe Personne, on fait rfrence


la classe socit avec lune des deux mthodes :

Le nom de la classe associe en minuscule Le nom du rle ct de la classe associe

employeur socit employeur.adresse socit.adresse

De mme pour accder ladresse de la socit :

Yousra Hlaoui Bendaly

- 63 -

Ingnierie Dirige par les Modles

Navigation travers une association

Lutilisation du rle est indispensable si :


Il existe plusieurs associations entre lobjet dsign par le contexte et lobjet auquel on dsire accder Lassociation est rflexive

Yousra Hlaoui Bendaly

- 64 -

64

Ingnierie Dirige par les Modles

OCL dans MDA

OCL est essentiel pour MDA


Des modles plus prcis Dfinitions des langages de modlisation Dfinition des contraintes dans les profiles

Yousra Hlaoui Bendaly

- 65 -

Ingnierie Dirige par les Modles

Plan du cours : Partie thorique I


I. Cadre et Problmatique II. Introduction au MDSD:

V. Les transformations de modles

Dfinition, avantages Extensions UML et OCL Vision de lOMG Principe du MDA Outils du MDA Ce quest un modle ? Lintgration, La transformation, La gnration de code, Le stockage et laccs PIM PSM un exemple de PM (CCM)

III. Introduction MDA

Taxonomie des transformations de modles Types de transformations. Le standard QVT. Exemples de transformation.

VI. Outils de support pour MDA

IV. La modlisation dans MDA

Yousra Hlaoui Bendaly

- 66 -

Ingnierie Dirige par les Modles

Le MDA
Model Driven Architecture

Yousra Hlaoui Bendaly

- 67 -

Ingnierie Dirige par les Modles

MDA: La nouvelle vision de l'OMG


"OMG is in the ideal position to provide the model-based standards that are necessary to extend integration beyond the middleware approach Now is the time to put this plan into effect. Now is the time for the Model Driven Architecture." Richard Soley and the OMG staff, MDA Whitepaper Draft 3.2 November 27, 2000

(appel contribution)
Yousra Hlaoui Bendaly
.

- 68 -

Ingnierie Dirige par les Modles

OMGs milestones

Yousra Hlaoui Bendaly

- 69 -

Ingnierie Dirige par les Modles

Du middleware vers le modelware


Object Request Broker
Not initially standardized by OMG; Scope is single application or vendor Compound Docs Object Linking Help Facilities User Interface Desktop Mgmt Vertical Markets

Application Objects

CORBA Facilities

OMA MDA

Lifecycle Events Naming Persistence Transactions Concurrency

CORBA Services

Externalization Security Time Properties Query Licensing

Lannion, 2 juillet 2001 Runion Groupe META

IDL --> UML


(du centr-code au centr-modles)
Yousra Hlaoui Bendaly
.

- 70 -

Ingnierie Dirige par les Modles

MDA
1. Modlisation de la logique mtier avec: UML, MOF et CWM

2. Modle mtier est spcialis avec une technologie middleware: EJBs, Corba, .NET, WebServices,

3. Modle spcialis est instanci un domaine pour construire un framework spcifique au domaine

Yousra Hlaoui Bendaly

- 71 -

Ingnierie Dirige par les Modles

Correspondance vers des plate-formes multiples et volutives

Modles neutres bass sur UML et MOF

COM+ DCOM CORBA

Java EJB C# DotNet

HTTP HTML XML SOAP

MOF et UML constituent le cur de la technologie MDA. Hypothse : Des modles technologiquement neutres peuvent tre mis en uvre sur une grande varit de technologies de plateformes.

Yousra Hlaoui Bendaly

- 72 -

Ingnierie Dirige par les Modles

Oprations sur modles multiples

Modle UML

Modle Java

Yousra Hlaoui Bendaly

- 73 -

Ingnierie Dirige par les Modles

Les lments des diffrents modles sont dpendants


Modle mtier UML
Vehicle

Modle de code Java


comesFrom
Vehicle

specializes
Truck

comesFrom

extends
Truck

comesFrom

Problme : Comment prendre en compte de faon prcise les relations inter-modles comme les relations intra-modles ? Constat : Les problmes de traabilit, de transformation, de tissage d'aspects sont des cas particuliers de la mise en correspondance de modles. Ils doivent se traiter au niveau des mta-modles.
Yousra Hlaoui Bendaly
.

- 74 -

Ingnierie Dirige par les Modles

MDA: Le principe

Modlisation: domaine et scnarii

Modlisation: Plate-forme

Plateform-Independent Model PIM

Plateform Model PM

Fusion + Transformation PSM Plateform-Specific Model

Outils de gnration de code

programme

Yousra Hlaoui Bendaly

- 75 -

Ingnierie Dirige par les Modles

MDA: Le principe simplifi

Yousra Hlaoui Bendaly

- 76 -

Ingnierie Dirige par les Modles

Pratiques & Objectifs

Pratiques
niveaux

Dcomposer en niveaux dabstraction Automatiser les relations inter/intra niveaux Formaliser les informations contenues dans les

Objectifs

laboration de nouvelles applications volution dapplications existantes Matriser limpact des nouvelles technologies
.

Yousra Hlaoui Bendaly

- 77 -

Ingnierie Dirige par les Modles

Lapproche
Modle dexigences: reprsente lapplication dans son environnement. Modle danalyse et de conception abstraite: reprsente larchitecture de lapplication. Modle de code: reprsente la construction de lapplication.

Code de lapplication et fichier de configuration.

Yousra Hlaoui Bendaly

- 78 -

Ingnierie Dirige par les Modles

Systmes et modles
Un modle M est une reprsentation simplifie du monde; en fait d'une partie S du monde appele le systme.

M1

M M

(l'espace de modlisation)
estReprsentPar

M0

(le monde)

S S
.

Yousra Hlaoui Bendaly

- 79 -

Ingnierie Dirige par les Modles

AOSE Aspect-Oriented Software Engineering

Un systme donn

M1

Ma Mb Ma Mb Mc Mc

estReprsentPar

M0

S S
Yousra Hlaoui Bendaly
.

peut avoir plusieurs modles diffrents Chaque modle reprsente un aspect diffrent du systme. AOM : Aspect-Oriented Modeling. Inversement on peut combiner des modles diffrents extraits du mme systme: opration de tissage des aspects.

- 80 -

Ingnierie Dirige par les Modles

Principe de substituabilit limite

Le but d'un modle est toujours d'tre capable de

rpondre certaines questions en lieu et place du systme qu'il est cens reprsenter. Il doit rpondre ces questions exactement de la mme faon que le systme y aurait rpondu lui-mme, si on l'avait interrog.

System ask()

represents

Model ask()

Yousra Hlaoui Bendaly

- 81 -

Ingnierie Dirige par les Modles

Mta-modle

System

represents

Model

Meta-Model terminology assertions

M*
La correspondance entre un modle et un systme est dfinie par un mta-modle.
Yousra Hlaoui Bendaly
.

- 82 -

Ingnierie Dirige par les Modles

MDA Basic Elements: Meta-models

The four-layer architecture:

(M3) Meta-meta-model:

One

unique meta-meta-model, the Object Facility (MOF). It is some kind of "top level ontology

Meta-

(M2) Meta-model:

Defines structure, semantics and constraints


for a family of models.

(M1) Model:

Each of the models is defined in the language


of its unique metamodel.

(M0) the real world

UML profiles are adapted modelling languages. - 83 -

Yousra Hlaoui Bendaly

Ingnierie Dirige par les Modles

Modles MDA CIM: Computation Independent Model

Spcification du systme indpendamment des traitement

(computation): sans indication de la structure du systme Appel aussi: domaine model, et spcifi avec le jargon du domaine Important pont entre les experts du domaine et ses besoins et les experts en design

PIM: Platform Independent Model PSM: Platform Specific Model


CORBA"

Spcification neutre d'un systme (modle de mtier et de service) qui


ignore tous les dtails de mise en oeuvre Exemple: systme de facturation exprim en UML

Modle de mtier et de service li un modle de plate-forme Exemple : Systme de facturation exprim en "UML profile for ex. : modles de composants diffrents niveaux d'abstraction :
CCM, C#, EJB, EDOC,
.

Modles de plate-forme (PDM ou PM)

Yousra Hlaoui Bendaly

- 84 -

Ingnierie Dirige par les Modles

Espaces concrets et abstraits

UML/MOF

Espace abstrait De modlisation

XMI/XSLT projection IDL

JSR #40 Java User Community (Sun)

Java/EJB C#/DotNet
.

Espace Concret de modlisation

XML/SOAP CORBA
Yousra Hlaoui Bendaly

- 85 -

Ingnierie Dirige par les Modles

Le besoin d'indpendance

PIMs
Platform Independent Models

Objets et composants Les technos du pass


Yousra Hlaoui Bendaly

Web services Les technos du prsent


.

Grid computing, Cluster computing, etc. Les technos du futur - 86 -

Ingnierie Dirige par les Modles

Cycle de dveloppement

Analysis

Design

Code

PIM
1
Yousra Hlaoui Bendaly

PSM
3
.

Code
6
- 87 -

Ingnierie Dirige par les Modles

Une perspective plus globale

MDA model

Meta-model

PIM

PDM

business

PSM

platform

CIM Code

Platform Infrastructure

VM

OS

DB

Yousra Hlaoui Bendaly

- 88 -

Ingnierie Dirige par les Modles

Etapes du processus MDA


CIM >> PIM Computation-independant Model (CIM) Mapping

Business analyst

<?xml vers ion= '1.0 <UML:Packa ge xmi </XMI.exten sions></XMI>

XMI

PIM >> PSM Platform-independant Model (PIM) Mapping

Developer/ Tester

With UML, CWM, other DSL


<?xml vers ion= '1.0 <UML:Packa ge xmi </XMI.exten sions></XMI>

XMI

Platform-specific

PSM >> code Mapping

Developer/ Tester

Model (PSM)
PIM+PDM +rule transformations (QVT, JMI, )

Code Documents

Yousra Hlaoui Bendaly

- 89 -

Ingnierie Dirige par les Modles

Dveloppement du processus MDA


od el M M x

Combine Combine Note


O SF RM S

el M

SLA Trust & Sec


y M et am od
-Software -Systems (sizing, HA,) -Networks

M et am od

Conforms

Marking Help Generates Conforms


el M

C IM

TR

AN

QoS

Combine
Trust & Sec

Combine

New generated information

od el M

Note
Help
M z

New Modelled Information

Marking

FO NS A TR

PI M

S RM

Generates

Combine
Trust & Sec

M et am od

Conforms

od el M

el M

PS

Marking

Note

New Modelled information

New generated information

QoS

Combine

Yousra Hlaoui Bendaly

- 90 -

Ingnierie Dirige par les Modles

Architecture MDA

MOF

M2

QVT

M2

CIM

PIM

PSM

Code

Application Informatique

Yousra Hlaoui Bendaly

- 91 -

Ingnierie Dirige par les Modles

Les moyens de MDA

Dfinition de tous les mtamodles de manire uniforme



Le standard MOF dfinit le langage de dfinition des mtamodles Le standard XMI dfinit les moyens dimport et dexport de tous les modles selon le format XML Les frameworks JMI/EMF dfinissent les moyens de reprsentation des modles laide de langages de programmation objet. Le standard QVT dfinit le langage dexpression de transformations de modles

Format standard dimport et dexport des modles Langage de manipulation des modles Langage ddi au transformation de modles

Yousra Hlaoui Bendaly

- 92 -

Ingnierie Dirige par les Modles

Les rsultats de MDA

Prennit des savoir-faire


Gains de productivit

Lambition du MDA est de faire en sorte que les modles (CIM, PIM) aient une dure de vie suprieure au code. Lobjectif est donc de fournir des langages de modlisation supportant diffrents niveaux dabstraction. MDA vise apporter des gains de productivit en automatisant les oprations sur les modles. Lobjectif est donc de faciliter la cration doprations de production sur les modles (du contemplatif au productif)

Prise en compte des plates-formes dexcution

MDA veut rendre explicite la prise en compte des platesformes dexcution dans le cycle de vie des applications. Lobjectif est donc de construire des langages permettant de modliser les plates-formes et de lier ces modles aux modles des applications.

Yousra Hlaoui Bendaly

- 93 -

Ingnierie Dirige par les Modles

Les 3 axes du MDA


prennit UML2.0 QVT MOF2.0 XMI2.1 Profil QoS Profil EJB Profil Corba GenDoc UML1.4 MOF1.4 EMF JMI

Pour mettre en uvre le MDA il faut fixer ses priorits selon ces trois axes Il est actuellement trop tt
pour utiliser UML2.0 et tre productif. pour pouvoir dire que EMF est prenne. Il est actuellement trop tt pour pouvoir expliciter la plate-forme sous forme de modle.

productivit Il est actuellement trop tt UML->Java UML/EJB->J2EE

Plate-forme

Yousra Hlaoui Bendaly

- 94 -

Ingnierie Dirige par les Modles

Prennit des savoir-faire


Architecture et Standard

Yousra Hlaoui Bendaly

Ingnierie Dirige par les Modles

Mtamodle

Prennit

Un mtamodle est essentiellement la dfinition dun ensemble de concepts et de leurs relations laide dun diagramme de classes. Un mtamodle ne dfinit que la structure et pas la smantique. Un modle est une instance dun mtamodle sil respecte la structuration dfinie par le mtamodle. Le mtamodle UML dfinit les concepts UML et leurs relations. Un modle UML doit respecter la dfinition du mtamodle.

Yousra Hlaoui Bendaly

- 96 -

Ingnierie Dirige par les Modles

Mtamtamodle

Prennit

Le MOF dfinit le langage

permettant de dfinir des mtamodles Les concepts du MOF sont les concepts de mtaclasse, mta-attribut, mta-association, etc. MOF peut tre dfini laide dun diagramme de classe. Ce diagramme est le mtamtamodle Le mtamtamodle sauto-dfinit.

Attribut +nom +multiplicit 1

* Parameter +direction +type Type

* 1 Operation -nom 1 1 Package +import +nom 1 * * 1 -type * 1 * * Class +nom

DataType 0..1

+super

String

Integer

Boolean

* Association +nom 1 2

* AssociationEnd +nom +multiplicit

Yousra Hlaoui Bendaly

- 97 -

Ingnierie Dirige par les Modles

Niveaux Mta

Prennit

Les relations entre les

niveaux mta sont des relations de dfinition de structure Les relations entre les niveaux mta ne sont pas des relations dabstraction. Les relations entre les niveaux mta sont semblables aux relations entre les grammaires (BNF, ou XML Schema)
.

MOF
Mtamtamodle

UML UML UML


Mtamodle

Modle Modle Modle

Modle

Yousra Hlaoui Bendaly

- 98 -

Ingnierie Dirige par les Modles

Infrastructure 2.0

Prennit

UML dfinit les concepts

ncessaires lexpression des diagrammes de classe MOF dfinit les concepts ncessaires lexpression des diagrammes de classe

MOF

Infra

=> Capitaliser sur les concepts ncessaires lexpression des diagrammes de classe : Infrastructure
Yousra Hlaoui Bendaly
.

UML
Linfrastructure na pas de niveau fixe. Cela dpend de qui lutilise.

- 99 -

Ingnierie Dirige par les Modles

UML2.0

Prennit

UML2.0 fait rentrer UML dans MDA, il est bien plus quune
volution de UML1.4. UML est actuellement le mtamodle le plus important de lapproche MDA. Sa conception est le fruit de plus de 3 ans de travail collaboratif des meilleurs experts du domaine. Cest le mtamodle qui dfinit la structuration des modles des applications informatiques

UML2.0 supporte diffrents niveaux dabstractions et


diffrents points de vue

UML2.0 est un mtamodle instance de MOF2.0. La smantique de UML2.0 est dfinie laide de langage naturel Les diagrammes UML2.0 sont dfinis partir du mtamodle

Cas dutilisation, Squences, Structuration Interne, Etats, Dploiement, etc.


.

Yousra Hlaoui Bendaly

- 100 -

Ingnierie Dirige par les Modles

Composant UML2.0

Prennit

UML2.0 permet la modlisation intgrale dapplications base de composants. De lanalyse/conception au dploiement

Yousra Hlaoui Bendaly

- 101 -

Ingnierie Dirige par les Modles

UML dans MDA

Prennit

UML permet principalement de construire des modles


dapplications informatiques indpendants des platesformes dexcution (phase danalyse et de conception abstraite)

UML permet aussi de reprsenter une application dans


UML est donc le mtamodle naturel pour les PIM (Platform Independant Model)

son environnement afin den faire ressortir les exigences (cas dutilisation)
UML peut tre utilis pour les CIM (Computational Independant Model)

UML peut tre profil afin de cibler des plates-formes


dexcution (ex: profil pour CORBA, profil pour EJB) Il serait donc possible dappliquer MDA en utilisant uniquement UML
Yousra Hlaoui Bendaly
.

UML peut tre utilis pour les PSM (Platform Specific Model)

- 102 -

Ingnierie Dirige par les Modles

Object Constraint Language

Prennit

OCL dfinit la structuration des modles reprsentant des contraintes sur les applications informatiques OCL est un mtamodle instance de MOF OCL est fortement coupl au mtamodle UML OCL dfinit sa smantique laide dun mtamodle (opration sans effet de bord) OCL dfinit une syntaxe concrte permettant de facilement saisir les contraintes
solde

Invariant, Pr-post conditions

PropertyCallExp

>

ModelPropertyCall

Literal

-1000

Yousra Hlaoui Bendaly

- 103 -

Ingnierie Dirige par les Modles

Action Semantics

Prennit

AS dfinit la structuration

des modles reprsentant des squences dinstructions AS est un mtamodle qui a t totalement intgr UML2.0 AS na pas de syntaxe concrte propre (utilisation des diagrammes dynamiques UML) La smantique dAS nest pas formellement dfinie (RFP en cours)
- 104 -

Yousra Hlaoui Bendaly

Ingnierie Dirige par les Modles

XMI

Prennit

Fonctionnement Le standard XMI (XML Metadata Interchange) permet le passage des modles aux documents XML Il dfinit des rgles permettant de construire des schma XML partir de mtamodle Ainsi il est possible dencoder un modle dans un document XML XMI et UML XMI se dcline en 6 versions et UML se dcline en 4 versions

Cela explique pourquoi lchange de modle UML en XMI pose quelques problmes

XMI et diagrammes DI (Diagram Interchange) est une extension XMI et UML qui permet la reprsentation des diagrammes UML sous forme de document XML.

Yousra Hlaoui Bendaly

- 105 -

Ingnierie Dirige par les Modles

Synthse sur la prennit

Prennit

MOF permet de dcrire les mtamodles uniformment

Permet la dfinitions de structuration et leur standardisation (ex: rseaux de Petri)

Le mtamodle UML est le mtamodle le plus abouti

Les modles UML sont de trs bons PIM (complets et indpendants des plates-formes).

pour laborer des modles dapplications informatiques

OCL et AS sont les mtamodles permettant la dfinition


prcise de comportements

XMI permet lchange de nimporte quel modle sous


forme de document XML

Ils permettent la construction de modles UML trs prcis.

Les modles MDA ont tous une reprsentation concrte standard

Yousra Hlaoui Bendaly

- 106 -

Ingnierie Dirige par les Modles

Gains de productivit Framework et outils

Yousra Hlaoui Bendaly

Ingnierie Dirige par les Modles

API de manipulation

Production

MDA dfinit les principes de gnration dAPI de

manipulation de modles A chaque mtamodle correspond une API de manipulation des modles instances Les frameworks dfinissent aussi des API rflectives pour tout mtamodle

Mtamodle

Interface Java

Objets Java modles

Yousra Hlaoui Bendaly

- 108 -

Ingnierie Dirige par les Modles

Eclipse Modeling Framework

Production

laboration dun
Interface de

mtamodle (instance de Ecore) Gnration de lAPI


manipulation Classes dans lenvironnement Eclipse Classes dditeur graphique

Utilisation directe dans


Yousra Hlaoui Bendaly
.

un nouveau environnement Eclipse


- 109 -

Ingnierie Dirige par les Modles

Transformation de modles de production de MDA

Production

Les transformations de modles sont le cur des aspects Les transformations de modles sont bases sur les
mtamodles

CIM vers PIM, PIM vers PSM, PSM vers code (sens inverse).

Les constructeurs de plate-forme devraient produire les Les socits devraient pouvoir adapter les
Ex: ne pas utiliser de composant EJB Entity! UML vers EJB

Tout composant UML se transforme en une classe PHP.

transformateurs permettant dexploiter les plates-formes transformateurs selon leurs propres expriences et leurs propres besoins scrire selon trois approches

Actuellement les transformations de modles peuvent


Programmation, Template, Modlisation
.

Yousra Hlaoui Bendaly

- 110 -

Ingnierie Dirige par les Modles

Programmation

Production

La transformation est un programme qui utilise les API de


manipulation des modles

UML

API UML

API PHP

PHP

lire

crire

PetStore

Programme Java

PetStore PHP

Yousra Hlaoui Bendaly

- 111 -

Ingnierie Dirige par les Modles

Template

Production

La transformation est un template crit dans un langage


ddi

UML Template pour UML vers PHP

PHP

PetStore

Interprteur de template

PetStore PHP

Yousra Hlaoui Bendaly

- 112 -

Ingnierie Dirige par les Modles

Modlisation

Production

La transformation est un modle instance du mtamodle


QVT

UML

QVT

PHP

Modle Transfo Programme

PetStore

PetStore PHP

Yousra Hlaoui Bendaly

- 113 -

Ingnierie Dirige par les Modles

Outils industriels

Production

Actuellement plusieurs outils clament leur adhrence MDA. Au dla de savoir ce quest un outil MDA, il est

intressant de voir que les fournisseurs doutils sont trs actifs sur ce domaine. Nous avons particulirement pu apprcier deux outils:

RSA (Rational Software Architecte) qui supporte MDA

en offrant un modeleur UML2.0 et en permettant la dfinition de transformations de modles (approche par programmation). Objecteering/MDA Modeler qui supporte MDA en offrant des avantages considrables pour le dveloppement et le packaging doprations de production sur les modles.
Yousra Hlaoui Bendaly
.

- 114 -

Ingnierie Dirige par les Modles

Synthse sur la productivit

Production

MDA fait passer les modles du

contemplatif au productif Les API de manipulation de modles sont totalement utilisables en contexte industriel Les transformations de modles sont ralisables mme si actuellement seule lapproche par programmation est pleinement exploitable. Il est important de souligner lengagement des diteurs doutils
Yousra Hlaoui Bendaly
.

- 115 -

Ingnierie Dirige par les Modles

Prise en compte des plates-formes dexcution Framework et outils

Yousra Hlaoui Bendaly

Ingnierie Dirige par les Modles

Cycle en Y et plate-forme

Plate-forme

PIM

PM

Exigence
PIM

Besoins Techniques

Analyse Conception (Abstraite) Conception (concrte) Conception (fine)


PIM

PM

Architecture Technique Explicitation de la plate-forme

PSM

PSM

Prise en compte de la plate-forme

Code

Yousra Hlaoui Bendaly

- 117 -

Ingnierie Dirige par les Modles

Profil ou mtamodle

Plate-forme

Il nexiste pas de mtamodle permettant de modliser les plates-formes Un mtamodle de plate-forme dfinit plutt la structure

de modles dapplications utilisant les fonctionnalits de la plate-forme On appelle donc ces mtamodles des mtamodles de PSM

par exemple le mtamodle EJB dfinit la structure de modles dapplications utilisant les fonctionnalits de la plate-forme EJB

La transformation cur de lapproche en Y est donc une

transformation entre deux mtamodles (mtamodle du PIM vers mtamodle du PSM) Do la ncessit de paramtrer le modle PIM afin de prciser la faon dont utiliser la plate-forme (notion de modle intermdiaire).

Comment savoir si un composant UML doit se transformer en un bean Entity ou Session? . - 118 Yousra Hlaoui Bendaly

Ingnierie Dirige par les Modles

Mtamodle de PSM

Plate-forme

Approche par profil



Le mtamodle de PSM est un profil UML La plate-forme doit donc tre proche de UML (oriente objet) Les transformations PIM vers PSM sont facilites car il existe une smantique commune (UML)

Approche par mtamodle



Le mtamodle de PSM est un mtamodle MOF La plate-forme peut donc tre trs loigne de UML Les transformations PIM vers PSM sont moins facilites car les smantiques PIM et PSM ne sont pas communes Cette approche rend possible les transformations PSM vers PSM (migration de plates-formes)

Yousra Hlaoui Bendaly

- 119 -

Ingnierie Dirige par les Modles

Transformation de PIM PSM (projections) UML Model (PIM)


Auto Color : String Door : Integer Engine : Integer

XMI Document (PSM)


XMI <Auto> <Color> Red </Color> <Door> 4 </Door> <Engine> 2 </Engine> </Auto>

M O

JMI

IDL, Java (PSM)

interface Auto { Class Auto };

XMI DTD, Schema (PSM) <!Element Auto (Color*, Door*, Engine*)>


.

{public String color; public int Door; public int Engine; }

Yousra Hlaoui Bendaly

- 120 -

Ingnierie Dirige par les Modles

Trois tapes dans l'volution des techniques de modlisation l'OMG.

(a)
UML UML MOF MOF UML UML

(b)
MOF MOF UML UML SPEM SPEM

(c)

unModle unModle

Workflow Workflow

etc. etc.

unModle unModle

UML_for_CORBA UML_for_CORBA

Common Warehouse Common Warehouse Metadata Metadata

unModle unModle

Action language Action language

Yousra Hlaoui Bendaly

- 121 -

Ingnierie Dirige par les Modles

Architecture gyptienne

M3 M2

Le MOF

meta-meta model

Le mta-modle UML et autres MMs meta-model

M1
model

Des modles UML et d'autres

M0

Diffrentes utilisations de ces modles

"le monde rel"

Yousra Hlaoui Bendaly

- 122 -

Ingnierie Dirige par les Modles

Organisation gnrale: exemple

Les modles

Le monde rel
Yousra Hlaoui Bendaly
.

- 123 -

Ingnierie Dirige par les Modles

Modle -> Mta-modle


MM UML
1

Relation entit mta-entit Relation modle mta-modle

Class

* Attribute

Modle UML Client


Nom : String

Voir le document de thse de Richard Lemesle pour une prsentation du MOF:

http://www.sciences.univ-nantes.fr/info/lrsg/Pages_perso/RL/Richard_2001.htm
Yousra Hlaoui Bendaly
.

- 124 -

Ingnierie Dirige par les Modles

Mta-modle -> Mta-mta-modle

MOF
Relation entit mta-entit
source

Class
Relation modle mta-modle

destination

Association

UML
1

Class

* Attribute

Yousra Hlaoui Bendaly

- 125 -

Ingnierie Dirige par les Modles

Mta-mta-modle -> Mta-mta-modle

Relation entit mtaentit Relation modle mtamodle

MOF
source

Class

destination

Association

Yousra Hlaoui Bendaly

- 126 -

Ingnierie Dirige par les Modles

Mta-modles et profils

relation modle <-> mta-modle

relation dextension

MOF
Mta-modle gnrique de processus

M3

UML
UML temps rel UML pour J2EE

M2
Mta-modle de Workflow

Mta-modle de processus orient migration

modle temps rel

modle de migration

modle de Workflow

M1

Yousra Hlaoui Bendaly

- 127 -

Ingnierie Dirige par les Modles

Un mta-mta-modle

un Mta-mta-modle

basedOn

Entity

definedIn

Model

instanceOf

instanceOf

instanceOf 1 1

basedOn

Meta-Entity

definedIn instanceOf

Meta-Model

instanceOf

instanceOf

Yousra Hlaoui Bendaly

- 128 -

Ingnierie Dirige par les Modles

Yousra Hlaoui Bendaly

- 129 -

Ingnierie Dirige par les Modles

Schma de principe

MOF
containedElemen 0..* t

ModelElement

0..*

entity

Contains
container

0..1

Namespace
instanceOf

...
model 0..* basedOn 1
metamodel

...

Model

Classifier
1
meta-entity

Package

Class

Yousra Hlaoui Bendaly

- 130 -

Ingnierie Dirige par les Modles

Un fragment de mta-modle

Yousra Hlaoui Bendaly

- 131 -

Ingnierie Dirige par les Modles

MOF Model (M3)


ModelElement /Depends On
0..* Contains 0..* Import Aliases 0..* 0..* Constrains 1..* 1..* AttachesTo 0..* Tag {ordered} 0..* Constraint

Namespace

TypedElement

IsOfType

0..* +typedElement Constant StructureField Parameter

GeneralizableElement

Generalizes

Feature

Package

Classifier

+type 1

BehaviouralFeature StructuralFeature AssociationEnd /Exposes


1 1 ReferesTo Operation Exception CanRaise 0..* 0..* {ordered} Attribute 0..* Reference

Association

Class

DataType

PrimitiveType

StructureType

EnumerationType

CollectionType

AliasType

Yousra Hlaoui Bendaly

- 132 -

Ingnierie Dirige par les Modles

Retour au MDA: PIMs et PSMs


PIM Mapping Technique 1 basedOn 1..* expressedWith UML expressedWith MOF 1..* describedWith * * 1..* directMapping Meta-Model describedWith describedWith Other Language * * refactoring * PIM

* PSM

1..* 1..* basedOn

* PSM Mapping Technique

Yousra Hlaoui Bendaly

- 133 -

Ingnierie Dirige par les Modles

tude de Cas
PetStore

Yousra Hlaoui Bendaly

Ingnierie Dirige par les Modles

PetStore selon MDA

tude de Cas

Intervention Humaine

CIM & PIM en UML Modle de transformation PIM vers PSM

PSM Java Profil UML

PSM PHP Mta-modle

PIM vers PSM Java avec MDA Modeler PIM vers PSM PHP avec RSA

public class { }

php { }

Yousra Hlaoui Bendaly

- 135 -

Ingnierie Dirige par les Modles

Prennit

tude de Cas

Lapplication PetStore a pu tre modlise


entirement en UML2.0

Use Case de lapplication Composants de lapplication Contrainte OCL sur les oprations (notamment les
oprations de recherche)

Modle entirement indpendant des platesformes dexcution Modle changeable(?) grce XMI

Yousra Hlaoui Bendaly

- 136 -

Ingnierie Dirige par les Modles

Productivit

tude de Cas

Le modle UML de lapplication PetStore a pu


RSA: Manipulation Java avec assistants MDA Modeler: Manipulation J avec assistants

tre manipul automatiquement pour gnrer du code et de la documentation

Malheureusement, il nest pas encore possible de


pouvoir capitaliser les oprations de production

Yousra Hlaoui Bendaly

- 137 -

Ingnierie Dirige par les Modles

Plate-forme

tude de Cas

Ralisation de PetStore sur J2EE/EJB

Dfinition du profil EJB Construction des transformations avec MDA Modeler Dfinition dun profil de modles intermdiaires
permettant de prciser les choix de transformation

Ralisation de PetStore sur PHP

Dfinition dun mtamodle PHP Construction de gnrateur de code et de

transformation de modles avec RSA Dfinition dun profil de modles intermdiaires permettant de prciser les choix de transformation

Yousra Hlaoui Bendaly

- 138 -

Das könnte Ihnen auch gefallen