MetaModeliser2008users.polytech.unice.fr/~blay/ENSEIGNEMENT/IDM/Introduction/... · 04/10/2008 2 7...

12
04/10/2008 1 1 Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC Model Driven Development /Engineering Ingénierie Dirigée par les Modèles (IDM) Mireille Blay-Fornarino http://www.polytech.unice.fr/~blay/ENSEIGNEMENT/IDM/ 2 Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC Plan du module Toutes les infos : http://www.polytech.unice.fr/~blay/ENSEIGNEMENT/IDM/ Principes : Cours + Pratique + Projets Evaluation : Projet + devoir sur table Outils : presque au choix pour les projets Obligatoire en cours/TP : http://openembedd.inria.fr/Download/ Avez-vous déjà vu OCL? 3 Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC PLAN du jour I. Introduction Pourquoi une « encore » nouvelle approche du développement logiciel ? Vision de l’OMG II. Principes généraux de l’ingénierie dirigée par les modèles Modèle ? Correspondances entre modèles Transformations de modèles III. Quelques Ingrédients MDA a) MOF, b) UML c) XML IV. Au delà du MDA V. Développement dirigé par les domaines : Programmation orientée domaine VI. Quelques outils … Discussion sur les projets 4 Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC I. Introduction a) Pourquoi une « encore » nouvelle approche du développement logiciel - Etat des lieux - Des exemples: - Filtres - Interactions b) Vision de l’OMG 5 Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC I. Introduction a) Pourquoi une « encore » nouvelle approche du développement logiciel - Etat des lieux - Des exemples: - Filtres - Interactions b) Vision de l’OMG 6 Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC Exemple : filtrage de messages Filtre une entrée pour recevoir les messages à filtrer des propriétés de filtrage configurables une fonction de filtrage une sortie pour messages valides une sortie pour messages non acceptés Application = assemblage de filtres Filtre P1 = V1 P2 = V2 F = M.C1 == P1 or M.C2 > P2 OK NO

Transcript of MetaModeliser2008users.polytech.unice.fr/~blay/ENSEIGNEMENT/IDM/Introduction/... · 04/10/2008 2 7...

Page 1: MetaModeliser2008users.polytech.unice.fr/~blay/ENSEIGNEMENT/IDM/Introduction/... · 04/10/2008 2 7 Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC Application =

04/10/2008

1

1

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

Model Driven Development /EngineeringIngénierie Dirigée par les Modèles (IDM)

Mireille Blay-Fornarino

http://www.polytech.unice.fr/~blay/ENSEIGNEMENT/IDM/

2

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

Plan du module

Toutes les infos : http://www.polytech.unice.fr/~blay/ENSEIGNEMENT/IDM/

Principes : Cours + Pratique + Projets

Evaluation : Projet + devoir sur table

Outils : presque au choix pour les projetsObligatoire en cours/TP : http://openembedd.inria.fr/Download/

Avez-vous déjà vu OCL?

3

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

PLAN du jour

• I. Introduction – Pourquoi une « encore » nouvelle approche du développement logiciel ? – Vision de l’OMG

• II. Principes généraux de l’ingénierie dirigée par les modèles– Modèle ?– Correspondances entre modèles– Transformations de modèles

• III. Quelques Ingrédients MDA– a) MOF, b) UML c) XML

• IV. Au delà du MDA

• V. Développement dirigé par les domaines : Programmation orientée domaine

• VI. Quelques outils …

• Discussion sur les projets

4

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

I. Introduction

a) Pourquoi une « encore » nouvelle approche du développement logiciel- Etat des lieux- Des exemples:

- Filtres- Interactions

b) Vision de l’OMG

5

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

I. Introduction

a) Pourquoi une « encore » nouvelle approche du développement logiciel- Etat des lieux- Des exemples:

- Filtres- Interactions

b) Vision de l’OMG

6

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

Exemple : filtrage de messages

• Filtre– une entrée pour recevoir les messages à filtrer– des propriétés de filtrage configurables– une fonction de filtrage– une sortie pour messages valides– une sortie pour messages non acceptés

• Application = assemblage de filtres

FiltreP1 = V1P2 = V2

F = M.C1 == P1 or M.C2 > P2

OK

NO

Page 2: MetaModeliser2008users.polytech.unice.fr/~blay/ENSEIGNEMENT/IDM/Introduction/... · 04/10/2008 2 7 Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC Application =

04/10/2008

2

7

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

Application = Assemblage de Filtres8

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

Exemple de filtre implémenté avec le CCM

eventtype Message {. . . Message fields . . .

};component Filter {

consumes Message input;publishes Message accepted;publishes Message rejected;. . . Configurable filtering properties . . .

};home FilterHome manages Filter {

factory create_filter(. . .);};

CCM = Corba Component Model

9

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

Plusieurs plates-formes : Ingénierie des filtres

• Matérialisation d’un filtre– si AAA alors 1 agent– si EJB alors 1 Message Bean – si CCM alors 1 composant avec ports asynchrones

