1 / 8

Titre

Sous titre. Titre. Plan. Topcased ATL Kermeta Qu'est ce que Kermeta Cas d'utilisation Un aperçu du fonctionnement Exemple de développement (robot tortue logo). Breathe life into your metamodels. Qu'est ce que Kermeta. Un langage pour construire et spécifier des métamodèles

Download Presentation

Titre

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Sous titre Titre Pied de page

  2. Pied de page Plan • Topcased • ATL • Kermeta • Qu'est ce que Kermeta • Cas d'utilisation • Un aperçu du fonctionnement • Exemple de développement (robot tortue logo) Breathe life into your metamodels

  3. Qu'est ce que Kermeta • Un langage pour construire et spécifier des métamodèles • Un environnement pour toutes les étapes de développement basées sur l'utilisation de métamodèles • De la production des MM 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é, … • Opensource (http://www.kermeta.org)

  4. Cas d'utilisation • Pour définir la structure, le comportement et les contraintes d'un métamodèle (compatible avec EMOF et Ecore), • Spécification de la sémantique abstraite, des contraintes statiques ( OCL) et de la sémantique dynamique (comportement) • Conserve une liaison avec la syntaxe concrète • Pour vérifier des modèles • Pour animer/simuler des modèles • Prototypage de métamodèle et simulation des modèles qu'ils définissent • Pour manipuler/transformer/tisser des modèles • Modulable et expressif grace à une approche Orientée Objet étendue

  5. Un aperçu du fonctionnementBreathing life into Meta-Models // MyKermetaProgram.kmt // An E-MOF metamodel is an OO program that does nothing require "StateMachine.ecore"// to import it in Kermeta // Kermeta lets you weave inaspects // Contracts (OCL WFR) require “StaticSemantics.ocl” // Method bodies (Dynamic semantics) 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 {…} }

  6. Aperçu du tissage interne Par exemple pour bien séparer la syntaxe abstraite du domaine sémantique require "FSM.ecore" aspect class FSM { reference currentState : State operation run() : Void is do … end operation reset() : Void is do … end } … aspect class Transition { operation fire() : String is do // update FSM current state source.owningFSM.currentState := target result := output end }

  7. Le workbench

  8. Exemple de développement (Robot tortue logo) Venez voir la démo en live sur le stand OpenEmbedd ! Logo Semantic in Kermeta Semantic mapping Static constraints in OCL AS VM Transformation written in Kermeta Input scenario Embedded source code inside the robot Simulator in Kermeta Interaction between the current simulation (Kermeta) and the GUI (Java) Result of a real execution Result of a simulation interpreted with Kermeta

More Related