XV Jornadas de Ingeniería del Software y Bases de Datos
JISBD 2006
José Riquelme - Pere Botella (Eds)
© CIMNE, Barcelona, 2006
MCGEN: UN ENTORNO PARA LA GENERACIÓN AUTOMÁTICA DE
COMPILADORES DE MODELOS ESPECÍFICOS DE DOMINIO
Manuel Llavador, José H. Canós, Patricio Letelier y Carlos Solís
Grupo de Ingeniería del Software y Sistemas de Información
Departamento de Sistemas Informáticos y Computación
Universidad Politécnica de Valencia
Camino de Vera S/N, C.P. 46022, Valencia (España)
e-mail: {mllavador, jhcanos, letelier, csolis} @dsic.upv.es, web: http://issi.dsic.upv.es
Palabras clave: Compiladores de Modelos, MDA, Software Factories, XSL, Semántica
Resumen. A pesar de las expectativas abiertas en cuanto a mejoras en productividad y
calidad, los paradigmas basados en factorías de software y desarrollo dirigido por
modelos no han sido adoptados en un grado significativo por la industria del software.
Uno de los mayores obstáculos para la aplicación de esta tecnología es el coste asociado
a la construcción de los Compiladores de Modelos en los que se basan. En este trabajo
presentamos un entorno orientado a servicios para la generación automática de
Compiladores de Modelos específicos de dominio. La generación automática reduce
drásticamente los costes así como los posibles errores de implementación.
1. INTRODUCCIÓN
La generación automática de código permite obtener el código fuente de una aplicación a
partir de modelos que describen, de forma gráfica o textual, su arquitectura y/o
comportamiento. Los programas que dan soporte a ese proceso son conocidos de forma
genérica como Compiladores de Modelos. La capacidad de generar código de forma
automática a partir de modelos tiene un gran impacto en la productividad y calidad asociada
al proceso de producción de software permitiendo la validación de las aplicaciones, sin coste
añadido, reduciendo los tiempos de desarrollo, evitando posibles errores de implementación y
permitiendo la reutilización de soluciones a problemas previamente modelados.
El paradigma de Desarrollo de Software guiado por Modelos (Model-Driven Development,
MDD [1]) propone la definición y uso de modelos a diferentes niveles de abstracción para la
especificación de las aplicaciones y entiende el proceso de desarrollo como una secuencia de
transformaciones en las que los modelos más abstractos (independientes de plataforma) se
van refinando en modelos más concretos (específicos de plataforma) hasta que, en el paso
final, se obtiene el código fuente de la aplicación como resultado de la compilación de los
modelos concretos. Este nuevo tipo de herramientas CASE (Computer-Aided Software
Engineering) proporcionan un conjunto de aplicaciones de soporte para la especificación de
las aplicaciones (diseñadores gráficos, validadores, depuradores, etc.), basadas en un conjunto