Beruflich Dokumente
Kultur Dokumente
-1-
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
-2-
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)
.
-3-
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
.
-4-
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).
L'une des raisons est qu'il n'existe pas une seule mthode, mais une infinit de mthodes.
-5-
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.
-6-
Mthode de dveloppement
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 :
-7-
Dfinitions
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.
-8-
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)
.
Taxonomie des transformations de modles Types de transformations. Le standard QVT. Exemples de transformation.
-9-
Crise du logiciel
Yousra Hlaoui Bendaly
.
- 10 -
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
- 11 -
Grer la complexit:
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, )
Quand un nouveau middleware est produits (ex: EJB ou Corba), on ne veut pas changer compltement les logiciels des applications
- 12 -
Que faire ?
dans l'espoir qu'une nouvelle solution magique se prsente ? Fuite en avant ? Les technologies doivent tre values essentiellement pour leur capacit
- 13 -
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
- 14 -
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.
- 15 -
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.
- 16 -
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 -
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
.
- 18 -
Conclusion
Use cases
Patterns
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.
- 19 -
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.
- 20 -
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)
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.
- 21 -
- 22 -
Modlisation et modle
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
- 23 -
Un systme
Modle respiratoire
Modle de Squelette
- 24 -
dont les artefacts de base sont les modles et non pas les programmes
- 25 -
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
- 26 -
Phases du MDSD
- 27 -
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
- 28 -
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
- 29 -
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)
Taxonomie des transformations de modles Types de transformations. Le standard QVT. Exemples de transformation.
- 30 -
Le 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
- 31 -
- 32 -
ncessite dtre adapt un domaine spcifique pour rsoudre un problme dtermin Les mcanismes dextension tendent UML par:
Lajout des nouveaux lments de modlisation La cration de nouvelles proprits La spcification dune nouvelle smantique Strotypes, valeurs tiquettes, contraintes et commentaires
- 33 -
Strotypes
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:
<<Matriel>> <<Logiciel>>
- 34 -
Strotypes
- 35 -
Valeurs tiquettes
type dlment de modlisation Peuvent tre utiliss pour des lments de modlisation strotyps ou non Sont dfinies par la paire tiquette-valeur:
- 36 -
Valeurs tiquettes
{ Eiquette1=Valuer1,
Etiquette 2= Valeur2, Etiquetten=valeurn }
Exemple:
- 37 -
Contraintes
Sont aussi utilises pour spcifier des conditions qui Sont reprsentes par le langage naturel ou par le
langage OCL (Object Constraint language)
- 38 -
Commentaires
- 39 -
Exemples:
plusieurs mcanismes dextension relatifs savoir les strotypes, valeurs tiquettes et contraintes
- 40 -
Profiles UML
Spcifie les strotypes et ou les valeurs tiquettes Spcifie des rgles bien formes autre que celle prdfinies Spcifie une smantique en langage naturel
- 41 -
On dsire crer
Une fentre peut invoquer une boite de dialogue les fentre ou les boites de dialogue peuvent contenir des boutons
- 42 -
Le package GUI
- 43 -
- 44 -
- 45 -
Motivation
- 46 -
Motivation
Exemple: Z, CTL, Utiliss souvent par les acadmiques et non pas par les industriels Difficiles apprendre et manipuler
- 47 -
Contraintes
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
- 48 -
Contraintes OCL
- 49 -
Lexpression logique doit tre toujours vraie Exemple 1 : Le solde dun compte doit tre toujours positif
context Compte inv : solde>0
- 50 -
Exemple 2
- 51 -
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
- 52 -
Syntaxe :
body : <action> <action> : expression qui retourne le rsultat dont le type est compatible avec le type de retour de lopration
Exemple
- 53 -
Syntaxes :
let <dclaration>=<action> in <expression>
def : <dclaration>=<action>
- 54 -
54
Exemple
- 55 -
initiale dun attribut ou dune terminaison dassociation La valeur dun attribut driv est dfinie par la contrainte derive. Syntaxes init : <requte> derive : <requte> Exemples
- 56 -
56
- 57 -
57
Type
oprateurs
Boolean And, or, xor, not, implies, ifthenelseendif Integer Real String
+,-, *, /, abs(), +,-, *, /, abs(), floor(), Concat(), size(), substring(),
- 58 -
58
Collections
- 59 -
59
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
- 60 -
60
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
- 61 -
61
Opration ensembliste - Set ou OrederedSet union(ens) : union - : diffrence (ens1 ens2) including(el) : ajoute un lment excluding(el) : retire un lment
- 62 -
62
- 63 -
- 64 -
64
- 65 -
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)
Taxonomie des transformations de modles Types de transformations. Le standard QVT. Exemples de transformation.
- 66 -
Le MDA
Model Driven Architecture
- 67 -
(appel contribution)
Yousra Hlaoui Bendaly
.
- 68 -
OMGs milestones
- 69 -
Application Objects
CORBA Facilities
OMA MDA
CORBA Services
- 70 -
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
- 71 -
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.
- 72 -
Modle UML
Modle Java
- 73 -
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 -
MDA: Le principe
Modlisation: Plate-forme
Plateform Model PM
programme
- 75 -
- 76 -
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
.
- 77 -
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.
- 78 -
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
.
- 79 -
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 -
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()
- 81 -
Mta-modle
System
represents
Model
M*
La correspondance entre un modle et un systme est dfinie par un mta-modle.
Yousra Hlaoui Bendaly
.
- 82 -
(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:
(M1) Model:
(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
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,
.
- 84 -
UML/MOF
Java/EJB C#/DotNet
.
XML/SOAP CORBA
Yousra Hlaoui Bendaly
- 85 -
Le besoin d'indpendance
PIMs
Platform Independent Models
Cycle de dveloppement
Analysis
Design
Code
PIM
1
Yousra Hlaoui Bendaly
PSM
3
.
Code
6
- 87 -
MDA model
Meta-model
PIM
PDM
business
PSM
platform
CIM Code
Platform Infrastructure
VM
OS
DB
- 88 -
Business analyst
XMI
Developer/ Tester
XMI
Platform-specific
Developer/ Tester
Model (PSM)
PIM+PDM +rule transformations (QVT, JMI, )
Code Documents
- 89 -
el M
M et am od
Conforms
C IM
TR
AN
QoS
Combine
Trust & Sec
Combine
od el M
Note
Help
M z
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
QoS
Combine
- 90 -
Architecture MDA
MOF
M2
QVT
M2
CIM
PIM
PSM
Code
Application Informatique
- 91 -
Format standard dimport et dexport des modles Langage de manipulation des modles Langage ddi au transformation de modles
- 92 -
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)
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.
- 93 -
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.
Plate-forme
- 94 -
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.
- 96 -
Mtamtamodle
Prennit
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.
DataType 0..1
+super
String
Integer
Boolean
* Association +nom 1 2
- 97 -
Niveaux Mta
Prennit
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
Modle
- 98 -
Infrastructure 2.0
Prennit
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 -
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 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
- 100 -
Composant UML2.0
Prennit
- 101 -
Prennit
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 utilis pour les PSM (Platform Specific Model)
- 102 -
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
PropertyCallExp
>
ModelPropertyCall
Literal
-1000
- 103 -
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 -
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.
- 105 -
Prennit
Les modles UML sont de trs bons PIM (complets et indpendants des plates-formes).
- 106 -
API de manipulation
Production
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
- 108 -
Production
laboration dun
Interface de
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
transformateurs permettant dexploiter les plates-formes transformateurs selon leurs propres expriences et leurs propres besoins scrire selon trois approches
- 110 -
Programmation
Production
UML
API UML
API PHP
PHP
lire
crire
PetStore
Programme Java
PetStore PHP
- 111 -
Template
Production
PHP
PetStore
Interprteur de template
PetStore PHP
- 112 -
Modlisation
Production
UML
QVT
PHP
PetStore
PetStore PHP
- 113 -
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:
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 -
Production
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 -
Cycle en Y et plate-forme
Plate-forme
PIM
PM
Exigence
PIM
Besoins Techniques
PM
PSM
PSM
Code
- 117 -
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
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
Mtamodle de PSM
Plate-forme
- 119 -
M O
JMI
- 120 -
(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
unModle unModle
- 121 -
Architecture gyptienne
M3 M2
Le MOF
meta-meta model
M1
model
M0
- 122 -
Les modles
Le monde rel
Yousra Hlaoui Bendaly
.
- 123 -
Class
* Attribute
http://www.sciences.univ-nantes.fr/info/lrsg/Pages_perso/RL/Richard_2001.htm
Yousra Hlaoui Bendaly
.
- 124 -
MOF
Relation entit mta-entit
source
Class
Relation modle mta-modle
destination
Association
UML
1
Class
* Attribute
- 125 -
MOF
source
Class
destination
Association
- 126 -
Mta-modles et profils
relation dextension
MOF
Mta-modle gnrique de processus
M3
UML
UML temps rel UML pour J2EE
M2
Mta-modle de Workflow
modle de migration
modle de Workflow
M1
- 127 -
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
- 128 -
- 129 -
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
- 130 -
Un fragment de mta-modle
- 131 -
Namespace
TypedElement
IsOfType
GeneralizableElement
Generalizes
Feature
Package
Classifier
+type 1
Association
Class
DataType
PrimitiveType
StructureType
EnumerationType
CollectionType
AliasType
- 132 -
* PSM
- 133 -
tude de Cas
PetStore
tude de Cas
Intervention Humaine
PIM vers PSM Java avec MDA Modeler PIM vers PSM PHP avec RSA
public class { }
php { }
- 135 -
Prennit
tude de Cas
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
- 136 -
Productivit
tude de Cas
- 137 -
Plate-forme
tude de Cas
Dfinition du profil EJB Construction des transformations avec MDA Modeler Dfinition dun profil de modles intermdiaires
permettant de prciser les choix de transformation
transformation de modles avec RSA Dfinition dun profil de modles intermdiaires permettant de prciser les choix de transformation
- 138 -