Introduction lingnierie dirige par les modles Merci Jean

  • Slides: 47
Download presentation
Introduction à l’ingénierie dirigée par les modèles Merci à Jean Bézivin pour mettre à

Introduction à l’ingénierie dirigée par les modèles Merci à Jean Bézivin pour mettre à notre disposition une partie de ses présentations !

 • Motivation • MDA • MDE Plan • Motivations de l’approche par modèles

• Motivation • MDA • MDE Plan • Motivations de l’approche par modèles • Le MDA de l’OMG (Model Driven Architecture) • Le MDE (Model Driven Engineering) 2

Le développement de logiciels • Systèmes de plus en plus complexes – Volumineux •

Le développement de logiciels • Systèmes de plus en plus complexes – Volumineux • Données • Code – Évolutifs • La partie fonctionnelle • La partie non fonctionnelle – Hétérogènes • Langages • Stockage et gestion des données • Plateformes 3 • Motivation • MDA • MDE

Technologies à complexité croissante 1980 Technologie procédurale Procédures • Motivation • MDA • MDE

Technologies à complexité croissante 1980 Technologie procédurale Procédures • Motivation • MDA • MDE 1995 Technologie des objets Objets, Classes, Méthodes 4 Technologie des composants Beans, Components, Containers, Packages, Interfaces, Use cases, Scenarii, Services, Frameworks, Applications, Patterns, Aspects, etc.

 • Motivation • MDA • MDE Une hypothèse fausse Hypothèse : Il y

• Motivation • MDA • MDE Une hypothèse fausse Hypothèse : Il y a correspondance exacte entre les objets métier et les objets programme. x objet «abstrait» analyse Conséquence (fausse) : il est possible de "raffiner" les objets comme on raffinait autrefois les procédures. conception codage 5 x' x'' objet «concret»

 • Motivation • MDA • MDE Une hypothèse fausse Etudiant Enseignant Filière Cours

• Motivation • MDA • MDE Une hypothèse fausse Etudiant Enseignant Filière Cours Diplôme Examen Modèle d'analyse Etudiant Enseignant Filière Cours Diplôme Examen Modèle de conception Etudiant Enseignant Filière Cours Diplôme Examen Modèle de codage 6

Les limites des objets • Motivation • MDA • MDE On a pas réussi

Les limites des objets • Motivation • MDA • MDE On a pas réussi le « tout est objet » : • 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 la recherche de simplicité, d’extensibilité, d'intégration. 7

Les technologies middleware • Motivation • MDA • MDE • Toujours en quête de

Les technologies middleware • Motivation • MDA • MDE • Toujours en quête de portabilité, interopérabilité, • séparation du code fonctionnel du non fonctionnel, etc. Prolifération des technologies middleware • Sun Changement de plateforme de plus en plus fréquent ! – J 2 SE, J 2 EE • W 3 C – Schéma XML, WSDL, etc. • OMG – Modèle à composants CORBA • Microsoft – COM+, . NET Aucune technologie n’a gagné ! • Sun et OMG – RMI et IIOP 8

MDA de l’OMG (Model Driven Architecture)

MDA de l’OMG (Model Driven Architecture)

 • Motivation • MDA • MDE 10

• Motivation • MDA • MDE 10

 • Motivation • MDA • MDE OMG : les membres Fondé à l’initiative

• Motivation • MDA • MDE OMG : les membres Fondé à l’initiative de 11 grandes sociétés étatsuniennes [BGV 97] : American Airlines, Canon, Data General, Gold Hill Hewlett-Packard, Philips, Prime, Sun, Soft-switch Unisys, 3 Com. • Actuellement : plus de 700. • Organisation indépendante et ouverte à tous. • Cotisation de 500$ à 75000$ annuels selon l’influence. 11

 • Motivation • MDA • MDE OMG : les objectifs • Objectif fondamental

• Motivation • MDA • MDE OMG : les objectifs • Objectif fondamental : interopérabilité d’applications à • objets (intégration). Objectifs initiaux – Interopérabilité des applications à objets hétérogènes. – Mettre fin à la cacophonie des langages à objets (programmation, modélisation). Normaliser les systèmes, les langages à objets. – • Objectifs actuels – Interopérabilité des développements à objets. – Normaliser les processus de développement. – Normaliser les modèles et leurs échanges. 12

