La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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

Presentaciones similares


Presentación del tema: "Sesión 5 Herramientas de creación de DSL gráficos (GMF)"— Transcripción de la presentación:

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

2 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).

3 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.

4 Proceso de desarrollo

5 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.

6 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

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

8 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.

9 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.

10 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, …

11 Qué clases y relaciones mostrar Qué atributos hacer visibles
Qué notación gráfica ¿Cómo diseñar un DSL gráfico? Qué acciones, menús, paletas... Qué asistentes, propiedades, ... Qué sucede al crear o borrar elementos,...

12 Sesión 5 Herramientas de creación de DSL gráficos (DSL Tools)
Proyecto AutoGSA Sesión 5 Herramientas de creación de DSL gráficos (DSL Tools) 12

13 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.

14 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.

15 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.

16 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.

17 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.

18 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.

19 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).

20 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.


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

Presentaciones similares


Anuncios Google