• Programmation explicite– Java pour AAA ou EJB– multi-langages pour CCM

• Exécution répartie– AAA = MOM fiable– EJB = JMS (Java Messaging Service (JMS))– CCM = service de notification

• Si peu de filtres à produire alors OK• Quid si des millions de filtres différents ?

10

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

Problèmes

• Tout doit être fait à la main!– Définition des OMG IDL pour les évènements, composant filtre and

home ...– Implémentations – Ecriture des descripteurs CCM XML

• Très Verbeux, consommateur de temps et générateur d’erreur!!!

• Comment améliorer la productivité et la qualité?• Comment gérer des milliers de messages et filtres?• Comment déployer cette application sur d’autres technologies

comme Message Oriented Middleware (MOM)?– ex EJB 2.0 message beans

11

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

A Message Filtering XML Descriptor

<MFL><message id=«Email»><field name=«to» type=«string»\> <field name=«from» type=«string»\> <field name=«title» type=«string»\> <field name=«contents» type=«string[]»\>

</message><filter id=«FromFilter»

appliedOn=«Email»function=«e.from == from»>

<property name=«from» type=«string»\></filter>

</MFL>

12

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

The Message Filtering XML DTD

<!ELEM MFL (message, filter)*><!ELEM message (field)*><!ATTRLIST message id ID><!ELEM field EMPTY><!ATTRLIST field

name CDATAtype CDATA>

<!ELEM filter (property)*><!ATTRLIST filter

id IDappliedOn IDREFfunction CDATA>

<!ELEM property EMPTY><!ATTRLIST property

name CDATAtype CDATA>

Page 3: MetaModeliser2008users.polytech.unice.fr/~blay/ENSEIGNEMENT/IDM/Introduction/... · 04/10/2008 2 7 Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC Application =

04/10/2008

3

13

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

XML est-il la solution ?

• => Non juste une syntaxe de transfert !• => « stringware » !

• Mais de nombreux parsers XML !

• Quid de la vérification sémantique ?• Quid de la génération de code ?• Quid élégance / complétude de ce langage ?

14

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

Définition d’un langage (DSL?) : Exemple de formalisme BNF

message Email {field string to, from, title;field string[] contents;

};filter FromFilter appliedOn Email {property string from;function(e) is e.from == from;

};

• Génération du compilateur, e.g. YACC, JavaCC, ...• Quid de la vérification sémantique ?• Quid de la génération de code ?• Quid élégance/évolution de ce langage ?

15

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

Exemple de Filtrage de Messages avec MDA

• Définir la notion de filtre dans un métamodèle– Structure des messages, i.e. champs des messages– Propriétés de filtrage et fonction

• Utiliser XMI pour obtenir un XML DTD or Schema– Syntaxe pour sérialiser les modèles conformes au métamodele.

• Définir un “UML profile” pour les utilisateurs finaux

• Définition des transformations vers un MOM Plateform Specific Model (PSMs)

– Génération des composants filtres de messages automatiquement

=> Amélioration de la productivité et de la qualité=> Réduction des coûts de développement=> Capitalisation des Modèles (PIM) quand de nouveaux MOM apparaissent.

16

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

The Message Filtering Meta-Model

Inh er its F r o m

1

t y p e

< < m et aclas s > >M e s s a g e

id : s t rin gid : s t rin g

1

In h er its Fr o m

0 ..1< < m et aclas s > >

Fi l te r

id : s t rin gfun ct io n : s t ringid : s t rin gfun ct io n : s t ring

1

App liedO n

0 ..1

< < m et aclas s > >Fi e l d

n am e : s t rin gn am e : s t rin g

Field s*

1

< < m et aclas s > >Prope rty

n am e : s t ring

< < m et aclas s > >D a ta T yp e

id : s t ring

n am e : s t ring

id : s t ring

1

Pr o p er ties*

t y p e

17

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

Utilisation du Profil UML pour les filtres de messages

to: stringfrom: stringtitle: string

contents: string[]

«message»Email

from: string

f(e: Email): boolean{e.from == from}

«filter»FromFilter

« AppliedOn »

• Ce profil UML utilise des concepts UML pour adhérer aux concepts du “Message Filtering Meta-Model” concepts quand ils s’y prêtent bien et sont facile à manipuler en UML.

• Vérification = contraintes du profil• Génération = méthodes du profil …

18

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

Indépendance vis-à-vis de la technologie

Règles de transformation

CCMCCMEJB/JMSEJB/JMSAAAAAAautresMOM

autresMOM

Modèledes composants de filtrage

Modèledes composants de filtrage

•UML profil: Solution élégante mais « encore ?» liée atelier UML !

Page 4: MetaModeliser2008users.polytech.unice.fr/~blay/ENSEIGNEMENT/IDM/Introduction/... · 04/10/2008 2 7 Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC Application =

04/10/2008

4