OMG : le processus de normalisation • Motivation • MDA • MDE • Identification

OMG : le processus de normalisation • Motivation • MDA • MDE • Identification du problème. – Le Comité Technologique TC (Technology Committee) charge un groupe de travail TF (Task Force) de faire des recommandations dans un domaine technologique particulier. Seuls les membres influents peuvent les proposer. • Creation de la RFP (Request For Proposal) – Le TF élabore une RFP avec éventuellement et au préalable une étude RFI (Request For Information). La RFI viser à collecter des informations dans l’industrie. La RFP aboutit ensuite à l’élaboration d’une proposition de norme soumise à l’OMG. • Approbation de la RFP – La RFP est soumise à l’AB (Architecture Board), aux TFs et aux TC, qui après étude et modifications votent la recommandation de la spécification. 13

OMG : le processus de normalisation • Motivation • MDA • MDE • Soumissions

OMG : le processus de normalisation • Motivation • MDA • MDE • Soumissions de la RFP – Les membres peuvent répondre à la RFP par une lettre d’intention LOI (Letter Of Intent) puis une soumission initiale. Ces soumissions sont ensuite revues jusqu’à obtenir une soumission finale votée. • Finalisation de la RFP – La finalisation est assurée par la FTF (Finalization Task Force) qui rend disponible la norme. • Post-adoption de la RFP – La révision est assurée par la RTF (revision task force) qui effectue des modifications mineures. 14

 • Motivation • MDA • MDE OMG : les activités Deux grandes générations

• Motivation • MDA • MDE OMG : les activités Deux grandes générations à l’OMG • Avant 2000 le modèle OMA : Object Management Architecture interopérabilité entre applications à objets développées sur des réseaux hétérogènes – CORBA 1. 1 -> CORBA 3. 0 – IDL • Progressivement le MDA – Normalisation des langages : UML, OCL, XMI – Réflexion sur les langages : MOF – Adaptation et personnalisation : CWM – Réflexion sur les processus : SPEM – Multiplication des middleware (CORBA, EJB, SOAP, COM+, . NET. . . ) 15

 • Motivation • MDA • MDE Pourquoi le MDA ? • CORBA n’a

• Motivation • MDA • MDE Pourquoi le MDA ? • CORBA n’a pas complètement réussi. • Les EJB et. NET sont également largement répandus. • Toujours en quête de portabilité, interopérabilité, • séparation du code fonctionnel du non fonctionnel, etc. Idée -> Monter en niveau d’abstraction ! L'initiative MDA de l'OMG vise à promouvoir l'idée de la mise en œuvre de systèmes distribués dirigée par les modèles. 16

