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