19

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

The Message Filtering PIM to CCM Transformation

eventtype Email {public string from, to, title;public sequence<string> contents;

};component EmailFilterBase {

consumes Email input;publishes Email accepted;publishes Email rejected;

};component FromFilter : EmailFilterBase {

attribute string from;};home FromFilterHome manages FromFilter{

factory create_filter(in string from);};

CCM = Corba Component Model

20

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

Etape suivante pour la définition d’un métamodele de “Message Filtering”

• Maintenant, nous avons seulement : – La définition des types de messages et de filtres– La génération des types OMG IDL types, leurs implementations…

• Il nous reste à :– Compléter le métamodèle pour décrire des instances de filtres et les

connections entre eux – Puis automatiser la génération des descipteurs d’assemblages (XML)

pour permettre un déploiement automatique.

21

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

I. Introduction

a) Pourquoi une « encore » nouvelle approche de la programmation? Des exemples:- Filtres- Interactions

Vision de l’OMG : MDA est la partie standardisée du MDD par l’OMG.

22

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

OMG’s Milestones

1989

1991

1996

1997

2001

OMG is founded

CORBA 1.0, IDL

CORBA 2.0

UML, MOF, XMI, CWM

MDA

23

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

MDA: La nouvelle vision de l’OMG

OMG is in the ideal position to provide the model-based standardsthat 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. November 27, 2000

Cours de Jean Bezivin Université de Nantes, Projet ATLAS(appel à contribution)

OMG is a very important organization, but three years later, nobody still thinks that this is a local change to this organization. It's much more important and will probably affect our whole profession in the next thirty years.

24

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

Why modeling: master complexity

• Modeling, in the broadest sense, is the cost-effective use of something in place of something else for some cognitive purpose. It allows us to use something that is simpler, safer or cheaper than reality instead of reality for some purpose.

• A model represents reality for the given purpose; the model is an abstraction of reality in the sense that it cannot represent all aspects of reality. This allows us to deal with the world in a simplified manner, avoiding the complexity, danger and irreversibility of reality.

Jeff Rothenberg.

© J.-M. Jézéquel, 2008

Page 5: MetaModeliser2008users.polytech.unice.fr/~blay/ENSEIGNEMENT/IDM/Introduction/... · 04/10/2008 2 7 Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC Application =

04/10/2008

5

25

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

MDA : une révolution ?Au moins une véritable évolution

• At the end of year 2000, the OMG announced a major initiative that came as a surprise to many observers.

• Nearly three years later, I would like to share with you some ideas about the causes, the meaning, the impact of this important paradigm change in the domain of software systems construction and maintenance.

• The major word in this announcement is integration. The main message here is that the OMG is not changing its goals, it's only changing the path to achieve these goals.

• OMG is a very important organization, but three years later, nobody still thinks that this is a local change to this organization.

• It's much more important and will probably affect our whole profession in the next thirty years.

26

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

Model Driven Architecture (MDA)

• Nouvelle orientation (fondation) des activités de l’OMG– successeur de l’OMA

• Focaliser sur les modèles de composants logiciels pour les métiers(Platform Independent Models (PIM))

– via MOF, UML, profil UML, ASL, CWM, SPEM, …– sans les détails technologiques

• Travail sur les modèles « abstraits » de Plateforme(Platform Specific Models (PSM))

• Définir des transformations vers les middlewares existants– fixer les détails technologiques

Préserver les modèles quand arriveront de nouveaux intergiciels !

27

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

La guerre des intergiciels est finie

COM+DCOM

CORBAIIOP

MicrosoftC# & DotNet

XMLSOAP

JavaEJB de Sun

HTTPHTML

Il n'y a ni vainqueur ni perdantLe prochain champ de bataille sera celui de la transformation de modèlesL'initiative MDA de l'OMG vise àpromouvoir l'idée de la mise en œuvre de systèmes distribués dirigée par les méta-modèles

Réaction de Sun's àC# & DotNet ?

IngIngéénierie des Modnierie des Modèèles Logicielsles LogicielsCours #3 Cours #3 BezivinBezivin

28

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

Du contemplatif au productif

+Applicant()+ApplicantInfo()+MakeApplication()

-companyName : CString-experience : CString-reference1 : CString-reference2 : CString-reference3 : CString

Applicant

+Person()+PersonInfo()

-personID : unsigned long-surname : CString-givenName : CString-middleInitial : char-streetAddress : CString-postCode : CString-countryname : CString-eMailAddress : CString

Person

-is taught by

1

-teaches

0..*+CourseSession()+CourseSessionInfo()

-courseSessionID : unsigned long-courseDate : unsigned long-courseID : unsigned long-courseLocation : CString

CourseSession

+AppStatus()+AppStatusInfo()

-statusCode : char-statusName : CString

AppStatus

+CourseRegistration()+CourseRegistrationInfo()

-registrationDate : unsigned long-completionFlag : bool-confirmedDate : unsigned long

