Cours IDM
Master SID Ingénierie des modèles
Introduction
IdM Introduction à l’IdM et
Définitions
Evolution des
technologies
défénitions générales
MDA vers MDE
2019 - 2020
Cours IDM
Plan du chapitre
Master SID
Introduction
IdM 1 Introduction
Définitions
Evolution des
technologies
2 Pourquoi l’IDM ? Pourquoi faire ?
MDA vers MDE
3 Modèle, Métamodèle et Transformation
4 Evolution des technologies
5 MDA vers MDE
Cours IDM
Le génie logiciel
Master SID
Introduction
Le cycle de vie du développement du logiciel
IdM • Analyse des besoins, spécification, conception, implantation,
Définitions vérification, maintenance.
Evolution des
technologies
• Comment les ordonner : Cascade ? spiral ? itératif ? en V ?
MDA vers MDE • Commencer par une idée, et arriver à un code.
Cours IDM
Le génie logiciel
Master SID
Introduction
IdM
Définitions
Evolution des Industrie du logiciel
technologies
MDA vers MDE
• Programmer un outils de gestion de magasin.
• Implémenter un système d’exploitation.
• Concevoir une plateforme de simulation.
Cours IDM
L’ingénierie dirigée par les modèles
Master SID
Introduction Model Driven Engineering
IdM
• Une discipline qui place le modèle au centre du processus
Définitions
d’ingénierie du logiciel (2000’).
Evolution des
technologies • Le code source est le résultat d’une transformation de modèles.
MDA vers MDE
• Ancêtres : MIC (Model Integrated Computing 90’), MDA (Model
Driven Architecture), Software Factories.
Recommandée par l’OMG (Object Management Group,
1989)
• Un consortium regroupant industriels et chercheurs visant la
standardisation des solutions d’interopérabilité des SI.
Cours IDM
L’ingénierie dirigée par les modèles
Master SID
Introduction
Model Driven Engineering
IdM
L’interopérabilité est la capacité que possède un produit ou un système,
Définitions
dont les interfaces sont intégralement connues, à fonctionner avec
Evolution des
technologies d’autres produits ou systèmes existants ou futurs et ce sans restriction
MDA vers MDE d’accès ou de mise en œuvre.
Model Driven Engineering
• Une nouvelle approche pour concevoir des applications.
• Elle place le modèle et les métamodèles au centre du processus de
développement.
• Automatiser le processus de développement.
Cours IDM
Pourquoi l’IDM ? Pourquoi faire ?
Master SID
Introduction
IdM
Définitions
Pourquoi l’IDM ? Pourquoi faire ?
Evolution des
technologies
• Évolution permanente des technologies logicielles.
MDA vers MDE
• Faire communiquer et interagir des éléments distants.
• Normaliser un standard qui sera utilisé par tous.
• Systèmes distribués : Middleware (Intergiciel).
Cours IDM
Pourquoi l’IDM ? Pourquoi faire ?
Master SID
Introduction
IdM
Définitions Pourquoi l’IDM ? Pourquoi faire ?
Evolution des
technologies • Les algorithmes de distribution et de calcul sont indépendants de la
MDA vers MDE technologie et de la mise en oeuvre.
• Nécessité de découpler la logique métier et la mise en oeuvre
technologique.
• Séparation des préoccupations.
Cours IDM
Pourquoi l’IDM ? Pourquoi faire ?
Master SID
Introduction
IdM
Définitions
Evolution des Pourquoi l’IDM ? Pourquoi faire ?
technologies
• Besoin de modéliser et spécifier.
MDA vers MDE
• A un niveau abstrait la partie métier.
• La plateforme de mise en œuvre.
• Projeter ce niveau abstrait à la plateforme.
Cours IDM
L’ingénierie dirigée par les modèles
Master SID
Introduction Méta-métamodèle
IdM
Définitions
est conforme à
Evolution des
technologies
MDA vers MDE
Métamodèle
est conforme à
représente
Modèle Système
Cours IDM
L’ingénierie dirigée par les modèles
Master SID
Introduction
IdM
Modèle
Définitions
• Une description (existant), ou spécification (à construire) partielle
Evolution des
technologies d’un système.
MDA vers MDE
• Une abstraction d’un système réel qu’il représente (dans un
contexte, et pour un but).
• Ensemble restreint d’informations (nécessaire à l’exploitation du
système).
• Une vue subjective et simplifiée d’un système.
Cours IDM
L’ingénierie dirigée par les modèles
Master SID
Introduction
IdM
Définitions
Pourquoi ?
Evolution des
technologies • Faciliter la compréhension d’un système donné.
MDA vers MDE
• Simuler le fonctionnement d’un système.
Exemple
• Modèle économique, modèle physique, modèle biologique.
Cours IDM
L’ingénierie dirigée par les modèles
Master SID
Introduction
IdM
Définitions
Evolution des Modèle
technologies
• La description (ou spécification) peut être :
MDA vers MDE
• Non ou peu formelle : Langage naturelle ou dessin ?
• Formelle : Dans un langage bien défini sans ambiguïté : Métamodèle
(syntaxe, grammaire et sémantique).
Cours IDM
L’ingénierie dirigée par les modèles
Master SID
Métamodèle
Introduction
• Éviter la définition : Un modèle de modèle.
IdM
• Le modèle n’est pas une instance du métamodèle.
Définitions
Evolution des • Un descripteur de modèles (Conformité !).
technologies
MDA vers MDE Exemple d’un système : Algérie.
• Modèle : Liste des wilayas
zones incluant listes des communes.
• Métamodèle : Wilaya
Zone et Commune
Paradigme ancien
• Un texte est conforme à l’orthographe de sa langue.
• Une carte est conforme à sa légende.
• Une programme est conforme à son métamodèle (Langage évolué).
Cours IDM
L’ingénierie dirigée par les modèles
Master SID
Métamodèle
Introduction
IdM
• La grammaire est le métamodèle pour les phrases du langage.
Définitions • La définition de la chaise dans le dictionnaire est un métamodèle.
Evolution des
technologies
• Une photo de la chaise est un modèle.
MDA vers MDE • La chaise en elle même est un système.
One and Three
Chairs
(Joseph Kosuth, 1965)
Cours IDM
L’ingénierie dirigée par les modèles
Master SID
Introduction
Transformations
IdM
• Opération générale de manipulation de modèles
Définitions
Evolution des
• Prend un ou plusieurs modèles en entrée et fournit un ou plusieurs
technologies
modèles en sortie.
MDA vers MDE
Transformation endogènes
• Dans le même espace technologique.
• Comme transformer un modèle UML en un autre modèle UML.
Transformations exogènes
• Entre deux espaces technologiques différents.
• Comme transformer un modèle XML en un schéma BDD.
Cours IDM
Méta-métamodèle
Master SID
Méta-
Introduction
IdM
Définitions
Evolution des
métamodèle
technologies
MDA vers MDE Méta-modèle
Modèle
Système
Cours IDM
Technologies logicielles
Master SID
Introduction
IdM
Définitions
Évolution permanente
Evolution des • Programmation d’une fonction pour calculer les additions ?
technologies
MDA vers MDE
• Systèmes distribués et plateformes différentes.
• C Sockets TCP/UDP RPC CORBA RMI EJB Web Services
Le calcul distribué
• Concurrent Execution Vs. Independent Failure !
Cours IDM
Évolution des technologies logicielles
Master SID
Introduction
IdM
CORBA
Définitions
• Common Request Broker Architecture (OMG)
Evolution des
technologies • Indépendant des langages de programmation.
MDA vers MDE
• Indépendant des systèmes d’exploitation.
• Pour interopérabilité de toutes applications de toutes technologies.
La suite
• Arrivé de Java RMI (Java Remote Method Invocation)
• Web services . .
Cours IDM
Model Driven Architecture
Master SID
Introduction MDA
IdM • Il est l’origine de l’ingénierie des modèles (2000).
Définitions • Motivation : Évolution constante des technologies.
Evolution des
technologies Pourquoi le MDA
MDA vers MDE • Abstraire les parties métier de la mise en oeuvre.
• Exploiter les standards OMG (UML, MOF, OCL, CWM, QVT)
Deux niveaux de modèles
• Platform Independant Model (PIM) : Spécification de la partie
métier de l’application.
• Platform Specific Model (PSM) : Spécification après projection sur
une plateforme technologique.
Cours IDM
Model Driven Architecture
Master SID
Autres modèles
Introduction
• Computation Independant Model (CIM) : Spécification du système
IdM
Définitions
de point de vue extérieur de l’utilisateur.
Evolution des • Platform Deployment Model (PDM) : Modèle d’une plateforme de
technologies
déploiement.
MDA vers MDE
Projection vers
une technologie Génération de code
Platform Indepedant Platforme Specific
Code
Model (PIM) Model (PSM)
Rétro-Ingénierie Rétro-Ingénierie
Raffinement Raffinement
Cours IDM
Computation Independant Model
Master SID
Introduction
• Décrit les flux et les actions sur le système ;
IdM
• Modèle d’analyse de base du métier ou du domaine d’application ;
Définitions
Evolution des • Indépendant de tout système informatique ;
technologies
• Décrit les concepts de l’activité métier, le savoir faire, les processus,
MDA vers MDE
la terminologie et les règles de gestion (de haut niveau) ;
• Décrit la situation dans laquelle le système est utilisé ;
• Est modifié uniquement si les connaissances ou les besoins métier
changent (très longue durée de vie) ;
• Les exigences modélisées dans le CIM seront prise en compte dans
les constructions des PIM et des PSM.
Cours IDM
Plateform Independant Model
Master SID
Introduction
• Décrit les traitements orientés métier, il est un modèle de
IdM
conception ;
Définitions
Evolution des
• Décrit le système indépendamment de toute plate-forme technique
technologies
et de toute technologie utilisée pour déployer l’application ;
MDA vers MDE
• Représente la logique métier spécifique au système :
Fonctionnement des entités et des services ;
• Est pérenne dans le temps ;
• Consiste en des diagrammes de classes (OCL) ;
• Les différents niveaux de PIM précisent les choix de persistance, de
gestion des transactions et de sécurité.
Cours IDM
Plateform Deployment Model
Master SID
Introduction
IdM
Définitions
• Décrit une architecture technique (Il peut y avoir plusieurs par
Evolution des projet) ;
technologies
• Contient des informations pour la transformation des modèles vers
MDA vers MDE
une plateforme ;
• Est spécifique à une plateforme ;
• Est un modèle de transformation pour permettre le passage du
PIM vers le PSM ;
Cours IDM
Plateform Specific Model
Master SID
Introduction
• Les détails techniques liés à l’implantation pour une plate-forme : Il
IdM en est dépendant ;
Définitions • Sert à la génération du code exécutable pour les plates-formes
Evolution des techniques particulières ;
technologies
MDA vers MDE
• Décrit comment le système utilisera la plate-forme ;
• Le premier niveau, issu de la transformation d’un PIM par
l’adaptation des modèles UML aux spécificités la plate-forme.
• Les autres niveaux PSM sont obtenus par transformations
successives en prenant en compte le langage (Java, CPP, PHP...) et
les choix de conception.
• Le dernier niveau, ou PSM d’implantation, décrit, en autres, le code
du programme, les schémas des tables, les bibliothèques utilisées et
les descripteurs de déploiement.
Cours IDM
Model Driven Architecture
Master SID
Introduction
Logique Technologie /
IdM
métier (PIM) Plateforme
Cycle de développement de logiciel
Définitions (PDM)
en MDA
Evolution des
technologies
• Cycle en Y.
MDA vers MDE
• Raffinement continu : Plus compliqué
PSM
en pratique.. Cycle en épi.
• La mise en oeuvre du MDA :
• Utilisation des standards de l’OMG :
UML, OCL, CWM, MOF, QVT Code de
l’application
Cours IDM
MDE - Microsoft
Master SID
Introduction
IdM
Spécification
CIM
Standards basés MDA
des besoins
Définitions
Evolution des Analyset et Conception
technologies
Standars PIM Standards pour
MDA vers MDE PDM PIM Applications
Mappage
Standardisé pour
Modification pour chaque plate-forme les PSMs
Notation PSM
PSM PSM PSM ... Standards pour
plate-formes
Mappage à l’implémentation Mappage standardisée
pour les codes de
l’implémentation
Implémentation Implémentation Implémentation Implémentation
Cours IDM
Model Driven Engineering
Master SID
Introduction
IdM
Les limites du MDA
Définitions
Evolution des
• OMG uniquement ?
technologies
• Ingénierie Dirigée par les Modèles (IDM) ou Model Driven
MDA vers MDE
Engineering (MDE).
• Appliquer et généraliser les même principes à tout espace
technologique.
• Un espace technologique est l’ensemble des techniques et principes de
modélisation et d’outils associés à un méta-métamodèle.
Cours IDM
Les principes du MDE
Master SID
• Capitalisation
Introduction
• Réutilisation de modèles ou de parties de modèles : Nous parlons de
IdM
logique métier, règles de raffinement, projection..
Définitions
• Abstraction
Evolution des
technologies • Modéliser est abstraire : Permet l’adaptation d’une logique métier à
MDA vers MDE un contexte, et permet d’évoluer vers des technologies nouvelles.
• Modélisation
• La modélisation se doit être productive : Générer le code source pour
une technologie de mise en oeuvre donnée.
• Séparation des préoccupations
• Séparer le métier (La logique) de la plateforme (La mise en oeuvre).
• Autres préoccupations : Sécurité, Interfaces..
• Ces préoccupations sont modélisés puis intégrés par des
transformations de modèles.
Cours IDM
Les principes du MDE
Master SID
Introduction
IdM
Définitions Pour avoir cette version productive
Evolution des
technologies
• Les modèles doivent être bien définis (Conformes aux
MDA vers MDE métamodèles).
• Ces définitions doivent permettre la manipulation par les différents
outils :
• Traitement de deux métamodèles différents.
• Transformations, projection et génération de code.
Cours IDM
Bases de l’MDA
Master SID
Introduction
IdM
Définitions
Evolution des
technologies
MDA vers MDE
Source [N. Rousse, IDM, modelia.org, 2007]
Cours IDM
Les approches MDE
Master SID
Introduction
IdM
Définitions
Evolution des
technologies
MDA vers MDE
Source [N. Rousse, IDM, modelia.org, 2007]
Cours IDM
MDE - IBM
Master SID
Introduction
IdM
Définitions
Evolution des
technologies
MDA vers MDE
Source [N. Rousse, IDM, modelia.org, 2007]
Cours IDM
MDE - Microsoft
Master SID
Introduction
IdM
Définitions
Evolution des
technologies
MDA vers MDE
Source [N. Rousse, IDM, modelia.org, 2007]