Réalisé avec le soutien de OpenEmbeDD: Les technologies d’ingénierie des modèles Christian Brunette
Réalisé avec le soutien de 5, 6 et 7 novembre 2007 Grand Colloque STIC L’ingénierie Dirigée par les Modèles Domaine de l'informatique mettant à disposition des outils, concepts et langages pour créer et transformer des modèles. Modèle ? Niveau M0: les Objets Réels (systèmes électronique, pompes hydrauliques, …) Niveau M1: les Modèles (diagramme UML, automate, …) un modèle est une abstraction d’un objet réel Niveau M2: les Méta-Modèles (méta-modèle d’UML, grammaire, …) un méta-modèle est une description d’un langage permettant de spécifier des modèles du niveau M1 Niveau M3: les Méta-Méta-Modèles (Ecore, EMOF, …) un méta-méta-modèle est une description d’un langage permettant de spécifier des méta-modèles du niveau M2 et dispose de tous les éléments pour s’auto-décrire lui-même
Réalisé avec le soutien de 5, 6 et 7 novembre 2007 Grand Colloque STIC Plan 1.Langage de méta-modélisation Kermeta 2.Transformations de modèles ATL 3.Génération automatisée d’éditeurs graphiques TopCased Breathe life into your metamodels Qu'est-ce que Kermeta ? Un aperçu du fonctionnement Exemple d’utilisation
Réalisé avec le soutien de 5, 6 et 7 novembre 2007 Grand Colloque STIC Qu'est-ce que Kermeta ? Un langage pour construire et spécifier des méta-modèles Un environnement pour toutes les étapes de développement basées sur l'utilisation de méta-modèles De la production des méta-modèles jusqu'à leur exploitation Intégration et/ou interopérabilité avec les autres outils du domaine Adapté pour construire des DSL (Domain Specific Language) (Ingénierie des langages) Approche OO permettant de simplifier les tâches des développeurs de DSL grâce à des mécanismes dédiés: Manipulation intuitive des éléments de modèle Tissage, patron de conception, Clôtures lexicales, Type modèle, généricité, … A nimer/simuler des modèles Prototypage de méta-modèle et simulation des modèles qu'ils définissent
Réalisé avec le soutien de 5, 6 et 7 novembre 2007 Grand Colloque STIC Le workbench
Réalisé avec le soutien de 5, 6 et 7 novembre 2007 Grand Colloque STIC Aperçu du fonctionnement: donner vie aux Méta-Modèles // MyKermetaProgram.kmt // Un méta-modèle E-MOF est un programme OO qui ne fait rien require "StateMachine.ecore" //pour l’importer dans Kermeta // Kermeta permet de tisser différents aspects // Contrats (OCL WFR) require “StaticSemantics.ocl” // Corps des Méthodes (sémantique dynamique) require “DynamicSemantics.kmt” // Transformations Context FSM inv: ownedState->forAll(s1,s2| s1.name=s2.name implies s1=s2) aspect class FSM { operation reset() : Void { currentState := initialState }} class Minimizer { operation minimize (source: FSM):FSM {…} }
Réalisé avec le soutien de 5, 6 et 7 novembre 2007 Grand Colloque STIC Exemple de développement (Robot tortue logo) Contraintes statiques OCL Simulateur en Kermeta Résultat d’une simulation interprétée avec Kermeta Scenario d’entrée Code source embarqué dans le robot Résultat de l’exécution réelle Transformation écrite avec Kermeta Interaction entre la simulation courante (Kermeta) et l’interface graphique (Java) Sémantique de Logo en Kermeta AS VM Semantic mapping Venez voir la démo en live sur le stand OpenEmbeDD !
Réalisé avec le soutien de 5, 6 et 7 novembre 2007 Grand Colloque STIC Plan 1.Langage de méta-modélisation Kermeta 2.Transformations de modèles ATL 3.Génération automatisée d’éditeurs graphiques TopCased Qu’est-ce qu’ATL ? Exemple de transformation Utilisation dans OpenEmbeDD
Réalisé avec le soutien de 5, 6 et 7 novembre 2007 Grand Colloque STIC Qu’est-ce qu’ATL ? Langage de transformation de modèle à modèle Déclaratif, avec des règles définissant : Des motifs sources à reconnaître dans les modèles sources. Des motifs cibles à créer dans les modèles cibles. Avec une partie impérative : Pour gérer les cas difficiles à définir en déclaratif. S’intégrant au code déclaratif pour le seconder. Open source (Eclipse Public Licence) : Sur Eclipse.org Une communauté active : Forum de discussion Contributions aux exemples et au code
Réalisé avec le soutien de 5, 6 et 7 novembre 2007 Grand Colloque STIC Outils ATL Éditeur : Coloration syntaxique Vue arborescente (outline) Complétion de code Outil de mise au point : Points d’arrêt Exploration du contexte courant Couche d’abstraction EMFUML2MDR… Machine Virtuelle ATL ATL Compilateur ATL QVT Compilateur QVT Machine virtuelle : S’adapte aux couches basses (ex: EMF, UML2, MDR) Supporte d’autres langages (ex:QVT)
Réalisé avec le soutien de 5, 6 et 7 novembre 2007 Grand Colloque STIC Exemple : Personne à Contact
Réalisé avec le soutien de 5, 6 et 7 novembre 2007 Grand Colloque STIC Transformation de FIACRE vers LOTOS Définitions en Ingénierie des Modèles des langages FIACRE et LOTOS : Méta-modèles en KM3 (compatible Ecore), syntaxes en TCS. Transformation de FIACRE vers LOTOS en ATL.
Réalisé avec le soutien de 5, 6 et 7 novembre 2007 Grand Colloque STIC Autres applications Vérification en ATL de contraintes sur les modèles : – ATL à Problem, KM3 à Problem, etc. Traçabilité persistante des transformations ATL : – ATL à Tracer, ATL à WTracer, etc. Ponts entre outils de l’IdM : – KM3 à Ecore, Ecore à KM3, KM3 à MOF, MOF à KM3, MS DSL à KM3, KM3 à MS DSL, GME à KM3, KM3 à GME, etc. Calculs de métriques : – Models Measurement, etc. Visualisation de modèles : – Table à HTML, UMLDI à SVG, KM3 à DOT, etc. Etc. 21 cas d’utilisation détaillés. Plus de 90 scénarios disponibles.
Réalisé avec le soutien de 5, 6 et 7 novembre 2007 Grand Colloque STIC Langage de méta-modélisation Kermeta 2.Transformations de modèles ATL 3.Génération automatisée d’éditeurs graphiques TopCased Plan Qu’est-ce que TopCased ? La génération automatisée d’éditeur Exemple d’utilisation dans OpenEmbeDD
Réalisé avec le soutien de 5, 6 et 7 novembre 2007 Grand Colloque STIC Qu’est-ce que TopCased ? Projet pôle de compétitivité Midi-Pyrénées (Aerospace valley) Projet ANR depuis mars 2007 But: fournir un ensemble d’outils dédiés au développement de systèmes critiques: Aérospatiale Avionique Automobile… Pérenniser les méthodes & outils pour le développement logiciel Minimiser les coûts (outils propriétaires) Intégrer des outils académiques Être capable d’adapter les outils au processus de développement et non l’inverse
Réalisé avec le soutien de 5, 6 et 7 novembre 2007 Grand Colloque STIC Outils fournis dans TopCased Editeur graphique pour Ecore Génération automatisée d’éditeurs graphiques à partir de ces modèles D’autres éditeurs: UML2.1 SysML AADL…
Réalisé avec le soutien de 5, 6 et 7 novembre 2007 Grand Colloque STIC Editeur UML diagrammes disponibles dont séquence, activité, automate implantés pour les besoins d’OpenEmbeDD
Réalisé avec le soutien de 5, 6 et 7 novembre 2007 Grand Colloque STIC Processus de génération d’éditeurs graphiques Besoin Réaliser plusieurs éditeurs graphiques pour différents méta-modèles Approche Model Driven Development pragmatique Communalisation progressive des comportements Amélioration progressive du générateur Intérêt Versions fonctionnelles très fréquentes Difficulté Gérer la compatibilité ascendante Amélioration du générateur pour les besoins d’OpenEmbeDD Contribution à EMP (Eclipse Modeling Project)
Réalisé avec le soutien de 5, 6 et 7 novembre 2007 Grand Colloque STIC Principe de génération Méta-modèle (ex: UML, AADL…) Méta-modèle Ecore Méta-modèle de configuration Configurateur Editeur de diagramme Complète les informations du méta-modèle, paramètre la génération génère instancie
Réalisé avec le soutien de 5, 6 et 7 novembre 2007 Grand Colloque STIC Structure de l’éditeur généré
Réalisé avec le soutien de 5, 6 et 7 novembre 2007 Grand Colloque STIC Utilisation pour OpenEmbeDD Utilisation pour les outils spécifiques temps- réel et systèmes embarqués (Fiacre, Polychrony, SynDEx…)
Réalisé avec le soutien de 5, 6 et 7 novembre 2007 Grand Colloque STIC Conclusions OpenEmbeDD (stable) Kermeta ATL TopCased Nouvelles versions de TopCased toutes les 6 semaines Appliqué dans OpenEmbeDD pour le temps réel Applicable pour d’autres domaines