MDE Pragmatique. Benoît Combemale. Université de Rennes 1 Équipe-Projet Triskell (IRISA & INRIA)

Documents pareils
openarchitectureware & transformation de modèle Yannick Lizzi Architecte Logiciel itemis France Mail: lizzi@itemis.de

Extensions à la formation. Laurent Pérochon, avril 2008, RMT Modelia, modélisation conceptuelle, formation UML, INRA Castanet Tolosan

Générer du code à partir d une description de haut niveau

Etat de l art sur le développement logiciel dirigé par les modèles.

MEMOIRE. Présenté à L École Nationale d Ingénieurs de Sfax. en vue de l obtention du MASTÈRE INFORMATIQUE NTSID. Par.

DSL. Domain Specific Language. À l'aide des technologies Eclipse Modeling. Goulwen Le Fur Le 23 novembre 2012

Ingénierie Dirigée par les Modèles. Editeurs de modèles. (Eclipse Modeling Tools) Jean-Philippe Babau

Environnement logiciel basé sur les modèles pour la conception collaborative de produit

Ingénierie des Modèles. Méta-modélisation

RTDS G3. Emmanuel Gaudin

La démarche MDA. Auteur : Projet ACCORD (Assemblage de composants par contrats en environnement ouvert et réparti)*

Analyse,, Conception des Systèmes Informatiques

REMOTE DATA ACQUISITION OF EMBEDDED SYSTEMS USING INTERNET TECHNOLOGIES: A ROLE-BASED GENERIC SYSTEM SPECIFICATION

Objectif du cours. Outline. Complexité des systèmes modernes. La modélisation et UML dans les activités du Génie Logiciel...

Méthodes d évolution de modèle produit dans les systèmes du type PLM

Génie logiciel (Un aperçu)

Iyad Alshabani SysCom - CReSTIC Université de Reims 17/02/2011 1

CC30 Certificat de compétence Conception, développement et animation de sites Web

Elaboration de processus de développements logiciels spécifiques et orientés modèles : application aux systèmes à évenements discrets

Démarches d urbanisation : réorganiser le Système d Information en structurant ses fonctions dans des blocs fonctionnels communicants.

