MDE Pragmatique Benoît Combemale Université de Rennes 1 Équipe-Projet Triskell (IRISA & INRIA) http://perso.univ-rennes1.fr/benoit.combemale/ 2010 2011 Support disponible à l adresse (teaching part) : http://perso.univ-rennes1.fr/benoit.combemale/ Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 1 / 44
Contexte Principes généraux «Pour un observateur A, M est un modèle de l objet O, si M aide A à répondre aux questions qu il se pose sur O» [Minsky1968]. Extrait de [Favre2006] : Relations entre système, modèle, métamodèle et langage Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 2 / 44
Contexte Principes généraux «Pour un observateur A, M est un modèle de l objet O, si M aide A à répondre aux questions qu il se pose sur O» [Minsky1968]. Extrait de [Favre2006] : Relations entre système, modèle, métamodèle et langage Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 2 / 44
Contexte Principes généraux «Pour un observateur A, M est un modèle de l objet O, si M aide A à répondre aux questions qu il se pose sur O» [Minsky1968]. Extrait de [Favre2006] : Relations entre système, modèle, métamodèle et langage Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 2 / 44
Contexte Principes généraux Un exemple de «cadre conceptuel» : la pyramide de l OMG Un métamétamodèle décrit les éléments de modélisation nécessaires à la définition des langages de modélisation. Un métamodèle décrit les éléments de modélisation nécessaires à la définition des modèles. Un modèle est une abstraction d un système. metamodel (UML, SPEM...) model (UML models...) "real" world metameta model (MOF) M3 M2 M1 M0 Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 3 / 44
Contexte Problématiques clés Métamodélisation Consiste à définir le modèle d un langage de modélisation le langage joue le rôle de système à modéliser! L = {S,Sem} L m = {AS,CS,M ac,sd,m as } Concrete Syntax (CS) Mac Abstract Syntax (AS) Semantics Domain (SD) Mas Transformation de modèle MMa = MMb : transformation endogène MMa MMb : transformation exogène p.ex. UML p.ex. MOF MMa <<conformto>> Ma MMM <<conformto>> MMt <<conformto>> Mt Kermeta, ATL, AGG... MMb <<conformto>> Mb p.ex. UML4J2EE Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 4 / 44
Contexte Une autre vision (grossière) du MDE! en un slide... MDE (Model Driven Engineering) = DSL (Domain Specific Language) : séparation des préoccupations au travers de langages offrant des constructions capitalisant l expérience d un domaine particulier (p.-ex., le MDA qui préconise une séparation du métier et de la plate-forme) + Generative approach : s appuie sur le langage de manière à raisonner sur l ensemble des modèles (mis en oeuvre généralement par des transformations) Code FIGURE: Exemple du MDA Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 5 / 44
Contexte Une autre vision (grossière) du MDE! en un slide... MDE (Model Driven Engineering) = DSL (Domain Specific Language) : séparation des préoccupations au travers de langages offrant des constructions capitalisant l expérience d un domaine particulier (p.-ex., le MDA qui préconise une séparation du métier et de la plate-forme) + Generative approach : s appuie sur le langage de manière à raisonner sur l ensemble des modèles (mis en oeuvre généralement par des transformations) PIM Model Transformation PSM Code PDM FIGURE: Exemple du MDA QoS Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 5 / 44
Contexte Une autre vision (grossière) du MDE! en un slide... MDE (Model Driven Engineering) = DSL (Domain Specific Language) : séparation des préoccupations au travers de langages offrant des constructions capitalisant l expérience d un domaine particulier (p.-ex., le MDA qui préconise une séparation du métier et de la plate-forme) + Generative approach : s appuie sur le langage de manière à raisonner sur l ensemble des modèles (mis en oeuvre généralement par des transformations) DSL1 DSL2...... DSLn <<conformsto>> PIM Model Transformation PSM Code <<conformsto>> PDM FIGURE: Exemple du MDA QoS Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 5 / 44
Contexte Une autre vision (grossière) du MDE! en un slide... MDE (Model Driven Engineering) = DSL (Domain Specific Language) : séparation des préoccupations au travers de langages offrant des constructions capitalisant l expérience d un domaine particulier (p.-ex., le MDA qui préconise une séparation du métier et de la plate-forme) + Generative approach : s appuie sur le langage de manière à raisonner sur l ensemble des modèles (mis en oeuvre généralement par des transformations) <<basedon>> DSL1 DSL2...... DSLn <<conformsto>> PIM Model Transformation PSM Code <<conformsto>> PDM FIGURE: Exemple du MDA QoS Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 5 / 44
Contexte Une autre vision (grossière) du MDE! en un slide... MDE (Model Driven Engineering) = DSL (Domain Specific Language) : séparation des préoccupations au travers de langages offrant des constructions capitalisant l expérience d un domaine particulier (p.-ex., le MDA qui préconise une séparation du métier et de la plate-forme) + Generative approach : s appuie sur le langage de manière à raisonner sur l ensemble des modèles (mis en oeuvre généralement par des transformations) <<basedon>> DSL1 DSL2...... DSLn <<conformsto>> PIM Model Transformation PSM Code <<conformsto>> PDM FIGURE: Exemple du MDA QoS La vie n est pas si simple! langages pivots et chaîne de transformations, composition de modèle,... Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 5 / 44
Contexte L informaticien 2.0 Expert Métier Capitalise son expérience au sein de langages métiers qu il utilise pour la définition de système complexe Expert Plate-forme Fournit des approches génératives prenant en compte les spécificités d une plate-forme d exécution particulière Expert Langage Fournit des méta- approches génératives facilitant l outillage d un nouveau DSL Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 6 / 44
Contexte Problème abordé dans ce cours... Comment mettre en oeuvre une approche MDE dans des projets industriels? quel processus pour les différentes casquettes de l Informaticien 2.0? quel outils pour quelle tâche? Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 7 / 44
Contexte Plan 1 Contexte 2 De la modélisation passive à la modélisation active...! 3 L aspect plate-forme : exemple du projet Medany par Anyware 4 L aspect métier : exemple de l avionique avec Airbus 5 L aspect langage : exemple du projet Topcased 6 Conclusion Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 8 / 44
De la modélisation passive à la modélisation active...! Plan 1 Contexte 2 De la modélisation passive à la modélisation active...! 3 L aspect plate-forme : exemple du projet Medany par Anyware 4 L aspect métier : exemple de l avionique avec Airbus 5 L aspect langage : exemple du projet Topcased 6 Conclusion Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 9 / 44
De la modélisation passive à la modélisation active...! Etapes d un processus MDE Exemples d étapes dans un processus MDE (1/2) Définition du ou des domaines métiers (métamodélisation) : métamodèle MOF (Ecore,...), contraintes OCL (EMFTools, Kermeta, Topcased...). Définition d un (ou plusieurs) éditeur(s) syntaxique(s) : éditeur graphique (GMF, Topcased...), ET/OU éditeur textuel (EMF Text, xtext...). Définition d un simulateur (métamodélisation exécutable) définir la sémantique comportementale avec un langage d action (Kermeta) de manière à pouvoir exécuter les modèles avec un interpréteur (e.g., pour le debug) Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 10 / 44
De la modélisation passive à la modélisation active...! Etapes d un processus MDE Exemples d étapes dans un processus MDE (2/2) Définition d un (ou plusieurs) outils de refactoring définir des transformations endogènes de modèle (avec Kermeta, ATL...) de manière à automatiquement raffiner les modèles, injecter des patrons de conception,... Définition d un (ou plusieurs) générateur(s) de documentation définir des transformations exogènes de modèle à l aide d un langage de transformation (avec Kermeta, ATL...) ou un langage de template (OaW, Acceleo, KET...) de manière à générer automatiquement la documentation ("à la" javadoc). Définition d un (ou plusieurs) compilateur(s) définir des transformations exogènes de modèle à l aide d un langage de transformation (avec Kermeta, ATL...) ou un langage de template (OaW, Acceleo, KET...) de manière à générer pour un modèle le code correspondant dans un autre langage. Mais aussi : model-based testing, pont vers des outils de vérification formelle,... Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 11 / 44
De la modélisation passive à la modélisation active...! Les outils du projet Eclipse Modeling Les outils du projet Eclipse Modeling Créé en Mars 2006 Vise à coordonner les différents travaux de la Fondation Eclipse autour de la modélisation http://www.eclipse.org/modeling/ http://www.eclipse.org/projects/project_summary.php? projectid=modeling EMF EMFT GMP Amalgam TMF GMT PMF MDT M2T M2M Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 12 / 44
De la modélisation passive à la modélisation active...! Les outils du projet Eclipse Modeling EMF : Un canevas logiciel EMF est un (E)canevas logiciel... Dirigé par les modèles, mais implémenté dans un langage Processus de réification IDM Java : Les métamodèles sont représentées par des EClass Les modèles sont représentés par des EObject Génération du code des métamodèles via un... modèle! Les outils de génération ne travaillent pas sur le.ecore Eclipse définit un fichier.genmodel en parallèle : New/ Other/ Eclipse Modeling Framework/ EMF Model On peut customiser le générateur de code! L IDE se charge du maintien de la cohérence (ou pas) Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 13 / 44
De la modélisation passive à la modélisation active...! Les outils du projet Eclipse Modeling EMF : Un canevas logiciel Action disponibles sur le métamodèle : 1 Generate Model Code : Classes Java reposant sur EMF 2 Generate Edit Code : Plugin supportant l édition 3 Generate Editor Code : Plugin d édition arborescente 4 Generate Test Code : Plugin de test unitaire Actions disponibles à partir du.genmodel, et dans un EMF Project. Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 14 / 44
L aspect plate-forme : exemple du projet Medany par Anyware Plan 1 Contexte 2 De la modélisation passive à la modélisation active...! 3 L aspect plate-forme : exemple du projet Medany par Anyware 4 L aspect métier : exemple de l avionique avec Airbus 5 L aspect langage : exemple du projet Topcased 6 Conclusion Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 15 / 44
L aspect plate-forme : exemple du projet Medany par Anyware Le projet Medany : Problématiques Développer des applications pour terminaux mobiles Portables sur différents terminaux Connectables à des appareils externes Evolutives Synchronisables avec un serveur Notification par mail ou sms Gestion du mode connecté/deconnecte Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 16 / 44
L aspect plate-forme : exemple du projet Medany par Anyware Le projet Medany : Principes Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 17 / 44
L aspect plate-forme : exemple du projet Medany par Anyware Le projet Medany : Approche MDA Plusieurs applications nécessaires : ercp sur le terminal mobile synchronisation (sur le serveur) consultation (sur le serveur) administration (sur le serveur) Centralisation des informations dans un modèle Génération des applications en utilisant un noyau commun Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 18 / 44
L aspect plate-forme : exemple du projet Medany par Anyware Le projet Medany : Approche MDA Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 19 / 44
L aspect métier : exemple de l avionique avec Airbus Plan 1 Contexte 2 De la modélisation passive à la modélisation active...! 3 L aspect plate-forme : exemple du projet Medany par Anyware 4 L aspect métier : exemple de l avionique avec Airbus 5 L aspect langage : exemple du projet Topcased 6 Conclusion Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 20 / 44
L aspect métier : exemple de l avionique avec Airbus Produits Airbus Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 21 / 44
L aspect métier : exemple de l avionique avec Airbus Ventilation des activités Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 22 / 44
L aspect métier : exemple de l avionique avec Airbus Processus de développement avionique Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 23 / 44
L aspect métier : exemple de l avionique avec Airbus Spécifications client formelles Certaines spécifications clients sont écrites dans un formalisme permettant le codage automatique Les formalismes de ce type utilisés par Airbus sont par exemple SAO, LDS, SCADE. Ces spécifications sont suffisamment précises pour permettre une transcription automatique dans le langage utilisé sur le calculateur. Politique Airbus (EYYW) L emploi de ces formalismes permet d importants gains de temps de cycle de de mise au point des systèmes (fourniture d un logiciel dans la journée). EYYW développe pour cela des générateurs de code QUALIFIÉS qui permettent avec le minimum d interventions manuelles d intégrer dans le calculateur un code logiciel rigoureusement conforme à ce qui est décrit par la spécification. EYYW développe pour cela des générateurs de code QUALIFIÉS qui permettent avec le minimum d interventions manuelles d intégrer dans le calculateur un code logiciel rigoureusement conforme à ce qui est décrit par la spécification. Cette conformité s appuie sur la qualification du générateur qui permet de plus de se passer de la phase de test unitaire. Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 24 / 44
L aspect métier : exemple de l avionique avec Airbus Générateurs de code qualifiés Pour être qualifié, le générateur de code doit être développé de manière équivalente au code manuel. On retrouve donc les mêmes phase de développement Spécification Conception Intégration Vérification (revues, tests unitaires, tests d intégration) Et les mêmes contraintes réglementaires. Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 25 / 44
L aspect métier : exemple de l avionique avec Airbus Quelques filières de développement Modèles fonctionnels : SCADE, Modèles de type événementiels : SDL Specification & Design Language (profil UML/SDL TOPCASED), Découpage fonctionnel : SAM Structured Analysis (TOPCASED SAM, Sildex) Architecture Temps Réel : Sildex, AADL (Topcased), UML + MARTE (Topcased/Papyrus) Architecture logicielle statique : HOOD et maintenant... UML Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 26 / 44
L aspect métier : exemple de l avionique avec Airbus Safe MDE concerns Main purpose : Safety critical systems Main approach : formal specification and verification Problems : expressiveness, decidability, completeness, consistency Proposals : domain specific (modeling) languages Needs : easy to access for end users with a simple formal embedding with automatic verification tools with usefull validation and verification results that are accepted by certification authorities methods and tools to ease their development algebraic and logic theoretical fondations proof of transformation and verification correctness links with certification/qualification Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 27 / 44
L aspect métier : exemple de l avionique avec Airbus Les modèles chez Airbus La modélisation fait partie intégrante des processus de développement systèmes & logiciels critiques Des points durs : travail en équipe, vérification, introduction de nouvelles méthodes,... Mais de nombreux avantages : aide au développement, excellent outil de communication, maintenabilité accrue, gains de productivité directs & indirects (automatisation, qualité globale),... Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 28 / 44
L aspect langage : exemple du projet Topcased Plan 1 Contexte 2 De la modélisation passive à la modélisation active...! 3 L aspect plate-forme : exemple du projet Medany par Anyware 4 L aspect métier : exemple de l avionique avec Airbus 5 L aspect langage : exemple du projet Topcased 6 Conclusion Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 29 / 44
L aspect langage : exemple du projet Topcased Problématiques Problématique Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 30 / 44
L aspect langage : exemple du projet Topcased Problématiques Problématique Modèle <<représente>> Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 30 / 44
L aspect langage : exemple du projet Topcased Problématiques Problématique Langage Modèle <<représente>> Concepteur Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 30 / 44
L aspect langage : exemple du projet Topcased Problématiques Problématique vérificateurs générateurs simulateurs éditeur Langage Modèle <<représente>> Concepteur Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 30 / 44
L aspect langage : exemple du projet Topcased Problématiques Problématique vérificateurs générateurs simulateurs éditeur Langage Modèle <<représente>> Concepteur <<conformea>> <<représente>> Méta Modèle Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 30 / 44
L aspect langage : exemple du projet Topcased Problématiques Problématique DSML = Domain Specific Modeling Language DSML Modèle <<représente>> Concepteur vérificateurs générateurs simulateurs éditeur DSML Modèle <<représente>> Concepteur DSML Modèle <<représente>> Concepteur <<représente>> Modèle DSML Concepteur Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 30 / 44
L aspect langage : exemple du projet Topcased Problématiques Problématique vérificateurs générateurs simulateurs éditeur Concepteur DSML Modèle <<représente>> vérificateurs générateurs simulateurs éditeur DSML Modèle <<représente>> Concepteur vérificateurs générateurs simulateurs éditeur DSML Modèle <<représente>> Concepteur vérificateurs générateurs <<représente>> éditeur simulateurs Modèle DSML Concepteur Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 30 / 44
L aspect langage : exemple du projet Topcased Problématiques Problématique vérificateurs générateurs simulateurs éditeur Concepteur DSML Modèle <<représente>> vérificateurs générateurs simulateurs éditeur DSML Modèle <<représente>> Concepteur vérificateurs générateurs simulateurs éditeur <<représente>> DSML Modèle Concepteur vérificateurs générateurs simulateurs éditeur DSML Modèle <<représente>> Concepteur Problématique : Comment faciliter le développement des outils de chaque DSML? Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 30 / 44
L aspect langage : exemple du projet Topcased Problématiques Exemple de GMF Graphical Modeling Framework Framework facilitant la création d éditeurs graphiques de modèles Cf. http://www.eclipse.org/modeling/gmf/ Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 31 / 44
L aspect langage : exemple du projet Topcased Problématiques Autre contexte industriel Le projet TOPCASED Atelier open source couvrant les différentes phases de développement et intégrant les contraintes de certification Différents langages de modélisation (UML, AADL, SysML, SAM...) Éditeurs graphiques Outils de traçabilité, de génération, de transformation et de V & V Méthode : méta-approches génératives! Site Internet : http://www.topcased.org & Serveur de développement : http://gforge.enseeiht.fr/ Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 32 / 44
L aspect langage : exemple du projet Topcased Problématiques Définition d un DSML avec l atelier TOPCASED DSML definition Abstract Syntax Concrete Syntax Semantics Domain Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 33 / 44
L aspect langage : exemple du projet Topcased Problématiques Définition d un DSML avec l atelier TOPCASED Ecore Editor Process name: String 0..* guidances workdefinitions 0..* WorkDefinition name: String 0..* guidances Guidance content: String linktosuccessor 1 predecessor 0..* successor 0..* 1 linktopredecessor SimplePDL metamodel worksequences 0..* WorkSequence kind: WorkSequenceKind <<enumeration>> WorkSequenceKind finishtostart finishtofinish starttostart starttofinish DSML definition Abstract Syntax Concrete Syntax Semantics Domain Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 33 / 44
L aspect langage : exemple du projet Topcased Problématiques Définition d un DSML avec l atelier TOPCASED Ecore Editor Process name: String Editor Generator 0..* guidances workdefinitions 0..* WorkDefinition name: String 0..* guidances Guidance content: String linktosuccessor 1 predecessor 0..* successor 0..* 1 linktopredecessor SimplePDL metamodel worksequences 0..* WorkSequence kind: WorkSequenceKind <<enumeration>> WorkSequenceKind finishtostart finishtofinish starttostart starttofinish DSML definition Abstract Syntax Concrete Syntax Semantics Domain SimplePDL Editor Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 33 / 44
L aspect langage : exemple du projet Topcased Problématiques Définition d un DSML avec l atelier TOPCASED Ecore Editor Process name: String Editor Generator 0..* guidances workdefinitions 0..* WorkDefinition name: String 0..* guidances Guidance content: String linktosuccessor 1 predecessor 0..* successor 0..* 1 linktopredecessor SimplePDL metamodel worksequences 0..* WorkSequence kind: WorkSequenceKind <<enumeration>> WorkSequenceKind finishtostart finishtofinish starttostart starttofinish DSML definition Abstract Syntax <<conformsto>> Concrete Syntax Semantics Domain SimplePDL Editor Conception finishtofinish starttostart finishtostart starttostart RédactionDoc Développement RédactionTest finishtofinish SimplePDL model Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 33 / 44
L aspect langage : exemple du projet Topcased Problématiques Sémantique comportementale : interpréteur Vs. compilateur MonDSML MonDSML transformation exogène DomaineFormel Metamodèle transformation endogène Règles Metamodèle Structure de données Règles Sémantique opérationnelle + expression naturelle de la sémantique, nécessite de définir les outils (p. ex. de V&V). Sémantique par traduction expression d équivalences sémantiques, + permet de réutiliser les outils du domaine cible. Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 34 / 44
L aspect langage : exemple du projet Topcased Exemple de (méta-)approche générative pour la simulation de modèle (Méta-)Approche générative Objectifs Démarche outillée de métamodélisation pour la définition de DSML «exécutable» et des outils de simulation. maîtriser l activité de métamodélisation, offrir des outils génériques ou des approches génératives facilitant la définition de simulateur/animateur dédié, diminuer les coûts. Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 35 / 44
L aspect langage : exemple du projet Topcased Exemple de (méta-)approche générative pour la simulation de modèle Et dans le temps, ça évolue? Démarche outillée pour la définition d un DSML exécutable Problématiques : Exprimer et structurer les différentes préoccupations de la syntaxe abstraite d un DSML exécutable. Expliciter la sémantique comportementale de référence. Quel domaine? Quel comportement? Quels états possible? Hummm..., finalement, c'est plein de préoccupations la métamodélisation!! Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 36 / 44
L aspect langage : exemple du projet Topcased Exemple de (méta-)approche générative pour la simulation de modèle Architecture d un DSML exécutable Définition d un langage de modélisation «exécutable» L m =< AS,CS,M ac,sd,m as > où AS = {DDMM, SDMM, EDMM} {TM3} TM3 Trace Management MetaModel <<import>> EDMM Events Definition MetaModel <<merge>> SDMM States Definition MetaModel <<merge>> <<merge>> DDMM Domain Definition MetaModel Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 37 / 44
L aspect langage : exemple du projet Topcased Exemple de (méta-)approche générative pour la simulation de modèle Objectifs et approches pour la simulation de modèle TM3 Trace Management MetaModel <<import>> EDMM Events Definition MetaModel <<merge>> SDMM States Definition MetaModel <<merge>> <<merge>> DDMM Domain Definition MetaModel Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 38 / 44
L aspect langage : exemple du projet Topcased Exemple de (méta-)approche générative pour la simulation de modèle Objectifs et approches pour la simulation de modèle TM3 Trace Management MetaModel <<import>> EDMM SDMM Semantics reactiononev1()... reactiononevn() Events Definition MetaModel <<merge>> <<merge>> DDMM States Definition MetaModel <<merge>> Domain Definition MetaModel Semantics1 Semantics2 reactiononev1()... reactiononevn() reactiononev1()... reactiononevn() Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 38 / 44
L aspect langage : exemple du projet Topcased Exemple de (méta-)approche générative pour la simulation de modèle Objectifs et approches pour la simulation de modèle TM3 Trace Management MetaModel <<import>> EDMM SDMM Semantics reactiononev1()... reactiononevn() Events Definition MetaModel Action Languages <<merge>> <<merge>> DDMM States Definition MetaModel <<merge>> Domain Definition MetaModel Semantics1 Semantics2 reactiononev1()... reactiononevn() reactiononev1()... reactiononevn() Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 38 / 44
L aspect langage : exemple du projet Topcased Exemple de (méta-)approche générative pour la simulation de modèle Objectifs et approches pour la simulation de modèle TM3 Trace Management MetaModel <<import>> EDMM SDMM Semantics reactiononev1()... reactiononevn() Events Definition MetaModel rule reactiononev1 { from.. :... to... :... } <<merge>> <<merge>> DDMM States Definition MetaModel <<merge>> Domain Definition MetaModel Semantics1 Semantics2 reactiononev1()... reactiononevn() reactiononev1()... reactiononevn() Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 38 / 44
L aspect langage : exemple du projet Topcased Exemple de (méta-)approche générative pour la simulation de modèle Objectifs et approches pour la simulation de modèle TM3 Trace Management MetaModel <<import>> EDMM SDMM Semantics reactiononev1()... reactiononevn() Events Definition MetaModel operation reactiononev1 is... <<merge>> <<merge>> DDMM States Definition MetaModel <<merge>> Domain Definition MetaModel Semantics1 Semantics2 reactiononev1()... reactiononevn() reactiononev1()... reactiononevn() Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 38 / 44
L aspect langage : exemple du projet Topcased Exemple de (méta-)approche générative pour la simulation de modèle Objectifs et approches pour la simulation de modèle TM3 Trace Management MetaModel <<import>> EDMM SDMM Semantics reactiononev1()... reactiononevn() Events Definition MetaModel Action Languages <<merge>> <<merge>> DDMM States Definition MetaModel <<merge>> Domain Definition MetaModel Semantics1 Semantics2 reactiononev1()... reactiononevn() reactiononev1()... reactiononevn() Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 38 / 44
L aspect langage : exemple du projet Topcased Exemple de (méta-)approche générative pour la simulation de modèle Objectifs et approches pour la simulation de modèle TM3 Trace Management MetaModel <<import>> EDMM SDMM Semantics reactiononev1()... reactiononevn() Events Definition MetaModel Action Languages <<merge>> <<merge>> DDMM States Definition MetaModel <<merge>> Domain Definition MetaModel Semantics1 Semantics2 reactiononev1()... reactiononevn() reactiononev1()... reactiononevn() Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 38 / 44
L aspect langage : exemple du projet Topcased Exemple de (méta-)approche générative pour la simulation de modèle Objectifs et approches pour la simulation de modèle TM3 Moteur de simulation & panneau de contrôle Constructeur de scénario Trace Management MetaModel EDMM <<import>> SDMM Animateur Semantics reactiononev1()... reactiononevn() Events Definition MetaModel Action Languages <<merge>> <<merge>> DDMM States Definition MetaModel <<merge>> Domain Definition MetaModel Editeur Semantics1 Semantics2 reactiononev1()... reactiononevn() reactiononev1()... reactiononevn() Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 38 / 44
L aspect langage : exemple du projet Topcased Exemple de (méta-)approche générative pour la simulation de modèle Communication entre les composants Graphical Editor Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 39 / 44
L aspect langage : exemple du projet Topcased Exemple de (méta-)approche générative pour la simulation de modèle Communication entre les composants Graphical Editor MDDMM Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 39 / 44
L aspect langage : exemple du projet Topcased Exemple de (méta-)approche générative pour la simulation de modèle Communication entre les composants Graphical Editor Scenario Builder MDDMM Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 39 / 44
L aspect langage : exemple du projet Topcased Exemple de (méta-)approche générative pour la simulation de modèle Communication entre les composants Graphical Editor Scenario Builder MDDMM MEDMM Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 39 / 44
L aspect langage : exemple du projet Topcased Exemple de (méta-)approche générative pour la simulation de modèle Communication entre les composants Graphical Editor Scenario Builder MDDMM MEDMM Simulation Engine Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 39 / 44
L aspect langage : exemple du projet Topcased Exemple de (méta-)approche générative pour la simulation de modèle Communication entre les composants Graphical Editor Scenario Builder MDDMM MEDMM Simulation Engine Generic Simulation Engine DSML_1 Semantics Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 39 / 44
L aspect langage : exemple du projet Topcased Exemple de (méta-)approche générative pour la simulation de modèle Communication entre les composants Graphical Editor Scenario Builder MDDMM MSDMM MEDMM Simulation Engine Generic Simulation Engine DSML_1 Semantics Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 39 / 44
L aspect langage : exemple du projet Topcased Exemple de (méta-)approche générative pour la simulation de modèle Communication entre les composants Graphical Editor Graphical Animator Scenario Builder MDDMM MSDMM MEDMM Simulation Engine Generic Simulation Engine DSML_1 Semantics Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 39 / 44
L aspect langage : exemple du projet Topcased Exemple de (méta-)approche générative pour la simulation de modèle Communication entre les composants Graphical Editor Graphical Animator Scenario Builder MDDMM MSDMM MEDMM Simulation Engine Generic Simulation Engine DSML_1 Semantics Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 39 / 44
L aspect langage : exemple du projet Topcased Exemple de (méta-)approche générative pour la simulation de modèle Communication entre les composants Graphical Editor Graphical Animator Scenario Builder MDDMM MSDMM MEDMM Simulation Engine Generic Simulation Engine DSML_1 Semantics Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 39 / 44
L aspect langage : exemple du projet Topcased Exemple de (méta-)approche générative pour la simulation de modèle Communication entre les composants Graphical Editor Graphical Animator Control Panel Scenario Builder MDDMM MSDMM MEDMM Simulation Engine Generic Simulation Engine DSML_1 Semantics Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 39 / 44
L aspect langage : exemple du projet Topcased Exemple de (méta-)approche générative pour la simulation de modèle Simulateur de modèles XSPEM Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 40 / 44
L aspect langage : exemple du projet Topcased Exemple de (méta-)approche générative pour la simulation de modèle Simulateur de machines à états UML2.0 Inclus dans l atelier TOPCASED à partir de la version 2.0. Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 41 / 44
Conclusion Plan 1 Contexte 2 De la modélisation passive à la modélisation active...! 3 L aspect plate-forme : exemple du projet Medany par Anyware 4 L aspect métier : exemple de l avionique avec Airbus 5 L aspect langage : exemple du projet Topcased 6 Conclusion Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 42 / 44
Conclusion Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 43 / 44
Conclusion Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 43 / 44
Conclusion Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 43 / 44
Conclusion Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 43 / 44
Conclusion Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 43 / 44
Conclusion Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 43 / 44
Conclusion Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 43 / 44
Conclusion Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 43 / 44
Conclusion Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 43 / 44
Conclusion Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 43 / 44
Conclusion Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 43 / 44
Conclusion Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 43 / 44
Conclusion Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 43 / 44
Conclusion Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 43 / 44
Conclusion MDE Pragmatique Benoît Combemale Université de Rennes 1 Équipe-Projet Triskell (IRISA & INRIA) http://perso.univ-rennes1.fr/benoit.combemale/ 2010 2011 Merci, des questions? Rappel : Conférence d OBEO (27 janv. 11, 14h 15h) Benoît Combemale (Univ. Rennes 1 & IRISA) MDE Pragmatique DIIC3, IM (2010 2011) 44 / 44