Como Definir un Metamodelo con Eclipse Modeling Framework (EMF). Domain Specific Language (DSL)




En esta entrada les explico lo que es un Metamodelo (MM) y un Domain Specific Language (DSL) dentro del entorno del Model-Driven Development (MDD).

Un DSL se puede definir como una herramienta específica para una tarea específica. Es un lenguaje que maneja los conceptos propios de un dominio. Esto es, por ejemplo, en el ámbito de la construcción, podríamos decir que los conceptos, palabras, terminología que se emplea en dicho dominio son especificados en diagrama de clases en dónde cada clase corresponde con un concepto de ese dominio. 

Un metamodelo, por su parte, es la implementación de un DSL dentro del Eclipse Modeling Project, a través del Eclipse Modeling Framework, básicamente:
  • Permite construir un lenguaje de dominio especifico
  • Transformar modelos (M2M y M2T)
  • Generar código (M2T)
  • Interoperabilidad de datos
  • Generar documentación
Para poder construir un metamodelo, es necesario conocer ese conjunto de conceptos del dominio a modelar (llamadas metaclases) y sus relaciones (meta-asociaciones). Para esto, debemos saber ¿Cuál es el tipo de problema que queremos modelar?  y ¿Quiénes serán los usuarios del lenguaje? 

En el siguiente video muestro, paso a paso, como construir un MM con el entorno Eclipse a través del Eclipse Modeling Framework (EMF). El video esta en mi canal de YouTube.



Esto es la antesala para la generación de código fuente a partir de modelos. 

Es cuánto. 


Comentarios

Mi foto
José Alfonso Aguilar
Mazatlán, Sinaloa, Mexico
Me gusta aprender y escribir sobre tecnología y desarrollo. Soy Ingeniero en Sistemas Computacionales, trabajo como Profesor-Investigador en la Facultad de Informática Mazatlán, de la Universidad Autónoma de Sinaloa. México. Me gusta combinar la docencia-investigación con el giro profesional del desarrollo de software y gestión de proyectos de innovación.

Entradas más populares de este blog

Historia y versiones de HTML (HyperText Markup Language)

Todo lo que debes saber sobre el Model-View Controller (MVC) para Aplicaciones Web

Conceptos Básicos de la Arquitectura REST (REpresentational State Transfer)