CourseRegistration

+Test()+TestInfo()

-testScore : unsigned long

Test

+Application()+ApplicationInfo()

-productNr : unsigned long-certificationLevel : unsigned long-applicationDate : unsigned long

Application

+PermittedStatusChange()+StatusChangeInfo()

-fromStatus : char-toStatus : char

PermittedStatusChange

+ExamSession()+ExamSessionInfo()

-examSession : unsigned long-examlocation : CString-examDate : unsigned long

ExamSession

-gives0..*

-is achieved1

-is made by

1

-makes

0..*

-allows change in

0..*

-has a

1..*

-is taken by1

-takes0..*

-is made by a1

-made a1..*

-is in1

-is filled by0..*

-uses

1

-is used in

0..*

-applies to a0..*

-is for a1

+Exam()+ExamInfo()

-examID : unsigned long-certificationLevel : unsigned long

Exam

+Employee()+GetCurrentAge()+EmployeeInfo()

-jobType : CString-roomNr : unsigned long-department : CString-division : CString-jobTitle : CString-manager : unsigned long-headsDept : CString-headsDivision : CString-mobileNr : CString-birthDate : unsigned long

Employee

+registrationform()

RegistrationForm

-uses**

ApplicantApplicantList PersonList

findApplicant()

ApplicationRegForm

Applicant()

findPerson()

addPerson()

addApplication()

Application()

MakeApplication()

ApplicationList

classe

séquence

CodeJava

"from human-readable to computer-understandable"

XMI XMI

29

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

Write Once, Run AnywhereModel Once, Generate Anywhere

CORBA

Java/EJBC#/DotNet

Web/XML/SOAP

PIM

etc.

Platform-IndependentModel

Multi-targetcode generation

+ SVG, GML, Delphi, ASP, MySQL, PHP, etc.

data grid computingpervasive computingcluster computing

SMIL/Flash

[JB04]Modèles neutres

baséssur UML et MOF

30

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

Etapes du processus MDA

CIM >> PIM

Mapping

Platform-specificModel (PSM)

PIM+PDM+rule transformations (QVT, JMI, …)

Platform-specificModel (PSM)

PIM+PDM+rule transformations (QVT, JMI, …)

CodeDocuments

CodeDocuments

Platform-independant

Model (PIM)With UML, CWM, other DSL

Platform-independant

Model (PIM)With UML, CWM, other DSL

Computation-independant

Model (CIM)

Computation-independant

Model (CIM)

PIM >> PSM

Mapping

PSM >> codeMapping

<?xml version= '1.0‘ …<UML:Packa ge xmi…………………</XMI.extensions></XMI>

XMI<?xml version= '1.0‘ …<UML:Packa ge xmi…………………</XMI.extensions></XMI>

XMI

<?xml version= '1.0‘ …<UML:Packa ge xmi…………………</XMI.extensions></XMI>

XMI<?xml version= '1.0‘ …<UML:Packa ge xmi…………………</XMI.extensions></XMI>

XMI

DeveloperDeveloper//TesterTesterDeveloperDeveloper//TesterTester

DeveloperDeveloper//TesterTesterDeveloperDeveloper//TesterTester

BusinessBusinessanalystanalystBusinessBusinessanalystanalyst

www.sqli.com/ressources/files/IBCom_mai2006_MDEMDA_ecourte.doc

CWM : Langage de modélisation pour les entrepôts de données, Common Warehouse Meta-modelXMI : XML Model Interchange, le standard des échanges entre modèlesPDM : Plateform Description Model

Page 6: MetaModeliser2008users.polytech.unice.fr/~blay/ENSEIGNEMENT/IDM/Introduction/... · 04/10/2008 2 7 Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC Application =

04/10/2008

6

31

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

Principes “généraux” MDA de génération de code

Conforms to Conforms to

32

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

Au cœur du MDA:les PIMs et les PSMs

• Modèles MDA– PIM: Platform Independent Model

• Spécification neutre d'un système (modèle de métier et de service) qui ignore tous les détails de mise en oeuvre

• Exemple: système de facturation exprimé en UML – Modèles de plate-forme (PDM)

• P.ex. modèles de composants à différents niveaux d'abstraction : CCM, C#, EJB, EDOC, …

– PSM: Platform Specific Model• Modèle de métier et de service lié à un modèle de plate-forme• Exemple: Système de facturation exprimé en "UML profile for CORBA«• Pas toujours bien claire la distinction .. Des niveaux d’abstractions différents…

– CCM, C#, EJB, EDOC, …

33

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

II. Principes généraux de l’ingénierie dirigée par les modèles

a) Modèle ?b) Correspondances entre modèlesc) Transformations de modèles

34

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

II. Principes généraux de l’ingénierie dirigée par les modèles

a) Modèle ?b) Correspondances entre modèlesc) Transformations de modèles

35

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

II. Principes généraux de l’ingénierie dirigée par les modèles

