Ingénierie Dirigée par les Modèles Pierre Laforcade Master EIAH 2007
Présentation personnelle Statut Enseignements Lieu : IUT de Laval Matières : modélisation objet en UML, programmation objet, JavaEE/EJB,... Recherches Maître de conférences Laboratoire d'informatique LIUM Projet REDiM Thématiques de recherche Visual Instructional Design Languages (VIDL) & Domain-Specific Modeling (DSM) Scénarisation pédagogique &... 2
Sources du cours Cours 6 - et EIAH - de la 3ème école thématique sur les EIAH (juillet 2005), Nodenot, Lepallec, Marino Cours, Eric Cariou Rapport de synthèse, AS CNRS MDA Cours, Jean Bézivin Cours, Xavier Blanc Documents du TECFA Divers sites Web 3
Plan Introduction MDA Ingénierie Dirigée par les Modèles () Définitions Vers le DSM Bilan 4
Tendances en Génie Logiciel (1) Complexité croissante des logiciels Séparation des préoccupations (des métiers) Multiplicité des besoins (front office / back office) Multiplicité des plate-formes (JavaSE, JavaEE, Web Services, JavaME, PHP+SQL, ) Evolution des technologies sans fin Faut-il continuer à baser les développements sur le code des applications? 5
Tendances en Génie Logiciel (2) Conséquences pratiques de cette évolution permanente? Pour profiter des nouvelles technologies et de leurs avantages Nécessité d'adapter les applications à ces technologies Question : quel est le coût de cette adaptation? Généralement très élevé Nécessité de réécrire presque entièrement l'application Car mélange de code métier et de code technique Aucune capitalisation de la logique et des règles métiers 6
Tendances en Génie Logiciel (3) Partant de tous ces constats Nécessité de découpler clairement la logique métier de la mise en oeuvre technologique C'est un des principes fondamentaux de l'ingénierie des modèles Séparation des préoccupations (separation of concerns) Besoin de modéliser/spécifier La partie métier à un niveau abstrait La plate-forme de mise en oeuvre De projeter ce niveau abstrait sur une plate-forme 7
Plan Introduction Ingénierie Dirigée par les Modèles () 8
Évolution des technologies/paradigmes 9
MDA Approche Model-Driven Architecture (MDA) de l'omg (Object Management Group) Origine de l'ingénierie des modèles Date de fin 2000 Le MDA est né à partir des constatations liées à l'évolution continue des technologies But du MDA Abstraire les parties métiers de leur mise en oeuvre Basé sur des technologies et standards de l'omg UML, MOF, OCL, CWM... 10
Normes OMG de modélisation MOF : Meta-Object Facilities Langage de définition de méta-modèles UML : Unified Modelling Language Langage de modélisation CWM : Common Warehouse Metamodel Modélisation ressources, données, gestion d'une entreprise OCL : Object Constraint Language Langage de contraintes sur modèles XMI : XML Metadata Interchange Standard pour échanges de modèles et méta-modèles 11
MDA Le MDA définit 3 niveaux de modèles CIM : Computer Independent Model Recense les besoins des utilisateurs, le vocabulaire employé est celui du praticien PIM : Platform Independent Model Modèle du domaine (domain/business model) indépendant de toute implémentation informatique Modèle spécifiant une application indépendamment de la technologie de mise en oeuvre Uniquement spécification de la partie métier d'une application PSM : Platform Specific Model Modèle spécifiant une application après projection sur une plateforme technologique donnée 12
MDA Relations entre les différents niveaux Transcription informatique CIM Requirements Analysis Conception Métier Fonctionnel Technique Implementation 13
Transformations PIM>PSM 14
MDA Cycle de développement d'un logiciel selon le MDA Cycle en Y (ou en «épi») Plus complexe en pratique PDM PSM 15
MDA 16
Perspective globale CIM/PIM/PSM 17
MDA Outils de mise en oeuvre du MDA Standards de l'omg Spécification des modèles aux différents niveaux Langage de modélisation UML Profils UML : profil EJB, profil Corba, etc. Langage de contraintes OCL Spécification des méta-modèles Sur la base du MOF (Meta Object Facilities) 18
MDA 19
MDA et Limites du MDA Technologies OMG principalement Ingénierie des modèles MDE : Model Driven Engineering : Ingénierie Dirigée par les Modèles Approche plus globale et générale que le MDA Appliquer les mêmes principes à tout espace technologique et les généraliser UML, XML, les grammaires de langages,... Le MDA est un processus de type MDE 20
Principes de l' Capitalisation Approche objets/composants MDE Capitalisation, réutilisation d'éléments logiciels/code Capitalisation, réutilisation de logique métier Abstraction Des technologies de mise en oeuvre Permet d'adapter une logique métier à un contexte Permet d'évoluer bien plus facilement vers de nouvelles technologies 21
Principes de l' (2) Modélisation La modélisation n'est pas une discipline récente en génie logiciel Les processus de développement logiciel non plus RUP, Merise... C'est l'usage de ces modèles qui change Le but du MDE est De passer d'une vision contemplative des modèles A une vision productive A but de documentation, spécification, communication Pour générer le code final du logiciel pour une technologie de mise en oeuvre donnée 22
Principes de l' (3) Séparation des préoccupations 2 principales préoccupations Mais autres préoccupations possibles Métier Plate-forme de mise en oeuvre Exemple : ajouter de la sécurité sur un modèle de mise en oeuvre... Projection, fusion de modèles (composition, tissage) Conception orientée Aspect 23
Principes de l' (4) Pour passer à une vision productive, il faut Que les modèles soient bien définis Notion de méta-modèle Pour que l'on puisse les manipuler et les interpréter via des outils Avec traitement de méta-modèles différents simultanément Référentiels de modèles et de méta-modèles Outils, langages de transformations ou de projection Pour transformation/passage entre 2 espaces technologiques différents OMG est en train de normaliser un langage d'expression des transformations (QVT) 24
Définitions Concepts principaux de l' Modèles Méta-modèles Transformations Espace technologique Architecture en 4 couches 25
Modèles Un modèle est une description, une spécification partielle d'un système But d'un modèle Abstraction de ce qui est intéressant pour un contexte et dans un but donné Vue subjective et simplifiée d'un système Faciliter la compréhension d'un système Simuler le fonctionnement d'un système Exemples Modèle économique, Modèle démographique... 26
Modèles (2) Différence entre spécification et description Spécification d'un système à construire Description d'un système existant Relation entre un système et un modèle ReprésentationDe (notée μ) 27
Modèles (3) Un modèle représente un système modélisé De manière générale, pas que dans un contexte de génie logiciel ou d'informatique Un modèle peut aussi avoir le rôle de système modélisé dans une autre relation de représentation Modèle XML de la carte de la France administrative qui est un modèle de la France «réelle» 28
Modèles (4) Un modèle est écrit dans un langage qui peut être Non ou peu formalisé, la langue naturelle Formel et bien défini, non ambigu Le français, un dessin... Syntaxe, grammaire, sémantique On parle de méta-modèle pour ce type de langage de modèle Pour les modèles définis dans un langage bien précis Relation de conformité Un modèle est conforme à son méta-modèle Relation EstConformeA (notée c ) 29
Méta-modèle Un modèle est conforme à son méta-modèle On ne parle pas de relation d'instanciation Un modèle n'est pas une instance d'un méta-modèle Instanciation est un concept venant de l'approche objet Approche objet qui ne se retrouve pas dans tous les domaines Un méta-modèle n'est pas non plus un modèle de modèle 30
Méta-modèles (2) Cette relation de conformité est essentielle Base de l' pour développer les outils capables de manipuler des modèles Un méta-modèle est une entité de première classe Mais pas nouvelle Un texte écrit est conforme à une orthographe et une grammaire Un programme Java est conforme à la syntaxe et la grammaire du langage Java Un fichier XML est conforme à sa DTD Une carte doit être conforme à une légende Un modèle UML est conforme au méta-modèle UML 31
Méta-modèles et langages Lien entre méta-modèle et langage Un méta-modèle est un modèle qui définit le langage pour définir un modèle Langage Méta-modèle Système abstrait Définition explicite et concrète d'un langage Un méta-modèle modélise donc un langage Un méta-modèle n'est donc pas un langage 32
Méta-modèles et langages (2) En linguistique Un langage est défini par l'ensemble des phrases valides écrites dans ce langage Une grammaire est un modèle de langage Une grammaire est un méta-modèle Relation entre langage et modèle Un modèle est un élément valide de ce langage Une phrase valide du langage en linguistique Relation d'appartenance AppartientA, notée Є 33
Relations générales Exemple de la carte Une carte modélise un pays selon un point de vue Le méta-modèle de la carte est sa légende La légende définit un ensemble de cartes valides Une carte conforme à une légende appartient à cet ensemble 34
Relations générales Exemple avec un langage de programmation Un programme Java modélise (simule) un système Un programme Java est conforme à la grammaire du langage Java La grammaire de Java modélise le langage Java Exemple avec UML Un diagramme UML modélise un système Un diagramme UML est conforme au méta-modèle UML Le méta-modèle UML définit l'ensemble des modèles UML valides Un modèle UML appartient à cet ensemble 35
Transformations Une transformation est une opération qui Prend un modèle source en entrée Fournit un modèle cible en sortie Transformation endogène Dans le même espace technologique Les modèles source et cible sont conformes au même méta-modèle Transformation d'un modèle UML en un autre modèle UML Transformation exogène Entre 2 espaces technologique différents Les modèles source et cible sont conformes à des méta-modèles différents Transformation d'un modèle UML en programme Java Transformation d'un fichier XML en schéma de BDD 36
Transformations : illustration 37
Transformation selon l'omg 38
Espaces technologiques Un espace technologique correspond à : Un contexte de travail Un ensemble de concepts Un ensemble de méthodes Un ensemble d'outils Un savoir et un savoir-faire partagés Un ET est en général associé à une certaine communauté possédant une expertise commune, des pratiques communes et éventuellement des problématiques de recherche partagées 39
Espaces technologiques [Mireille Blay-Fornarino] 40
Architecture en 4 couches 41
Architecture en 4 couches de l'omg 42
Architecture en 4 couches de l'omg 43
Hiérarchie en 4 niveaux Existe en dehors de la vision OMG pour les autres espaces technologiques 44
Comparaison des espaces technologiques 45
Outils de l' Outils pour La définition de méta-modèles La définition de transformations et leur exécution La génération de code La génération d'environnement graphique de modélisation La vérification de conformité de modèles La spécification de contraintes etc. 46
Outils open source http://planetmde.org/ 47
suite... 48
Outils commerciaux 49
Outils Peu d outils MOF compliant pour expérimenter la création de nouveaux metamodèles Développement de profils UML est consommateur de temps et d argent mais surtout les constructeurs de profils sont encore très chers et propriétaires (exemple : Objecteering, Rationale Rose) Pas de portabilité des profils UML entre outils UML! Peu de formalismes pour exprimer les MDA transformations OMG QVT Différents mondes : OMG : MDA / UML / MOF / SPEM / CWM / UML Profile Microsoft : DSL / Software Factory Eclipse : Ecore / EMOF / nombreux plug-ins 50
DSL et DSM 51
DSL et DSM Domain Specific Modeling (DSM) way of designing and developing systems, most often IT systems such as computer software. It involves the systematic use of a graphical Domain Specific Language (DSL) to represent the various facets of a system. DSM languages tend to support higherlevel abstractions than General-Purpose Modeling languages, meaning that they require less effort and fewer low-level details to specify a given system. 52
DSL et DSM Vision Microsoft 53
DSL et DSM Vision GMF (Eclipse) 54
Bilan Le MDE est une nouvelle approche pour concevoir des applications En s'abstrayant des technologies de mise en oeuvre En plaçant les modèles et surtout les méta-modèles au centre du processus de développement dans un but productif Pour pouvoir s'y adapter plus facilement sans en être dépendant Les modèles sont depuis longtemps utilisés mais ne couvraient pas l'ensemble du cycle de vie du logiciel Les méta-modèles existent aussi depuis longtemps (grammaires, DTD XML,...) Nouvelle vision autour de notions déjà connues Les grands éditeurs de logiciel suivent ce mouvement IBM, Microsoft... 55
Liens web PlanetMDE Projets Eclipse http://www.omg.org/mda/ Wikipédia http://www.omg.org/ MDA http://www.eclipse.org/projects/ OMG http://planetmde.org/ http://fr.wikipedia.org/wiki/ingénierie_dirigée_par_les_modèles AS MDA http://idm.imag.fr/as/ 56
Ouvrages 57
This is the end!! pierre.laforcade@lium.univ-lemans.fr 58