Sesión 5 Herramientas de creación de DSL gráficos (GMF)

20
Sesión 5 Herramientas de creación de DSL gráficos (GMF) Proyecto AutoGSA

description

Proyecto AutoGSA. Sesión 5 Herramientas de creación de DSL gráficos (GMF). Introducción a GMF. GMF ( Graphical Modeling Framework ) es la herramienta de creación de DSL que pertenece al proyecto GMT de Eclipse. Se integra en el entorno Eclipse y es gratuito. - PowerPoint PPT Presentation

Transcript of Sesión 5 Herramientas de creación de DSL gráficos (GMF)

Page 1: Sesión 5 Herramientas de creación de DSL gráficos (GMF)

Sesión 5Herramientas de creación de DSL gráficos

(GMF)

Proyecto AutoGSA

Page 2: Sesión 5 Herramientas de creación de DSL gráficos (GMF)

Her

ram

ient

as d

e cr

eac

ión

de D

SL

grá

ficos

Introducción a GMF GMF (Graphical Modeling Framework) es la herramienta de

creación de DSL que pertenece al proyecto GMT de Eclipse.

Se integra en el entorno Eclipse y es gratuito. Se apoya en los frameworks EMF (Eclipse Modeling

Framework) y GEF (Graphical Editing Framework). Es una herramienta que sigue en desarrollo. Para construir un nuevo DSL con GMF es necesario

completar los diferentes modelos que definen el DSL. Incorpora una vista para guiar la creación del DSL (GMF

Dashboard).

Page 3: Sesión 5 Herramientas de creación de DSL gráficos (GMF)

Her

ram

ient

as d

e cr

eac

ión

de D

SL

grá

ficos

Proceso de desarrollo

Definir el modelo de dominio (sintaxis abstracta). Definir el modelo gráfico (sintaxis concreta). Definir el modelo de herramientas. Definir el modelo de correspondencias. Incluir las restricciones en el modelo de correspondencias. Escribir transformaciones modelo-código utilizando un

lenguaje de plantillas.

Page 4: Sesión 5 Herramientas de creación de DSL gráficos (GMF)

Her

ram

ient

as d

e cr

eac

ión

de D

SL

grá

ficos

Proceso de desarrollo

Page 5: Sesión 5 Herramientas de creación de DSL gráficos (GMF)

Her

ram

ient

as d

e cr

eac

ión

de D

SL

grá

ficos

Modelo de dominio (sintaxis abstracta) La sintaxis abstracta se define mediante metamodelos Ecore. Características de Ecore:

Parecido a EMOF Paquetes (EPackage) paquetes MOF Clases (EClass) clases MOF Atributos (Eattribute) atributos MOF Referencias (EReference) asociaciones/agregaciones MOF No existen las referencias bidireccionales: usar dos referencias

opuestas con la propiedad eOpposite establecida.

El metamodelo se puede editar en la vista en árbol o como diagrama (están sincronizados).

A partir del metamodelo se genera automáticamente el modelo de generación del dominio, y a partir de éste se generan las clases EMF del modelo.

Page 6: Sesión 5 Herramientas de creación de DSL gráficos (GMF)

Her

ram

ient

as d

e cr

eac

ión

de D

SL

grá

ficos

Modelo de definición gráfica (sintaxis concreta)

El modelo se edita en una vista en árbol. Elementos:

Node Nodo del DSL Connector Conector Compartment Compartirmento de un nodo Label Etiqueta de un nodo, conector, compartimento Descriptor de figura se asocia a un nodo, conector, etc.

Rectángulo, elipse, polígono, … Polilínea, … Decoradores, iconos, etiquetas de texto, … Formas personalizadas

Las figuras que ofrece son sencillas pero pueden ser compuestas para crear figuras compleja muy flexible

Page 7: Sesión 5 Herramientas de creación de DSL gráficos (GMF)

Her

ram

ient

as d

e cr

eac

ión

de D

SL

grá

ficos

Modelo de definición de herramientas Creamos una herramienta en la toolbox para cada elemento

gráfico que deseemos arrastrar al editor de modelos. La toolbox puede ser una barra de herramientas, un menú,

una paleta, … Los elementos de la toolbox se pueden agrupar y organizar

en categorías. Para cada herramienta podemos indicar un icono y un texto

de ayuda (tooltip).

Page 8: Sesión 5 Herramientas de creación de DSL gráficos (GMF)

Her

ram

ient

as d

e cr

eac

ión

de D

SL

grá

ficos

Modelo de correspondencias Es necesario establecer las relaciones entre los elementos

del modelo de dominio, de la definición gráfica y del modelo de herramientas.

El GMF Dashboard incluye un asistente para crear el modelo de correspondencias, aunque también se puede editar con la vista de árbol.

Frecuentemente es necesario modificar el modelo creado con el asistente.

A partir de este modelo se genera automáticamente el modelo de generación del editor de diagramas.

Page 9: Sesión 5 Herramientas de creación de DSL gráficos (GMF)

Her

ram

ient

as d

e cr

eac

ión

de D

SL

grá

ficos

Restricciones semánticas

Es posible especificar restricciones semánticas débiles con OCL, Java, o expresiones regulares.

Las restricciones se indican en el modelo de correspondencias como restricciones de enlaces (Link Constraints) o reglas de auditoría (Audit Rules).

Es necesario activar la validación en el modelo de generación del editor.