a) Modèle ?b) Correspondances entre modèlesc) Transformations de modèles

36

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

Modèles et quelque(s) problématique (s)

• Modularité des modèles– Hétérogénéité des modèles, liaison à l’environnement, complexité

• Réutilisation des modèles– Restriction, adaptation, évolution, … (UML et ses mécanismes d’extension)

• Transport des modèles– Sérialisation des modèles … (XMI)

• Mise en correspondance des modèles (alignement d’ontologies)– Traçabilité, expression des transformations, versionnement

• Transformation de modèles– Conversion, traduction en code exécutable, « reverse engineering »– Modèle en Y, tissage de modèles

• Présentation des modèles– Correspondance entre le modèle et ses représentations …

• Exécutabilité des modèles

http://www-sop.inria.fr/oasis/personnel/Didier.Parigot/SAM:EbaucheTravail.html

Page 7: MetaModeliser2008users.polytech.unice.fr/~blay/ENSEIGNEMENT/IDM/Introduction/... · 04/10/2008 2 7 Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC Application =

04/10/2008

7

37

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

III. Quelques ingrédients MDA

a) MOFb) UMLc) XML

38

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

MDA ingrédients

• Meta Object Facility– Foundation for OMG Metadata and Modeling architecture

• Unified Modeling Language– The UML is a graphical language for specifying, visualizing, constructing, documenting the artifacts of software systems

• XML Metadata Interchange (XMI)– Use W3C Extensible Markup Language (XML) for the transfer syntax and interchange format for models

• Platforms and Mappings– CORBA, CORBA Component Model, .NET, J2EE

http://www.omg.org/news/meetings/workshops/UML2002-Manual/07-1_A_UML_Profile_for_CORBA_Components.pdf

39

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

III. Quelques ingrédients MDA

a) MOFb) UMLc) XML

40

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

OMG’s Meta- Object Facility (MOF)

http://www.omg.org/news/meetings/workshops/UML2002-Manual/03-3_Enterprise_Information_Integration_and_the_OMGs_MDA_and_MOF.pdf

41

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

Fragment du modèle MOF 1.1

http://www.omg.org/mof/Version courante : la 2.0… complète la 1.4

42

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

III. Quelques ingrédients MDA

a) MOFb) UMLc) XML

UML 2.1.1 Infractruture (2007) : 220 pages UML 2.0 OCL (may 2006) : 236 pagesUML 2.0 Diagram Interchange : 36 pagesUML superstructure (2007) : 732 pages

Page 8: MetaModeliser2008users.polytech.unice.fr/~blay/ENSEIGNEMENT/IDM/Introduction/... · 04/10/2008 2 7 Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC Application =

04/10/2008

8

43

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

III. Quelques ingrédients MDA

a) MOFb) UMLc) XML

44

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

XML

<library><book isbn = « 12346780 »><title>1984<\title><author>George Orwell <\author><\book>

XML un langage de balisage (eXtensible Markup Language)

XML : des donnéesXSL : présentation des donnéesDTD : Document type definition

tag

