Cedric Dumoulin Les challenges Concevoir une application en s’abstrayant des t
Cedric Dumoulin Les challenges Concevoir une application en s’abstrayant des technologies cibles Assurer la pérennité des applications conçues maintenance, adaptation aux changements Augmenter la productivité Cibler plusieurs plateformes d’exécutions à partir d’une seule conception Réutiliser l’existant Automatiser la génération du code Contrôler, simuler, tester à différents niveaux Que propose l’IDM ? IDM : Ingénierie Dirigée par les Modèles ou MDE (Model Driven Engineering) Propose de modéliser les applications à un haut niveau d’abstraction Place le modèle au cœur du processus de conception Puis génère le code de l’application à partir des modèles Plus en détails 1..n modèles de haut niveau des modèles intermédiaires 1..n technologies cibles transformation de modèles pour passer d’un niveau à l’autre génération de code à partir de modèles possibilité de contrôler, simuler et tester à différents niveaux Modèle 1.1 Modèle 2 Modèle 2 Modèle Java Modèle .net Modèle C++ Modèle 1.2 code Java code .net code C++ transfo génération transfo transfo transfo transfo transfo génération génération vérification simulations, … haut niveau bas niveau abstraction 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 d’un système Le modèle doit pouvoir être utilisé pour répondre à des questions sur le système modélisé Exemple de modèle Une carte routière Exemple de modèle (2) 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 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 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, … = signe, signe, … 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 … Mettre image legende carte 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 D’un modèle à l’autre La transformation de modèles moteur de transformation modèle d’entrée modele de sortie modèle d’entrée modèle de sortie métamodèle d’entrée métamodèle de sortie métamodèle d’entrée métamodèle de sortie règles lit produit lit conforme à conforme à typé par typé par métamodèle règles métamétamodèle (ex: ECore) conforme à Du modèle au code La génération de code modèle d’entrée modèle d’entrée code métamodèle d’entrée métamodèle d’entrée templates lit produit lit conforme à typé par templates code code IDM vs MDA Model Driven Architecture Architecture Dirigé par les Modèles Modèle proposé par l’OMG (le nom est déposé !) s’appuie sur UML 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 PIM CIM PSM PDM code transfo génération transfo UML 2 Unified Modeling Language standard OMG Langage de modélisation généraliste Permet de construire de nombreuses sortes de modèles ne se limite pas à l’informatique Propose 13 types de diagrammes structurels : classe, cas d’utilisation … comportementaux : activités, états … UML Langage généraliste • standard– facilite la compréhension en dehors du domaine • beaucoup de concepts Doit être étendu • Pas toujours adéquat Syntaxe concrète • Des éditeurs graphique existe DSL / métamodèle Langage dédié à un domaine • Concepts propre au métier • Peu de concepts Plus simple • à transformer • à comprendre • à manipuler Pas de syntaxe concrète • il faut développer ses propres éditeurs graphique • Une transformation permet de passer de UML à une DSL Syntaxe abstraite Syntaxe concrète Un métamodèle représente une syntaxe abstraite Définition des concepts Pour construire un modèle, il faut une syntaxe concrète Définition graphique ou texte Un même métamodèle peut avoir plusieurs syntaxes concrètes ! souvent une graphique et une textuelle Quelques outils actuels Papyrus UML modeleur UML 2 open source projet Eclipse Éclipse - EMF framework pour manipuler modèle et métamodèle QVT (QVTO) standard pour transformer des modèles M2T (Acceleo) standard pour la génération de texte (code) L’IDM répond t-elle aux challenges ? s’abstraire des technologies cibles Assurer la pérennité Augmenter la productivité Cibler plusieurs plateformes d’exécutions Réutiliser l’existant Automatiser la génération du code Contrôler, simuler, tester à différents niveaux Modèle 1.1 Modèle 2 Modèle 2 Modèle Java Modèle .net Modèle C++ Modèle 1.2 code Java code .net code C++ transfo génération transfo transfo transfo transfo transfo génération génération vérification simulations, … En savoir plus Wikipedia http://fr.wikipedia.org/wiki/Ingénierie_dirigée_par_les_modèles OMG – www.omg.org UML, QVT, M2T, … Etat de l’art http://hal.archives-ouvertes.fr/docs/00/37/15/65/PDF/mde- stateoftheart.pdf Ingénierie dirigée par les modèles - Des concepts à la pratique Jean-Marc Jézéquel, Benoît Combemale, Didier Vojtisek En savoir plus 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 (projet Eclipse) projet Eclipse – CEA – LIFL – Airbus – Atos www.eclipse.org/papyrus QVTo http://www.eclipse.org/m2m/ Acceleo http://www.eclipse.org/modeling/m2t/?project=acceleo uploads/S4/ 1-introidm.pdf
Documents similaires










-
29
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Nov 03, 2021
- Catégorie Law / Droit
- Langue French
- Taille du fichier 1.8540MB