Desde el código OCL es posible recurrir a operaciones definidas en el metamodelo.

Page 10: Sesión 5 Herramientas de creación de DSL gráficos (GMF)

Her

ram

ient

as d

e cr

eac

ión

de D

SL

grá

ficos

Generación de código GMF únicamente contempla la creación de un DSL

para crear modelos, pero no la generación de código u otros modelos a partir de éste.

Para generar código a partir de los modelos es necesario recurrir a lenguajes de plantillas: MOFScript, JET, MOF2Text, …

Page 11: Sesión 5 Herramientas de creación de DSL gráficos (GMF)

Her

ram

ient

as d

e cr

eac

ión

de D

SL

grá

ficos

Page 12: Sesión 5 Herramientas de creación de DSL gráficos (GMF)

Sesión 5Herramientas de creación de DSL gráficos

(DSL Tools)

Proyecto AutoGSA

Page 13: Sesión 5 Herramientas de creación de DSL gráficos (GMF)

Her

ram

ient

as d

e cr

eac

ión

de D

SL

grá

ficos

Introducción a DSL Tools DSL Tools es la herramienta de creación y explotación de

DSL gráficos de Microsoft dentro del contexto de las Factorías de Software.

DSL Tools se integra con Visual Studio y actualmente viene integrado en el SDK.

Es posible desplegar los DSL creados en otro Visual Studio mediante instaladores MSI.

Un DSL siempre se crea a partir de otro existente o de uno de los DSL predefinidos: diagrama de clases, de componentes, flujo de trabajo, o lenguaje mínimo.

Page 14: Sesión 5 Herramientas de creación de DSL gráficos (GMF)

Her

ram

ient

as d

e cr

eac

ión

de D

SL

grá

ficos

Proceso de desarrollo Selección del DSL inicial. Definición de la sintaxis abstracta (domain model). Definición de la sintaxis concreta (designer). Relacionar la sintaxis abstracta con la concreta. Definir la toolbox del editor de DSL Especificar restricciones semánticas de la sintaxis

abstracta. Programar las transformaciones modelo-código.

Page 15: Sesión 5 Herramientas de creación de DSL gráficos (GMF)

Her

ram

ient

as d

e cr

eac

ión

de D

SL

grá

ficos

Domain Model (sintaxis abstracta) DSL Tools combina la definición de la sintaxis concreta, la

abstracta y su correspondencia en el mismo editor. El lenguaje de metamodelado es propietario y mantiene una

estructura en forma de árbol. Elementos:

Clases del dominio clases MOF Propiedades del dominio propiedades MOF Relación de embebido agregaciones MOF Relación de referencia asociaciones MOF Relación de herencia herencia MOF

Las asociaciones entre elementos del modelo no se definen como clases.

Las cardinalidades y roles de las relaciones se escriben al revés que en MOF.

Page 16: Sesión 5 Herramientas de creación de DSL gráficos (GMF)

Her

ram

ient

as d

e cr

eac

ión

de D

SL

grá

ficos

Designer (sintaxis concreta) Elementos:

Formas geométricas Formas imagen Formas con compartimentos Swimlanes Conectores Puertos

El uso de puertos debe ser tenido en cuenta en la sintaxis abstracta del DSL.

Posibilidad de incorporar texto o iconos en las formas mediante decoradores.

Page 17: Sesión 5 Herramientas de creación de DSL gráficos (GMF)

Her

ram

ient

as d

e cr

eac

ión

de D

SL

grá

ficos

Herramientas del editor

Creamos una herramienta en la toolbox para cada elemento gráfico que deseemos arrastrar al editor de modelos.

Para cada herramienta podemos indicar un icono, texto de ayuda (tooltip), cursor especializado, o palabra clave para buscar información en la ayuda.

Page 18: Sesión 5 Herramientas de creación de DSL gráficos (GMF)

Her

ram

ient

as d

e cr

eac

ión

de D

SL

grá

ficos

Restricciones semánticas Tipos de restricciones

Sintácticas Semánticas

Fuertes Débiles

Las restricciones semánticas se expresan en clases parciales en C# no nuevos lenguajes.

Para las restricciones fuertes, es necesario usar el API específica del dominio.

Para las restricciones débiles, es necesario escribir métodos de validación.

El Framework de Validación se encarga de: comprobar las restricciones débiles sobre los modelos. notificar los mensajes (avisos, errores, …) pertinentes.

Page 19: Sesión 5 Herramientas de creación de DSL gráficos (GMF)

Her

ram

ient

as d

e cr

eac

ión

de D

SL

grá

ficos

Generación de código DSL Tools no soporta transformaciones modelo-modelo. DSL Tools permite transformaciones modelo-código:

XSLT. API específica del dominio (C#). plantillas de texto (C# o Visual Basic al estilo ASP .NET).

Page 20: Sesión 5 Herramientas de creación de DSL gráficos (GMF)

Her

ram

ient

as d

e cr

eac

ión

de D

SL

grá

ficos

Plantillas de texto No es necesario aprender un lenguaje nuevo. Las plantillas se incluyen en la instancia del editor. No se dispone de un editor especializado para las plantillas de

texto (sí hay de terceros). Es necesario indicar a qué modelo se aplica la plantilla en la

propia plantilla. Para que una plantilla genere varios ficheros es necesario

escribir código personalizado. El código del editor del DSL se crea mediante la transformación

de plantillas de texto.