<!DOCTYPE library [<!ELEMENT library (book*)><!ELEMENT book (title, author+)><!ELEMENT title (#PCDATA)><!ELEMENT author(#PCDATA)>]>

45

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

XMI for the MOF

<!-- Contents of Class: ModelElement --><Model.Class xmi.id='a29'><Model.ModelElement.name>ModelElement</Model.ModelElement.name><Model.ModelElement.annotation></Model.ModelElement.annotation><Model.GeneralizableElement.visibility xmi.value='public_vis'/><Model.GeneralizableElement.isAbstract xmi.value='true'/><Model.GeneralizableElement.isRoot xmi.value='false'/><Model.GeneralizableElement.isLeaf xmi.value='false'/><Model.Class.isSingleton xmi.value='false'/><Model.ModelElement.constraints><Model.Constraint xmi.idref='c1'/><Model.Constraint xmi.idref='c2'/><Model.Constraint xmi.idref='c3'/><Model.Constraint xmi.idref='c4'/></Model.ModelElement.constraints><Model.Namespace.contents><Model.Constraint xmi.id='c1'><Model.ModelElement.name>MustBeContainedUnlessPackage</Model.ModelElement.<Model.ModelElement.annotation></Model.ModelElement.annotation><Model.Constraint.expression><XMI any xmi type="string" xmi name="">

The first section of this Appendix gives a renderingof the MOF Model as an XML

document encodedusing the XML production rules

defined in the OMG XMI

46

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

UML - MOF via XMI

UML

47

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

Productivité du MOF

Columnname : Stringtype : String

Tablename : String

1 1..*

table

1

column

1..*

<!ENTITY % fixedDTD SYSTEM "XmiFixed.dtd">% f i x e d D T D ;<!ATTLIST XMI xmlns:RDB CDATA #IMPLIED ><!-- PACKAGE: RDB:SimpleRDB --><!-- ***** RDB:tableHasColumn ******* --><!ELEMENT RDB:Table.column ( RDB:Column)* ><!-- CLASS: RDB:Table --><!ELEMENT RDB:Table.name (#PCDATA|XMI.reference)*><!ENTITY % RDB:TableProperties ‘((RDB:Table.name)?)' ><!ENTITY % RDB:TableCompositions '(RDB:Table.column*)' ><!ENTITY % RDB:TableAttPropsList 'name CDATA #IMPLIED' ><!ELEMENT RDB:Table ( %RDB:TableProperties;

,(XMI.extension* ), %RDB:TableCompositions; )?>

<!ATTLIST RDB:Table %RDB:TableAttPropsList; %XMI.element.att;% X M I . l i n k . a t t ; >

<!-- CLASS: RDB:Column --><!ELEMENT RDB:Column.name (#PCDATA|XMI.reference)*><!ELEMENT RDB:Column.type (#PCDATA|XMI.reference)*><!ENTITY % RDB:ColumnProperties '((RDB:Column.name)?

,(RDB:Column.type)?)' >!ENTITY % RDB C l AttP Li t ' CDATA #IMPLIED

<!ENTITY % fixedDTD SYSTEM "XmiFixed.dtd">% f i x e d D T D ;<!ATTLIST XMI xmlns:RDB CDATA #IMPLIED ><!-- PACKAGE: RDB:SimpleRDB --><!-- ***** RDB:tableHasColumn ******* --><!ELEMENT RDB:Table.column ( RDB:Column)* ><!-- CLASS: RDB:Table --><!ELEMENT RDB:Table.name (#PCDATA|XMI.reference)*><!ENTITY % RDB:TableProperties ‘((RDB:Table.name)?)' ><!ENTITY % RDB:TableCompositions '(RDB:Table.column*)' ><!ENTITY % RDB:TableAttPropsList 'name CDATA #IMPLIED' ><!ELEMENT RDB:Table ( %RDB:TableProperties;

,(XMI.extension* ), %RDB:TableCompositions; )?>

<!ATTLIST RDB:Table %RDB:TableAttPropsList; %XMI.element.att;% X M I . l i n k . a t t ; >

<!-- CLASS: RDB:Column --><!ELEMENT RDB:Column.name (#PCDATA|XMI.reference)*><!ELEMENT RDB:Column.type (#PCDATA|XMI.reference)*><!ENTITY % RDB:ColumnProperties '((RDB:Column.name)?

,(RDB:Column.type)?)' ><!ENTITY % RDB:ColumnAttPropsList 'name CDATA #IMPLIED

DTD Généré

interface Table : TableClass{string name ()raises (Reflective::MofError);void set_name (in string new_value) raises (Reflective::MofError);ColumnSet column () raises (Reflective::MofError);void set_column (in ColumnSet new_value)

raises (Reflective::MofError);void add_column (in SimpleRDB::Column new_element)

raises (Reflective::MofError);void modify_column ( in SimpleRDB::Column old_element,

in SimpleRDB::Column new_element)raises (Reflective::NotFound, Reflective::MofError);

void remove_column (in SimpleRDB::Column old_element) raises (Reflective::NotFound, Reflective::MofError);

}; // end of interface Table

Interfaces générées

48

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

IV. Au delà du MDA

Page 9: MetaModeliser2008users.polytech.unice.fr/~blay/ENSEIGNEMENT/IDM/Introduction/... · 04/10/2008 2 7 Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC Application =

04/10/2008

9

49

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

La notion d’espace technologique

• Un espace technologiques’organise autour d’un ensemble de concepts

• Les espaces sont reliéspar des “ponts” de transformations

Program

Grammar

Data

Schema

Model

Meta-Model

Document

Schema

Ontology

Top Level O.

Syntax XML

MDA

DBMS Ontologyengineering

MDA/OMG = Un unique méta métamodèle

……

Est-ce réaliste ?

IDM se positionne différemment

50

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

Une leçon du passé

" Another lesson we should have learned from the recent pastis that the development of "richer" or "more powerful":programming languages was a mistake in the sense that thesemonstrosities, these conglomerations of idiosyncrasies, arereally unmanageable, both mechanically and mentally. I see agreat future for very systematic and very modestprogramming languages. "

E.W. DijkstraThe Humble ProgrammerCommunications of the ACM, Oct 1972

51

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

V. Développement dirigé par les domainesProgrammation orientée domaine

Dave Thomas and Brian Barry, OOPSLA 2003

52

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

Langages spécifiques aux domaines

• A domain-specific language (DSL) is a programming or executable specification language that offers, throughappropriate notations and abstractions, expressive power focused on, and usually restricted to, a particular problemdomain.

53

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

DSL : visions industrielles

