Titre

8
Pied de page fixe Pied de page 1 Titre Sous titre

description

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 - PowerPoint PPT Presentation

Transcript of Titre

Pied de page fixe Pied de page 1

Titre

Sous titre

Pied de page fixe Pied de page 2

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• 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)

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

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 in aspects

// Contracts (OCL WFR)require “StaticSemantics.ocl”// Method bodies (Dynamic semantics)require “DynamicSemantics.kmt”// Transformations

run()

reset()

FSM

name: EString

step()

State input: EString

output: EString

fire()

Transition

initialState

1

owningFSM 1 ownedState*currentState

0..1

source

1

outgoingTransition

*target

1

incomingTransition

0..1

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 {…}}

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}

Le workbench

Exemple de développement (Robot tortue logo)

Static constraints in OCL

Simulator in Kermeta

Result of a simulation interpreted with Kermeta

Input scenario

Embedded source code inside the robot

Result of a real execution

Transformation written in Kermeta

Interaction between the current simulation (Kermeta) and the GUI (Java)

Logo Semantic in Kermeta

AS VMSemantic mapping

Venez voir la démo en live

sur le stand OpenEmbedd !