|
Implementación de un Compilador para el Lenguaje VML usando la Suite para Transformaciones de Modelos Epsilon
|
|
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
- 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.
- Análisis del actual compilador para VML implementado usando openArchitectureWare.
- Reimplementación de dicho compilador usando la familia de lenguajes Epsilon.[]
- Desarrollo de un plugin que permita la integración de dicho compilador en Eclipse.
3. Áreas de Conocimientos
- 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
|
|