• Dans l’article [1] Microsoft ne cache pas que son utilisation d’UML restera probablement essentiellement « contemplative » ou encore documentaire, c’est à dire utilisable essentiellement pour produire et communiquer des esquisses. La déclinaison plus solide de l'IDM chez Microsoft, celle qui est progressivement intégrée dans l’outillage Visual Studio, s’appelle "Software Factories". Elle est fondée essentiellement sur des langages de domaines (DSL ou Domain Specific Languages) de petite taille, facilement manipulables, transformables, combinables, etc. En un mot ces DSL sont la base de l’automatisation de l'IDM chez Microsoft.

• IBM ne dit pas autre chose dans son manifeste [10]. Les trois axes de l’Ingénierie Dirigée par les Modèles sont d’après IBM (1) les standards ouverts, (2) l’automatisation et (3) la représentation directe.

• Parmi les standards ouverts UML peut bien sûr avoir sa place, mais ce sera aux cotés de XML et d'autres standards. Par contre, ce qui est essentiel, c’est la possibilité de traitement automatique de modèles (par exemple tissage, vérification, transformation, etc.) s’appuyant sur des standards précis, limités en taille et spécialisés. On retrouve encore ici cette idée des DSL. Les DSL sont ici de petits langages spécifiques de domaines adaptés à des corporations particulières ou à des besoins particuliers. C’est ce que le manifeste IBM appelle la "représentation directe", c'est-à-dire la mise àdisposition de métiers particuliers ou de tâches spécifiques de langages précis et outillés (éditeurs, générateurs, vérificateurs, etc.).

• La vision de Microsoft est progressivement mise en œuvre dans Visual Studio. La vision d’IBM est mise en œuvre par exemple dans l’outillage EMF (Eclipse Modeling Framework). Ces visions correspondent à l’architecture multi-niveaux de l’OMG fondée sur la pyramide de métamodélisationdominée par le MOF ainsi que sur la possibilité de définir une grande variété de métamodèles spécialisés pour les DSL.

54

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

Domain-Specific Language

En général• Petit (micro langage)• Souvent déclaratif

– Langage de spécification et de programmation– Générateurs de code/composants (Yacc)/Documents(TEX)…

• Expressif à destination de l’utilisateur final (Excel macro-Language)

A domain-specific language (DSL) is a programminglanguage or executable specification language that offers, through appropriate notations and abstractions, expressive power focused on, and usually restricted to, a particularproblem domain. [1]

Page 10: MetaModeliser2008users.polytech.unice.fr/~blay/ENSEIGNEMENT/IDM/Introduction/... · 04/10/2008 2 7 Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC Application =

04/10/2008

10

55

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

Domain-Specific Languages

• Cobol, Fortran, Lisp -> gestion,calculs numériques, calculs symboliquesEvolution vers des langages génériques

Adaptation aux domaines- Bibliothèques de code- « Frameworks » orientés objets ou composants- Un langage spécifique

56

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

DSLs exemples

• Logiciels– Produits financiers (Riska)– Contrôles et coordination– Architectures logicielles (ADL)– Base de données

• Systèmes– Description et analyses d’arbres de syntaxes (Lex/Yacc), – Gestion de documents (LaTeX),– Gestion de video…

• Multi-médias– Interfaces web (Bigwig), manipulation d’images, animation et dessin 3D

• ……….

Mais aussiUML, QVT, SPEM (Software Process Engineering Meta-model ), ASL (Action Semantics Language)…

57

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

DSL Avantages

+ Niveau Domaine : accessible à l’expert lui-même+ Concision + Améliore: productivité, fiabilité, maintenance+ Capture les connaissances d’un domaine et permet ainsi la

conservation et la réutilisation de la connaissance.

Coûts de modélisation, implémentation et maintien du DSLCoûts de l’apprentissageDifficultés de déterminer le champ d’application du langage

58

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

DSL Implementation

• Création de compilateur ou interpréteur dédié : • Optimisation à la fois dans l’expressivité et les choix de mises en œuvre • coût élevé

• Extension d’un langage donné : • Bénéficie de la puissance du langage sous-jacent

Librairie- limitation dans l’expressivité

Pré-processing ou code génération- simple mais détection des erreurs au niveau du langage cible ou seulement à l’exécution

Extension d’un compilateur existant (Tcl)

59

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

En conclusion, MDA, Une approche structurante pour construire les futurs modèles

• Caractériser le nouveau modèle abstrait– focaliser sur les concepts et non sur la syntaxe BNF– via MOF ou profil UML

• Décrire les transformations vers des modèles existants– via XSLT, QVT, ATL, …. – La transformation des PIMs en PSMs devra, à long terme, être entièrement automatique

et réversible.

• Obtenir automatiquement – l’atelier pour spécifier les instances des modèles– le langage XMI associé = plus de BNF imparfaite !!!– le référentiel associé– les compilateurs et générateurs– les consoles d’administration– La transformation des PSMs devra, à court terme, être entièrement automatique,

réversible et paramétrable.

• Enorme gain de productivité dans l’ingénierie des modèles de composants – CCM EJB .NET ~ 5 ans & Combien M$ ?