Vérifica(on et Valida(on de Business Process. Ang Chen et Levi Lúcio

Introduction du test dans la modélisation par aspects

Master 2 Pro ALMA Université de Nantes, 2 rue de la Houssinière UFR des Sciences et des Techniques. - Rapport de Stage -

Eclipse et ses plugins de modélisation (EMF GEF GMF). Entrée en matière. par. Jacques Barzic. Avertissement

Synergies entre Artisan Studio et outils PLM

Eclipse Process Framework et Telelogic Harmony/ITSW

Editing and managing Systems engineering processes at Snecma

Un grand merci aux autres membres du jury d avoir accepter et pris le temps d évaluer ma thèse.

En vue de l obtention du. Discipline : Informatique. Présentée et soutenue par Mohamed HADJ KACEM. Le Jeudi 13 Novembre 2008

Stage Ingénieur en développement logiciel/modélisation 3D

Architecture Reconfigurable Hétérogène à Gestion Hiérarchique Distribuée pour la Reconfiguration et la Prise de Décision

Alignement avec les métiers par le test fonctionnel et d acceptation en projets agiles

Problématiques de recherche. Figure Research Agenda for service-oriented computing

Développement d un interpréteur OCL pour une machine virtuelle UML.

Projet de développement. Introduction à Eclipse. Application à votre projet. Philippe Collet. Organisation. Cours 1 : principes généraux - svn

Evolution et architecture des systèmes d'information, de l'internet. Impact sur les IDS. IDS2014, Nailloux 26-28/05/2014

UML est-il soluble dans les méthodes agiles?

Environnements de développement (intégrés)

MDA (Model Driven Architecture) principes et états de l art.

TP3 Intégration de pratiques agiles. 1. User Stories (1) Scénario d intégration agile. En direct-live du château

en SCÈNE RATIONAL Rational Démonstration SDP : automatisation de la chaîne de développement Samira BATAOUCHE sbataouche@fr.ibm.com

Cours en ligne Développement Java pour le web

Méthodologies de développement de logiciels de gestion

Modèles système, modèles logiciel et modèles de code dans les applications spatiales

INTRODUCTION AUX METHODES D INGENIERIE DES DONNEES DIRIGEE PAR LES MODELES

1. Plan. 1. Plan Information essentielles...2

Ingénierie et gestion des connaissances

THÈSE. Présentée à. L Université Paris VIII. Pour obtenir le grade de DOCTEUR DE L UNIVERSITE DE PARIS VIII. Spécialité INFORMATIQUE

Spécification et transformation de langages de points de vue des systèmes répartis ouverts

Description de la formation

Formula Negator, Outil de négation de formule.

THESE. DOCTORAT EN SCIENCES APPLIQUEES Spécialité : Informatique

Cycle de vie du logiciel. Unified Modeling Language UML. UML: définition. Développement Logiciel. Salima Hassas. Unified Modeling Language

Objecteering. La convergence SOA, UML2, BPMN, EA, pour le développement guidé par le modèle.

Concepts clés associés aux outils logiciels, exemples

Projet de développement

Un environnement de déploiement automatique pour les applications à base de composants

Gouvernance IT : par où commencer? Hubert Lalanne DE, Chief Architect for Industries IBM Software France

Principes. 2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA. Programmation en Corba. Stéphane Vialle

Vérifier la qualité de vos applications logicielle de manière continue

DES SYSTÈMES D INFORMATION

Modelio by Modeliosoft

IFT2255 : Génie logiciel

Composants Logiciels. Le modèle de composant de CORBA. Plan

Cours Bases de données

L approche Model-Driven Architecture, crédible pour développer un progiciel de

Chapitre 5 Vision Informatique Logique Architectures Applicative et Logicielle

Exemple de projet et réseau: modélisation et simulation des systèmes socio-environnementaux

pythonocc: une plateforme de développement agile d applications CAO.

Introduction à la modélisation

THESE. Préparée dans le cadre d une cotutelle entre l UNIVERSITÉ DE GRENOBLE et l UNIVERSITÉ POLYTECHNIQUE DE BUCAREST

Intégration d un ERP guidée par les modèles

ÉCOLE DE TECHNOLOGIE SUPÉRIEURE UNIVERSITÉ DU QUÉBEC THÈSE PRÉSENTÉE À L ÉCOLE DE TECHNOLOGIE SUPÉRIEURE

Méthode B pour la Spécification et la vérification formelle des systèmes répartis ouverts

Completed Projects / Projets terminés

Industrialiser la chaîne complète de fabrication 1ère partie - Les bénéfices de la solution logicielle IBM VisualAge Pacbase / Rational

INDUSTRIALISATION ET RATIONALISATION

Commentaires du testeur

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

Retour d expériences avec UML

Développement ebusiness

THÈSE. En vue de l obtention du DOCTORAT DE L UNIVERSITÉ DE TOULOUSE. Présentée et soutenue le 11/07/2013 par :

Vers un outil d aide à la gestion des risques dans les chaînes logistiques : les bases conceptuelles

L'année méthodologique internationale

L'agilité appliquée à nous-mêmes. Philippe Krief, PhD Development Manager IBM France Lab

Une architecture pour les transformations de modèles et la restructuration de modèles uml

Modélisation des processus métiers et standardisation

Suzy Hélène Germaine TEMATE NGAFFO

Programmation de services en téléphonie sur IP

[Projet S9] Rédacteurs & Contributeurs Entité Rédacteurs Contributeurs Imededdine HOSNI Olivier MARTY. Validation du document Nom Date Visa

Objectif : Passer de l analyse métier et fonctionnelle à la définition des applications qui

Ingénierie Dirigée par les Modèles

Intégration de produits mécatroniques au sein d un système PLM

Le cadre de conception est présenté sous forme d une matrice 6x6 avec les interrogations en colonne et les éléments de réification en ligne.

Catalogue de Pattern pour le CSCW

Forthcoming Database

- Couches - Éléments - Domaines - ArchiMate et les techniques du BABOK

Information utiles. webpage : Google+ : digiusto/

DotNet. Plan. Les outils de développement

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Transcription:

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