20090129 Presentacion Area

  • Uploaded by: Ander Zubizarreta
  • 0
  • 0
  • May 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View 20090129 Presentacion Area as PDF for free.

More details

  • Words: 966
  • Pages: 18
THE PROJECT Análisis de Lenguajes Específicos de Dominio para Sistemas Embebidos Resultados Preliminares Ander Zubizarreta Arrasate, 30 Enero 2009

la idea  Analysis of DSL (Domain Specific Languages)  State-of-the-art: problems  Concepts: models, metamodels, transformations  Tools: commercial & academic

 Trabajo realizado  Entender conceptos  Probar herramientas  Hacer pequeños ejemplos

Domain Specific Languages  Ideas fundamentales  Higher-level abstraction than general purpose languages  Closer to the problem domain than to the implementation domain  Closer to the domain experts, allowing modelers to perceive themselves as working directly with domain concepts

 Mas:  Domain rules can be included into the language as constraints, disallowing the specification of illegal or incorrect models  Languages for representing different views of a system in terms of models

¿Cuándo usar DSLs?  Cuando …     

… un lenguaje de modelado de proposito general (e.g. UML ) NO proporciona la expresividad que necesitamos en nuestro dominio

    

… un lenguaje de programación de proposito general (e.g. C, C++, Java) NO proporciona las abstracciones que necesitamos en nuestro dominio

Terminologia  Modelo:  “represents a part of the reality called the object system and is expressed in a modeling language.  A model provides knowledge for a certain purpose that can be interpreted in terms of the object system”

 Metamodelo:  A model of models (definición del modelo. Define qué elementos y cómo se utilizaran en el modelo).

 Transformación:  Transformación Model-to-model, model-to-text  RuleSets:  Conjunto de reglas que definen la transformación de un modelo a otro, normalmente haciendo un mapping entre los elementos de sus respectivos metamodelos

 Templates:  Plantillas de texto utilizadas para generar código de los modelos

Conceptos  DSLs are defined in terms of  Abstract syntax (domain concepts and rules)  Concrete syntax (language representation)

 Metamodels used to represent the abstract syntax  Models “conform to” metamodels  A metamodel conforms to its meta-metamodel

Level M2

the MOF MMM

a UML model m

another use of m

an execution X of program P

a particular use of m

another UML model m’

the CWM MM

a Pascal program P

Level M1

Level M0

the UML MM

the SPEM MM

the Pascal grammar

 This tower usually ends at level 4

Level M3

EBNF

 Metamodels are models, too

Problemas (MUCHOS!)  Representacion  Definicion de DSL  Lenguajes de modelos, metamodelos (e.g. Ecore)  Restricciones

 Generación de código  Transformaciones  modelo a modelo  modelo a texto

 Primitivas de transformacion  Model queries  RuleSets, Templates, Scripts

 Más: debug, model operations (merge), simulación, etc

Escenarios de Aplicación (i) Metamodels

Doc <>

<>

<>

Models

Code

M2M M2T

Tests

Escenarios de Aplicación (ii)  UML “típico”  Diseñamos un sistema con UML  Queremos generar cierto código repetitivo  Estructural: estructura de paquetes/clases  Comportamiento: diagramas de estados

 Limitaciones:  Especificar la semantica es complicado  Existen ASL (Action Semantic Languages), pero acaban siendo lenguajes de programacion genericos

Escenarios de Aplicación (iii)  Nos “inventamos” un DSL  Diseñamos una parte del sistema con el DSL  Definimos como va a ser el codigo que queremos generar  Es decir, tenemos  Metamodelo origen (DSL)  Metamodelo destino (Codigo)

 Solucion  Definimos transformaciones (rulesets, templates, etc)  Se modelan los conceptos del dominio (no codigo)

 Limitaciones:  Conocer el dominio es complicado  Siempre puede haber algun concepto que se “olvida”

Herramientas: estudio de mercado  MetaEdit+  Herramienta para crear lenguajes gráficos de modelado y modelar con ellos. Se puede generar código de los modelos creados.

 Eclipse (entorno)  EMF (Eclipse Modeling Framework):  Plugin de Eclipse con herramientas para trabajar con modelos. Basándose en un metamodelo, permite generar código y crear editores de modelos. Usa el lenguaje de mtamodelado Ecore, pero también permite importar UML y XML Schema.

 GEF (Graphical Editing Framework) & GMF (Graphical Modeling Framework)  Plugins que permiten crear editores gráficos para modelar

 AGE (Agile Generative Environment)  Herramienta basada en Ruby y Eclipse, que mediante el lenguaje de trasnformación RubyTL permite definir transformaciones de modelos y generar código

Herramienta MDWorkbench  MDWorkbench  Basada en EMF (eclipse)  forma fácil de ver y editar los MM, modelos y transformaciones  Lenguajes propios:  MQL para tranformacion entre modelos y  TGL para generación de código.  Tambien permite incluir código Java en las transformaciones.

 Seleccionada por:    

Facilidad para navegar entre los elementos del modelo Facilidad para escribir transformaciones Se puede generar documentación en word Abundancia de documentacion

Ejemplos  Ejemplos Realizados  [M2Model]  [M2Text]  [M2Text]

UML (SC) to SCXML DSL to C++ SCXML to C++

 Ejemplos para hacer  [M2Model]  [M2Text]

SysML to DSL SPEM to Ant

Ejemplos Realizados (i)  [M2Model]

UML to SCXML

Pasos seguidos: 2)Definir modelo 3)Definir las reglas de transformación 4)Aplicar la tranformación al modelo

UML running

[mvOffOn()==TRUE]

Idle tm(10)/doInit(); loadVariables();

M2M

Off

On

doOff()

doOn() [mvOnOff()==TRUE]

SCXML

input

Ruleset

ouotput

Pasos seguidos: 2)Definir modelo 3)Definir las reglas de transformación y plantillas 4)Aplicar la transformación al modelo

Ejemplos Realizados(ii)  [M2Text]

DSL to C++

C++

DSL

M2T

in

Rules + Templates

out

Ejemplos Realizados (iii)  [M2Text] SCXML to C++

C++

SCXML

M2T

out in

Rules + Templates

Pasos seguidos: 2)Definir modelo 3)Definir las reglas de transformación y templates 4)Aplicar la tranformación al modelo

Ejemplos para hacer  [M2Model] SysML to DSL  Dibujar modelo en SysML  Aplicar transformación a DSL

(2 posib: XMI o AP233)

 [M2Text] SPEM to ANT  Automatizar el proceso  Dibujar el proceso en SPEM  Generar ANT que ejecute todo el proceso

M2T build.xml

Demo

Sysdef code generation using MDWorkbench

Ander Zubizarreta

9/1/2009

Related Documents

Area
November 2019 62
Area
December 2019 48
Area
November 2019 51

More Documents from ""