ingénierie dirigée par les modèles idm
TRANSCRIPT
Ingénierie Dirigée par les Modèles
Master EIAH – 2007Pierre Laforcade
IDMIDM
12/11/07 IDM 2
Présentation personnelle
● Statut– Maître de conférences
● Enseignements– Lieu : IUT de Laval– Matières : modélisation objet en UML, programmation objet,
JavaEE/EJB,...● Recherches
– Laboratoire d'informatique LIUM– Projet REDiM
● Thématiques de recherche– Visual Instructional Design Languages (VIDL) & Domain-Specific
Modeling (DSM)– Scénarisation pédagogique & IDM– ...
12/11/07 IDM 3
Sources du cours
● Cours 6 - IDM et EIAH - de la 3ème école thématique sur les EIAH (juillet 2005), Nodenot, Lepallec, Marino
● Cours IDM, Eric Cariou● Rapport de synthèse, AS CNRS MDA● Cours IDM, Jean Bézivin● Cours IDM, Xavier Blanc● Documents du TECFA● Divers sites Web
12/11/07 IDM 4
✗ Introduction
✗ MDA
✗ Ingénierie Dirigée par les Modèles (IDM)
✗ Définitions
✗ Vers le DSM
✗ Bilan
Plan
12/11/07 IDM 5
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 ?
12/11/07 IDM 6
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
12/11/07 IDM 7
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
12/11/07 IDM 8
✗ Introduction
✗ Ingénierie Dirigée par les Modèles (IDM)
Plan
12/11/07 IDM 9
Évolution des technologies/paradigmes
12/11/07 IDM 10
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 ...
12/11/07 IDM 11
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
12/11/07 IDM 12
MDA
● Le MDA définit 3 niveaux de modèles– CIM : Computer Independent Model
● Modèle du domaine (domain/business model) indépendant de toute implémentation informatique
● Recense les besoins des utilisateurs, le vocabulaire employé est celui du praticien
– PIM : Platform Independent Model● 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 plate-
forme technologique donnée
12/11/07 IDM 13
MDA
● Relations entre les différents niveaux
CIM
Transcription informatique
Métier Fonctionnel Technique
Requirements Analysis Conception Implementation
12/11/07 IDM 14
Transformations PIM>PSM
12/11/07 IDM 15
MDA
● Cycle de développement d'un logiciel selon le MDA– Cycle en Y (ou en « épi »)– Plus complexe en pratique
PSM
PDM
12/11/07 IDM 16
MDA
12/11/07 IDM 17
Perspective globale CIM/PIM/PSM
12/11/07 IDM 18
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)
12/11/07 IDM 19
MDA
12/11/07 IDM 20
MDA et IDM
● Limites du MDA– Technologies OMG principalement
● Ingénierie des modèles● MDE : Model Driven Engineering● IDM : 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
12/11/07 IDM 21
Principes de l'IDM
● Capitalisation– Approche objets/composants
● Capitalisation, réutilisation d'éléments logiciels/code
– MDE● 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
12/11/07 IDM 22
Principes de l'IDM (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 but de documentation, spécification, communication
● A une vision productive– Pour générer le code final du logiciel pour une technologie de
mise en oeuvre donnée
12/11/07 IDM 23
Principes de l'IDM (3)
● Séparation des préoccupations– 2 principales préoccupations
● Métier● Plate-forme de mise en oeuvre
– Mais autres préoccupations possibles● 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
12/11/07 IDM 24
Principes de l'IDM (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– Pour transformation/passage entre 2 espaces technologiques
différents● Référentiels de modèles et de méta-modèles● Outils, langages de transformations ou de projection
– OMG est en train de normaliser un langage d'expression des transformations (QVT)
12/11/07 IDM 25
Définitions
● Concepts principaux de l'IDM– Modèles– Méta-modèles– Transformations– Espace technologique– Architecture en 4 couches
12/11/07 IDM 26
Modèles
● Un modèle est une description, une spécification partielle d'un système– Abstraction de ce qui est intéressant pour un contexte et
dans un but donné– Vue subjective et simplifiée d'un système
● But d'un modèle– Faciliter la compréhension d'un système– Simuler le fonctionnement d'un système
● Exemples– Modèle économique,– Modèle démographique ...
12/11/07 IDM 27
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 μ)
12/11/07 IDM 28
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 »
12/11/07 IDM 29
Modèles (4)
● Un modèle est écrit dans un langage qui peut être– Non ou peu formalisé, la langue naturelle
● Le français, un dessin ...
– Formel et bien défini, non ambigu● 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 )
12/11/07 IDM 30
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
12/11/07 IDM 31
Méta-modèles (2)
● Cette relation de conformité est essentielle– Base de l'IDM 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
12/11/07 IDM 32
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
● Système abstrait
– Méta-modèle● 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
12/11/07 IDM 33
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 Є
12/11/07 IDM 34
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
12/11/07 IDM 35
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
12/11/07 IDM 36
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
12/11/07 IDM 37
Transformations : illustration
12/11/07 IDM 38
Transformation selon l'OMG
12/11/07 IDM 39
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
12/11/07 IDM 40
Espaces technologiques
[Mireille Blay-Fornarino]
12/11/07 IDM 41
Architecture en 4 couches
12/11/07 IDM 42
Architecture en 4 couches de l'OMG
12/11/07 IDM 43
Architecture en 4 couches de l'OMG
12/11/07 IDM 44
Hiérarchie en 4 niveaux
● Existe en dehors de la vision OMG pour les autres espaces technologiques
12/11/07 IDM 45
Comparaison des espaces technologiques
12/11/07 IDM 46
Outils de l'IDM
● 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.
12/11/07 IDM 47
Outils IDM open source
http://planetmde.org/
12/11/07 IDM 48
suite...
12/11/07 IDM 49
Outils commerciaux
12/11/07 IDM 50
Outils IDM
● 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
12/11/07 IDM 51
DSL et DSM
12/11/07 IDM 52
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 higher-level abstractions than General-Purpose Modeling languages, meaning that they require less effort and fewer low-level details to specify a given system.
12/11/07 IDM 53
DSL et DSM
● Vision Microsoft
12/11/07 IDM 54
DSL et DSM
● Vision GMF (Eclipse)
12/11/07 IDM 55
Bilan IDM
● Le MDE est une nouvelle approche pour concevoir des applications– En s'abstrayant des technologies de mise en oeuvre
● Pour pouvoir s'y adapter plus facilement sans en être dépendant
– En plaçant les modèles et surtout les méta-modèles au centre du processus de développement dans un but productif
● 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 ...
12/11/07 IDM 56
Liens web IDM– PlanetMDE
● http://planetmde.org/
– Projets Eclipse● http://www.eclipse.org/projects/
– OMG● http://www.omg.org/
– MDA● http://www.omg.org/mda/
– Wikipédia● http://fr.wikipedia.org/wiki/Ingénierie_dirigée_par_les_modèles
– AS MDA● http://idm.imag.fr/as/
12/11/07 IDM 57
Ouvrages IDM