Du centré code au centré modèle interface Compte { attribute short numéro; attribute float

Du centré code au centré modèle interface Compte { attribute short numéro; attribute float solde; }; IDL: sémantiquement léger par définition UML (+OCL) : CORBA sémantiquement enrichi 17 • Motivation • MDA • MDE

 • Motivation • MDA • MDE Modèle • Un modèle est la représentation

• Motivation • MDA • MDE Modèle • Un modèle est la représentation d’un système. • L’objectif d’un modèle est de répondre à certaines questions à la place du système qu’il représente. • Avec MDA, le développement de systèmes est dirigé par les • modèles. Les modèles doivent diriger la conception, la construction, le déploiement, la maintenance, etc. 18

Le MDA et les plateformes Modèles neutres basés sur UML et MOF Java EJB

Le MDA et les plateformes Modèles neutres basés sur UML et MOF Java EJB COM+ DCOM C# Dot. Net HTTP HTML XML SOAP 19 • Motivation • MDA • MDE Ø MOF et UML constituent le cœur de la technologie MDA. Ø Hypothèse : Des modèles technologiquement neutres peuvent être mis en œuvre sur une grande variété de technologies de platesformes. Ø La transformation de modèles comme concept clé dans cette mise en œuvre.

 • Motivation • MDA • MDE Processus MDA • Séparer les besoins applicatifs

• Motivation • MDA • MDE Processus MDA • Séparer les besoins applicatifs d’un système des détails de la plateforme utilisée. 1. Spécification des systèmes indépendamment des plateformes 2. Spécification des plateformes 3. Choix d’une plateforme en particulière 4. Transformation de la spécification du système vers une autre en utilisant une plateforme spécifique 20

 • Motivation • MDA • MDE Les modèles MDA • PIM (Platform Independent

• Motivation • MDA • MDE Les 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 œuvre. Exemple : système de facturation exprimé en UML. – Modèle de métier et de service lié à un modèle de plate-forme. Exemple : Système de facturation exprimé en "UML profile pour CORBA". 21 PIM Code Conception 4 • PSM (Platform Specific Model) – Analyse 2 7 PSM 1 Transformation 3 5 Code 6

Patron de comportement MDA • Motivation • MDA • MDE • La transformation de

Patron de comportement MDA • Motivation • MDA • MDE • La transformation de modèles PIM ? PDM (Platform Description Models) est le processus qui transforme un modèle en un autre modèle. • La transformation du PIM vers PSM peut être complétée par d’autres informations comme celles relatives au mapping entre le PIM et le PSM ou à la description de la plateforme (PDM). Transformation PSM • Le PIM doit persister à l’apparition de nouveaux PSM. 22

Interopérabilité entre les modèles PIM Transformation PSM Ponts Transformation PSM Transformation Code Ponts 23

Interopérabilité entre les modèles PIM Transformation PSM Ponts Transformation PSM Transformation Code Ponts 23 Code • Motivation • MDA • MDE

 • Motivation • MDA • MDE Du contemplatif au productif classe Code Java

• Motivation • MDA • MDE Du contemplatif au productif classe Code Java séquence XMI Du compréhensible pour l’homme au compréhensible pour les machines 24

 • Motivation • MDA • MDE Questions • Un seul type de modèle

• Motivation • MDA • MDE Questions • Un seul type de modèle ? – NON – Modèle de données relationnel (tables, colonnes, …), workflow (activités, exécuteur, transition, split, join, …), class UML (class, attribut, opération, association, …), interfaces CORBA (interface, types, méthodes, …), etc. • Un seule langage de modélisation ? – NON – DSL (Domain Specific Language). • Comment organiser les modèles ? • Comment échanger de modèles ? • Comment relier les modèles ? 25

 • Motivation • MDA • MDE Architecture à 4 niveaux Architecture égyptienne M

• Motivation • MDA • MDE Architecture à 4 niveaux Architecture égyptienne M 3 Le MOF (Meta Object Facility) meta model Le métamodèle UML et autres MMs M 2 metamodel Des modèles UML et d'autres M 1 model M 0 Différentes utilisations de ces modèles "le monde réel" 26

MOF (Meta Object Facility) • Motivation • MDA • MDE • Constitue la fondation

MOF (Meta Object Facility) • Motivation • MDA • MDE • Constitue la fondation de l’architecture de métamodélisation de l’OMG. • Est un métamodèle général de base qui permet la définition de modèles et de métamodèles. • A emprunté le cœur du diagramme de class d’UML (package, class, association, type de données, référence, etc. ). • Rend possible l’échange de modèles, l’interopérabilité, etc. 27

Métamodèle MOF • Motivation • MDA • MDE 28

Métamodèle MOF • Motivation • MDA • MDE 28

 • Motivation • MDA • MDE Principales entités du MOF Package Contient Class

• Motivation • MDA • MDE Principales entités du MOF Package Contient Class MOFAttribute Définie par Operation Reference Association Définie par Exception Data Type 29 Déclenche

Les associations du MOF • Motivation • MDA • MDE • Generalizes – Définie

Les associations du MOF • Motivation • MDA • MDE • Generalizes – Définie une relation d’héritage applicable aux éléments de type de classes et de type de packages. Même si les types de données et les associations sont des sous-types de Generalizable. Element, le MOF ne permet pas l’héritage pour ces entités. • Contains – Permet de rattacher les classes, associations et autres entités MOf pouvant être définis dans un paquetage à un autre paquetage. Elle permet également de rattacher les attributs et opérations à leur classe ou encore les paramètres à leur opération. • Depends. On • – Permet de représenter les dépendances entre les éléments de modélisation. Is. Type. Of – Permet de relier un élément de modélisation typé (un attribut, un paramètre, une constante) à son type (une classe ou un type de données). 30

Les associations du MOF • Motivation • MDA • MDE • Exposes et Refers.

Les associations du MOF • Motivation • MDA • MDE • Exposes et Refers. To – Permettent de faire le lien entre une référence et les deux extrémités de l’association liées à cette référence (l’extrémité exposée et l’extrémité référencée). • Can. Raise – Permet de relier une opération aux exceptions qu’elle est susceptible de lever. • Aliases – Permet de relier un objet import à l’élément qu’il permet d’importer. • Constraints – Permet de relier un élément de modélisation aux contraintes qui le référencent. • Attaches. To – Permet d’associer un élément de modélisation aux tags qui le référencent. 31

 • Motivation • MDA • MDE Modèle -> Métamodèle Relation de conformité entité

• Motivation • MDA • MDE Modèle -> Métamodèle Relation de conformité entité métaentité MM UML Class Relation de conformité modèle métamodèle M 3 M 2 meta etameta model 1 * Attribute Modèle UML Client metamodel Nom : String M 1 model 32

Métamodèle -> Métamodèle • Motivation • MDA • MDE MOF Relation de conformité entité

Métamodèle -> Métamodèle • Motivation • MDA • MDE MOF Relation de conformité entité métaentité source Class Relation de conformité modèle métamodèle M 3 meta etameta model UML Class M 2 M 1 destination Association metamodel 33 1 * Attribute

 • Motivation • MDA • MDE Métamodèle -> Métamodèle Relation de conformité entité

• Motivation • MDA • MDE Métamodèle -> Métamodèle Relation de conformité entité métaentité MOF Relation de conformité modèle métamodèle source Class M 3 M 2 M 1 meta etameta model metamodel 34 destination Association

Les trois niveaux de modélisation the MOF MMM Niveau M 3 Niveau M 2

Les trois niveaux de modélisation the MOF MMM Niveau M 3 Niveau M 2 the UPM MM (SPEM) Niveau M 1 Niveau M 0 • Motivation • MDA • MDE the UML MM a UML model m another UML model m’ another use of m a particular use of m 35 the CWM MM CCM EDOC etc.

La pile de modélisation MDA • Un métamodèle unique conforme à lui même. •

La pile de modélisation MDA • Un métamodèle unique conforme à lui même. • Une importante bibliothèque de métamodèles compatibles conformes au MOF. • Chaque modèle est défini dans le langage de son unique métamodèle. 36 • Motivation • MDA • MDE

 • Motivation • MDA • MDE MDA • Ce logo représente les différentes

• Motivation • MDA • MDE MDA • Ce logo représente les différentes couches de la spécification MDA • Le cœur : UML, MOF et CWM • Autour quelques unes des plateformes supportées : CORBA, Services web, . NET, XMI/XML, etc. • En surface les services systèmes : Transactions, Événements, Sécurité, etc. • A l’extérieur les domaines pour lesquelles des composants fonctionnels doivent être définis : Finance, Commerce électronique, Télécommunications, etc. 37

Les espaces technologiques

Les espaces technologiques

Généralisation de l’approche MDA • Motivation • MDA • MDE • Est-il possible d’identifier

Généralisation de l’approche MDA • Motivation • MDA • MDE • Est-il possible d’identifier les niveaux à la MDA dans d’autres contextes ? Programmation (Java, C, Pascal, etc. ) Bases de données relationnelles (SGBD) XML D’autres ? • Contexte = espace technologique • Certains espaces technologiques sont clairement structurés, d’autres sont moins structurés ou non structurés. 39

 • Motivation • MDA • MDE Grammarware (programmation) Conforms to Metamodel: EBNF grammar

• Motivation • MDA • MDE Grammarware (programmation) Conforms to Metamodel: EBNF grammar production. Rule : = IDENT “: =” sequence; sequence : = alternative sequence? ; of EBNF alternative : = rep (“|”alternative)? ; rep : = atom (“? ” | “*”)? ; atom : = terminal | “(” sequence “)”; terminal : = STRING | IDENT; Conforms to Metamodel: a Petri Net Grammar Classical representation P 1 T 1 P 2 petrinet : = “petrinet” “{” place* transition* arc. PT* arc. TP* “}”; place : = “place” IDENT “; ”; transition : = “transition” IDENT “; ”; arc. PT : = “arc. PT” IDENT “->” IDENT; arc. TP : = “arc. TP” IDENT “->” IDENT; meta M 3 M 2 Conforms to Model: a string petrinet { place P 1; place P 2; transition T 1; arc. PT P 1 -> T 1; arc. TP T 1 -> P 2; 40 } Rep of System M 1

 • Motivation • MDA • MDE Docware (XML) Conforms to Metamodel: XML Schema

• Motivation • MDA • MDE Docware (XML) Conforms to Metamodel: XML Schema for XML Schema … <xs: element name=“element"> <xs: complex. Type> <xs: attribute name=“name“ type=“xs: string"/> … </xs: complex. Type> </xs: element> … Conforms to … Metamodel: <xs: element name=“place"> <xs: complex. Type> a Petri Net <xs: attribute name=“name“ XML Schema type=“xs: string"/> </xs: complex. Type> </xs: element> … Classical Conforms to representation P 1 Model: an XML <petrinet> <place name=“P 1”/> T 1 document <place name=“P 2”/> <transition name=“T 1”/> P 2 <arc. PT source=“P 1” target=“T 1”/> <arc. TP source=“T 1” target=“P 2/> </petrinet> 41 meta M 3 M 2 Rep of System M 1

 • Motivation • MDA • MDE Espaces technologiques MDA M 3 M 2

• Motivation • MDA • MDE Espaces technologiques MDA M 3 M 2 M 1 Relationnalware Algèbre relationnelle MOF Le méta modèle UML Un modèle UML Docware Microsoft DSL (software factories) Grammarware XML Un schéma BD Un autre méta modèle Un méta DSL modèle DSL Un autre Schéma Un schéma XML Une BD spécifique Un autre Unmodèle. DSL Un autre Unmodèle. XML EBNF Grammaire lang Pascal Grammaire lang Java Conforms to Aucun espace technologique est une île ! 42 Un autre programme Un prog. en Java

Même concept différent espace technologique • Motivation • MDA • MDE • Si la

Même concept différent espace technologique • Motivation • MDA • MDE • Si la correspondance est exacte, il est possible de convertir les modèles d’un espace technologique à un autre. EBNF MOF XML Grammaire Java métamodèle Java DTD Java. ML Programme Java Modèle Java Document Java. ML A suivre… Projections 43

Résumé sur l’évolution du génie logiciel

Résumé sur l’évolution du génie logiciel

Évolution des techniques de génie logiciel • Motivation • MDA • MDE • Procedural

Évolution des techniques de génie logiciel • Motivation • MDA • MDE • Procedural refinement (1950 -1980) – Top-down programming – Architecture based on procedural refinement are very sensible to modifications (Jackson, Meyer) • Object composition (1980 -2000) – The complexity of object architectures lies not inside the indivual objects, but in the complex relations between them Patterns, Components, etc. – • Model transformation (2000 -? ) – Any artifact belongs to a specific model – Models are first class entities in the software development – Models are derived from other models by transformation operations 45

De l’approche procédurale à la transformation des modèles Technologie procédurale 1980 Procédures, Pascal, C,

De l’approche procédurale à la transformation des modèles Technologie procédurale 1980 Procédures, Pascal, C, . . . Raffinement procédural • Motivation • MDA • MDE 2000 1995 Technologie des objets des composants Des modèles Objets, Classes, Smalltalk, C++, . . . Paquetages, Frameworks, Patrons, … Composition d'objets 46 Modèles, Méta-Modèles, UML, MOF, XML, XMI, XSLT, … Transformation de modèles

 • Motivation • MDA • MDE Références • David S. Frankel. Model Driven

• Motivation • MDA • MDE Références • David S. Frankel. Model Driven Architecture: Applying • • MDA to Enterprise Computing. Wiley Publishers, ISBN: 0 -471 -31920 -1, 2003. http: //www. omg. org/mda/ Kadima, Hubert. MDA : Conception Orientée Objet Guidée Par Les Modèles. Éditeur Dunod, 2005 47