Ces modèles et métamodèles qui nous entourent! Cédric Dumoulin - DaRT
Qu est ce qu un modèle Définitions (Wikipedia by Google) «Un modèle mathématique est une traduction de la réalité pour pouvoir lui appliquer les outils, les techniques et les théories mathématiques» «[En économie] Un modèle est une représentation de la réalité.» «En informatique, un modèle a pour objectif de structurer les données, les traitements, et les flux d'informations entre entités.» C est une abstraction de la réalité
Qu est-ce qu un modèle One and Three Chairs" by Joseph Kosuth «This artwork is about different ways to show ideas. It presents one chair and three different ways of picturing this same chair.»
Qu est-ce qu un modèle Une carte routière
Qu est-ce qu un modèle autre plan plan d évacuation
Qu est-ce qu un modèle One and Three Chairs" by Joseph Kosuth «This artwork is about different ways to show ideas. It presents one chair and three different ways of picturing this same chair.»
Qu est-ce qu un modèle Un plan d architecte
Pourquoi modéliser? Que font les ingénieurs? Avant de construire de vraies choses ils construisent d abord des modèles les étudient, et tirent des conclusions
Pourquoi modéliser? Modèle de l ingénieur Représentation réduite d un système Système modélisé Modèle Objectifs Aider à comprendre un problème complexe ou une solution Communiquer à propos d un problème complexe ou d une solution
Avantages d un modèle Abstrait Il fait ressortir les points importants tout en enlevant les détails non nécessaires Compréhensible Il permet d exprimer une chose complexe dans une forme plus facilement compréhensible par l observateur Précis Il représente fidèlement le système modélisé Prédictif Il permet de faire des prévisions correcte sur le système modélisé Peu coûteux Il est bien moins coûteux à construire et étudier que le système lui même
Les modèles et l informatique pour faire un programme complexe, on a besoin de le modéliser. Article * -prix -reference -stock 0..1 Catalogue 1 pour explorer les solutions, pour les valider, pour montrer au client ce que sera l application. Video Titre 1 Album Description * Support -descriptionsupport UML : Unified Modeling Langage
Pourquoi comprend t-on un modèle? Parce qu il est simple? Parce qu il représente la réalité? Parce qu il existe une légende!
Pourquoi comprend t-on un modèle? La légende c est l explication des concepts /dessins du modèle la grammaire du modèle Mettre image legende carte La légende est elle même un modèle! On l appelle un métamodèle Existe-t-il un métamodèle décrivant le modèle-légende? nom, nom, = dessin, dessin, c est le méta-métamodèle Existe-t-il un métamodèle décrivant le modèle décrivant le modèle-légende? Et si oui, Existe-t-il
Récapitulons! Modèle et Métamodèle Standardisé par l OMG méta-métamodèle langage pour décrire des langages ce décrit lui-même! métamodèle langage pour décrire des modèles modèle abstraction de la réalité Le monde réel
Qu est ce que l IDM Ingénierie Dirigée par les Modèles Met le modèle au cœur des processus Part d un ou plusieurs modèles rme vers un autre modèle jusqu à avoir du code Ce n est pas nouveau : une compilation est aussi une rmation! Tr Tr Compilation/Tr
A quoi sert l IDM?? avantages abstraction, réutilisation, pérennité, automatisation, contrôles et tests à différents niveaux unification des processus compiler = rmer des modèles on peut réutiliser les travaux fait sur la compilation Conception puis développement == changement de niveau d abstraction (de modèle)
IDM vs MDA Model Driven Architecture Architecture Dirigé par les Modèles Modèle proposé par l OMG (le nom est déposé!) Part d un CIM (Computation Independent Model) Transforme en PIM (Platform Independent Model) Puis en PSM (Platform Specific Model) Et génère le code Variante particulière de l IDM Plus restrictive
Quelques outils actuels Papyrus UML modeleur UML 2 open source Éclipse - EMF framework pour manipuler modèle et métamodèle QVT (QVTO) standard pour rmer des modèles M2T (Acceleo) standard pour la génération de texte (code)
D autres Modèles et Métamodèles méta-métamodèle métamodèle modèle monde réel Texte, Livre ebnf syntaxe ebnf Langage Informatique XML schema schema
PARTIE 2
IDM en pratique Comment structurer un projet IDM? Comment utiliser le projet? Comment modéliser un métamodèle, un modèle? J ai fait un métamodèle, que puis-je faire avec? Comment fonctionnent les rmations, la génération de texte/code?
IDM en pratique Structure typique d un projet MM1.1 MM1.2 haut niveau d abstraction MM2 MM2 MM C++ MM Java MM.net code C++ code Java code.net code
IDM en pratique Structure typique d un projet MM1.1 MM1.2 vérification simulations, MM C++ MM2 MM2 MM Java MM.net Métamodèles rmations génération de code/texte optionnel : vérifications, simulations, tests, génération code C++ génération code Java génération code.net
Utilisation du projet Point de vue utilisateur Modèle 1.1 Modèle 1.2 vérification simulations, Modèle C++ Modèle 2 Modèle 2 exécuter Modèle Java Modèle.net L utilisateur appuie sur le bouton L application produit le texte/code génération code C++ génération code Java génération code.net
Utilisation du projet Derrière la scène Modèle 1.1 Modèle 1.2 vérification simulations, Modèle C++ Modèle 2 Modèle 2 Modèle Java Modèle.net L application produit les modèles intermédiaire Effectue les testes, les vérifications, les simulations, génération code C++ génération code Java génération code.net
Construire un métamodèle 1 concept 1 (méta)classe 1 relation entre concepts 1 association entre classes Peut se faire en UML Exemple : bibliothèque de livres
Du métamodèle aux outils pour manipuler les modèles manipulation édition arborescente sauvegarde édition graphique Le tout en quelques minutes!!!
D un modèle à l autre La rmation de modèles métamodèle d entrée typé par règles typé par métamodèle de de sortie sortie conforme à lit conforme à modèle d entrée lit produit modele modèle de de sortie sortie
Du modèle au code La génération de code métamodèle d entrée conforme à typé par templates lit modèle d entrée lit produit code code code
Saisir un modèle, Quel éditeur utiliser? Editeur arborescent Editeur graphique GMF Editeur graphique home made Modeleur UML + profil directement avec le code java pas toujours intuitif demande une bonne compréhension du modèle plus près du domaine adapté au prototypage rapide modèle graphique complexe à faire problème d ergonomie, customisation limité très bien adapté au domaine - temps de réalisation Ergonomie du modeleur Le même éditeur pour différent modéles Adaptation au domaine grâce au profil associé Profile à définir - une rmation à prévoir (UML MM domaine)
Demo! Modéliser une ville les rues les bâtiments les habitants Générer les programmes Java pour manipuler des modèles de villes Construire des modèles!! Mieux que les syms!!
Métamodèle d une ville
En savoir plus Wikipedia http://fr.wikipedia.org/wiki/ingénierie_dirigée_par_les_modèles OMG www.omg.org UML, QVT, M2T, Eclipse Modeling http://www.eclipse.org/downloads/ Eclipse EMF http://www.eclipse.org/modeling/emf/ Tutorial : Help > Help Contents > EMF Developer Guide > Tutorials > Generating an EMF Model Papyrus modeleur UML Open Source Papyrus I www.papyrusuml.org CEA - LIFL Papyrus II (Juin 2010) projet Eclipse CEA LIFL Airbus Atos QVTo http://www.eclipse.org/m2m/ Acceleo http://www.eclipse.org/modeling/m2t/?project=acceleo