1 / 20

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

Télécharger la présentation

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

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. Proyecto AutoGSA Sesión 5Herramientas 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 5Herramientas de creación de DSL gráficos(DSL Tools) Proyecto AutoGSA

  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.

More Related