Universidad de Cantabria

Implementación de un Compilador para el Lenguaje VML usando la Suite para Transformaciones de Modelos Epsilon

Universidad de Cantabria

1. Resumen

VML (Variability Management Language) [1, 2] es un innovador lenguaje para la gestión de la variabilidad dentro de una línea de productos software. El objetivo de una línea de productos software es similar al de una línea de producción de automóviles: ensamblar, a partir de una serie de componentes software prefabricados, productos software similares, tan automáticamente como sea posible. Estos productos software comparten una serie de características comunes, a la vez que presentan diferencias entre ellos. Las líneas de productos software presentan nuevos retos con respecto al desarrollo software tradicional: (1) en primer lugar, debemos disponer de nuevas técnicas y lenguajes para analizar y especificar las variaciones existentes entre diferentes productos; (2) debemos diseñar productos software “flexibles”, que permitan la incorporación de dichas variaciones; y (3) debemos diseñar mecanismos que, dada una selección de las características que queremos incluir en un producto, permitan el ensamblado tan automático como sea posible, de dicho producto.
En muchos casos, el análisis de la variabilidad existente una familia de productos se realiza mediante árboles de características. A continuación, se diseñam

2. Metodología

  1. Familiarización con las tecnologías del proyecto: (1) Líneas de Producto Software; (2) Árboles de Características; (3) Ingeniería de Lenguajes Dirigida por Modelos; (4) Transformaciones Modelo a Modelo; y (5) Transformaciones Modelo a Código.
  2. Análisis del actual compilador para VML implementado usando openArchitectureWare.
  3. Reimplementación de dicho compilador usando la familia de lenguajes Epsilon.[]
  4. Desarrollo de un plugin que permita la integración de dicho compilador en Eclipse.

3. Áreas de Conocimientos

  1. Desarrollo de Software

4. Otros datos de interés

La metodología de desarrrollo y el lenguaje de programación quedan totalmente a elección del alumno. Yo personalmente optaría por una metodología en espiral con iteraciones cortas, usanfdo UML como lenguaje de modelado para las diversas fases del ciclo de vida y Java como lenguaje de programación, básicamente por desarrollar una aplicación multiplataforma. Los diferentes widgets gráficos que hagan falta crear para hacer más amigable la interfaz los codificaría usando simple Java beans. No obstante, la decisión final es del alumno.

Referencias y Bibliografía

No se definen por el momento.

Última actualización: 16/06/2010 XHTML 1.0 compliant ¡CSS Válido! WAI compliant