60

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

Outils orientés MDA (MDE)

• Peu d’outils “MOF compliant” pour expérimenter la création de nouveaux métamodèles! EMF/Eclipse joue un rôle de plus en plus important…

• Pas de portabilité des profils UML entre outils UML !!!

• Des formalismes pour exprimer les MDA transformations … lequel choisir?– QVT : 7/2007

• Peu de PSMs pour– Langages de programmation comme Java, C++, …– Component standard middleware

• Deux mondes : Java : MDA/UML && Microsoft : DSL/Software Factory

Page 11: MetaModeliser2008users.polytech.unice.fr/~blay/ENSEIGNEMENT/IDM/Introduction/... · 04/10/2008 2 7 Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC Application =

04/10/2008

11

61

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

Pourquoi cette solution est bonne

• Rien ne permet d’affirmer à 100% que cette solution est la bonne !• La pérennité des modèles est meilleure que la pérennité du code

– la réutilisation du code ne marche pas en terme de coût• Les techniques de génération de code commencent à être productives

– parallèle avec C et assembleur• Les techniques de modélisation deviennent industrielles

– De nouvelles spécifications sont à attendre, suite aux projets Européen ModelWare[1] ou MODA-TEL[2] par exemple, autour de CIM ou de QVT, ….

• Une évolution des modes de développement est indispensable– Automatisation et d’optimisation de notre cycle de développement.

[1] http://www.modelware-ist.org/[2] http://www.modatel.org/

62

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

Attention, cependant…

• Mais : – Complexité et « chants des sirènes » des Software Factories. – Personnalisation, gestion des modèles : coûteuse et difficile : peu de personnel formé à

la modélisation, à la gestion des exigences, de la traçabilité et du changement.– La maîtrise des outils ne suffit pas. Les équipes projets doivent maîtriser de nombreux

concepts, langages (UML, OCL, langage template, CIM, PIM, PDM, …) – Les expériences sont encore peu fréquentes (forte expansion dans les domaines

critiques: avionique, automobile, ..), les solutions les plus complètes souvent propriétaires néanmoins la démarche est prometteuse.

• Attention ne confondez pas le rôle du „métamodeleur“ de celui de l‘utilisateur.

www.sqli.com/ressources/files/IBCom_mai2006_MDEMDA_ecourte.doc

63

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

Complexité des standards64

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

RéférencesVoir sur le site web du module pour les plus récentes

• Site web de PlaneteMDE: http://www.planetmde.org/• Site web de l’action IDM : http://www.actionidm.org/• [IDM 06]FAVRE J.M.,ESTABLIER J., BLAY-FORNARINO M., Eds., Au delà du

MDA : l’Ingénierie Dirigée par les Modèles, Hermès, 2006.• http://web.univ-pau.fr/~ecariou/cours/idm.html• Krzysztof Czarnecki and Simon Helsen, Classification of model transformation

approaches,OOPSLA 2003 Workshop on Generative Techniques in the context of Model DrivenArchitecture, oct 2003.

• Domain-Specific Languages Arie van Deursen - Paul Klint - Joost Visser CWI, P.O. Box 94079, 1090 GB Amsterdam, The Netherlands, http://www.cwi.nl/ arie,paulk,jvisser/

• Cours UML en ligne Xavier Blanc• Domain-Specific Languages - An Overview , IRISA/INRIA , en ligne• Proposition d'action de recherche coopérative (ARC)

SAM : Syntaxes Abstraites et Modèles , http://www-sop.inria.fr/oasis/personnel/Didier.Parigot/SAM/• Jean Bézivin, On the unification power of models, On the unification power of models, Journées Académiques Microsoft

Research / 19-21 avril 2004, Chantilly, http://www.sciences.univ-nantes.fr/lina/atl/•• http://www.omg.org/docs/omg/03http://www.omg.org/docs/omg/03--0606--01.pdf01.pdf

65

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

Références

• Introduction and overview of MDA:– Model Driven Architecture: An introduction, R.M. Soley– Model Driven Architecture, Richard M.Soley (OMG CEO), November 2000– Exposé Model Driven Architecture, Fred Waskiewicz, OMG

• MDA documentation:– http://www.omg.org/mda

• http://sciences.univ-nantes.fr/info/perso/permanents/bezivin/UML2003• Contracts, Patterns and Aspects within MDA, Prof. Jean-Marc

Jézéquel, http://www.irisa.fr/prive/jezequel

66

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

Autres exemples de transformation de modèles&

MDE

Atelier IHMsAtelier Génie LogicielIntégration de Services

Page 12: MetaModeliser2008users.polytech.unice.fr/~blay/ENSEIGNEMENT/IDM/Introduction/... · 04/10/2008 2 7 Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC Application =

04/10/2008

12

67

Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC

LES PROJETS

http://anubis.polytech.unice.fr/cours/2008_2009:si5:idm:start