Composici´on de Reglas de Transformaci´on
Andres Romero y Hugo Arboleda
Universidad de Los Andes, Cra. 1 N◦ 18A 10, Bogot´a, Colombia {aa.romero354,hf.arboleda34}@uniandes.edu.co
Resumen El proceso de derivaci´on de productos en las L´ıneas de Pro- ductos de Software Dirigidas por Modelos (MD-SPL) se basa en reglas de transformaci´on que permiten transformar un modelo del dominio ori- gen en un modelo del dominio destino. Para derivar un producto de la l´ınea, se debe ejecutar un conjunto de reglas de transformaci´on en un orden espec´ıfico. Tanto las reglas de transformaci´on como su orden de ejecuci´on, dependen de los variantes seleccionados en la configuraci´on del producto que se quiere derivar. La mayor´ıa de propuestas al proce- so de derivaci´on acoplan los variantes con las reglas de transformaci´on, lo que genera problemas de mantenibilidad y evoluci´on. En este art´ıcu- lo se propone un modelo de decisi´on como mecanismo de composici´on de reglas de transformaci´on. Este modelo relaciona variantes con reglas de transformaci´on, especificando el conjunto y orden de reglas de trans- formaci´on que deben ser ejecutadas para derivar un producto dada su configuraci´on. El modelo de decisi´on propuesto es independiente de un lenguaje de transformaci´on particular lo que permite expresar de manera general la estrategia de composici´on de reglas de transformaci´on.
Key words: L´ıneas de Productos de Software, Desarrollo Dirigido por Modelos, Modelos de Decisi´on, Composici´on de reglas de transformaci´on.
1. Introducci´on
Las L´ıneas de Productos de Software Dirigidas por Modelos (MD-SPL) son un enfoque de desarrollo de software que combina las ventajas del desarrollo dirigido por modelos y la ingenier´ıa de l´ıneas de productos de software. En las MD-SPL los productos son creados a partir de la reutilizaci´on de activos base [1], entre los cuales se encuentran los modelos y reglas de transformaci´on. Las l´ıneas de productos tienen variantes, los cuales definen las posibles caracter´ısticas que pueden tener los productos de la l´ınea. En consecuencia, los activos base que componen la l´ınea son personalizados y configurados de acuerdo con variantes seleccionados de una configuraci´on, que define un producto particular de la l´ınea [2].
El proceso de derivaci´on de productos en las MD-SPL se realiza de manera incremental; se parte de un modelo inicial que es transformado a cada uno de los dominios que componen el sistema; al final, un modelo representando el do- minio del lenguaje de programaci´on es transformado a texto, i.e., al lenguaje de
programaci´on correspondiente. Cada uno de estos dominios es descrito por un metamodelo y representa una preocupaci´on del sistema: arquitectura, platafor- ma, lenguaje, etc. La transformaci´on entre modelos se realiza a trav´es de reglas de transformaci´on, que toman elementos del dominio origen y los transforman en elementos del dominio destino.
Los mecanismos de composici´on de reglas de transformaci´on tienen como ob- jetivo especificar el conjunto y orden de reglas de transformaci´on que derivan un producto para una configuraci´on en particular. Aproximaciones a la composici´on de reglas de transformaci´on (e.g. [3,4,5]) se centran en el uso de funcionalidades espec´ıficas que proveen los lenguajes de transformaci´on. Lo anterior conlleva a problemas de portabilidad de las estrategias de composici´on de un lenguaje de transformaci´on a otro; limitando la composici´on de reglas de transformaci´on al conjunto de funcionalidades que puede procesar cada motor de transformaci´on.
En este art´ıculo se propone el uso de un modelo de decisi´on como mecanismo de soporte para la composici´on de reglas de transformaci´on. Nuestro modelo de decisi´on relaciona variantes con reglas de transformaci´on, especificando el con- junto y orden de ejecuci´on de reglas de transformaci´on que deben ser aplicadas en la derivaci´on de un producto, dependiendo de los variantes seleccionados en la configuraci´on. El modelo de decisi´on representa a alto nivel la composici´on de reglas de transformaci´on, sin incluir detalles espec´ıficos de funcionalidades que ofrecen los lenguajes de transformaci´on. Esta representaci´on por ser abstracta no puede ejecutarse directamente sobre un motor de transformaci´on, en conse- cuencia, se debe transformar el modelo de decisi´on a estrategias de composici´on concretas sobre los lenguajes de transformaci´on, las cuales pueden ser ejecutadas sobre un motor de transformaci´on en particular. A modo de ejemplo presenta- mos el uso del modelo de decisi´on sobre los lenguajes de transformaci´on Xtend [6] y ATL [7], los cuales presentan estrategias de composici´on diferentes.
Este art´ıculo se encuentra organizado de la siguiente manera, el capitulo 2 ex- plica los conceptos de los modelos de decisi´on y las aproximaciones relacionadas con la composici´on de reglas de transformaci´on. El capitulo 3 introduce un caso de estudio que servir´a para explicar la estrategia de soluci´on. En el cap´ıtulo 4 se explica la estrategia de soluci´on propuesta, se explica el uso de los modelos de decisi´on y el proceso de derivaci´on de productos mediante el uso de este mecan- ismo. El cap´ıtulo 5 muestra c´omo el modelo de decisi´on puede ser transformado a estrategias concretas de composici´on sobre dos lenguajes de transformaci´on diferentes: Xtend y ATL. Por ´ultimo, el cap´ıtulo 6 presenta conclusiones y tra- bajo futuro.
2. Contexto
A continuaci´on se realizar´a una breve descripci´on de los modelos de decisi´on, resumiendo sus principales conceptos. Los modelos de decisi´on ser´an utilizados para componer reglas de transformaci´on, expresando esta composici´on de manera independiente de la plataforma. Adicionalmente, exploraremos los conceptos y
aproximaciones a la composici´on de reglas de transformaci´on, que ayudaran a ejemplificar los problemas propuestos en este art´ıculo.
2.1. Modelos de decisi´on
Los modelos de decisi´on son modelos que capturan la variabilidad de una l´ınea de productos en t´erminos de decisiones abiertas y posibles resoluciones [8]. Las decisiones son puntos que requieren de la intervenci´on de un usuario durante el proceso de derivaci´on, para personalizar los activos de un producto.
Estas decisiones se encuentran dadas en t´erminos de los variantes de la l´ınea. Las resoluciones son las opciones que se tienen como soluci´on a una decisi´on, estas resoluciones tienen efectos, que indican las acciones espec´ıficas que se deben realizar para configurar un activo. Los modelos de decisi´on reducen la brecha que existe entre la variabilidad a nivel conceptual y la variabilidad a nivel de implementaci´on. Esto se logra a trav´es de la relaci´on de variantes con elementos concretos de configuraci´on de activos, en nuestro caso reglas de transformaci´on.
Los modelos de decisi´on han sido ampliamente usados en las l´ıneas de producto [9,4,10], guiando el proceso de derivaci´on de productos.
2.2. Composici´on de reglas de transformaci´on
La composici´on de reglas de transformaci´on consiste en agrupar y ordenar conjuntos de reglas de transformaci´on permitiendo derivar un producto espec´ıfico de la l´ınea, dependiendo de los variantes que han sido seleccionados en una con- figuraci´on. Diferentes enfoques para componer reglas de transformaci´on buscan mejorar el proceso de derivaci´on de productos mediante aportes en mantenibili- dad, escalabilidad y reusabilidad de las reglas de transformaci´on (e.g. [3,5,4]).
Wagelaar [3] clasifica los m´etodos de composici´on de reglas de transforma- ci´on en dos clases: m´etodos de composici´on interna y m´etodos de composici´on externa. La composici´on interna permite componer dos reglas de transformaci´on en una nueva regla de transformaci´on. La composici´on externa encadena una se- cuencia de reglas de transformaci´on, usando los modelos de salida de una regla de transformaci´on como modelos de entrada para otra regla de transformaci´on.
Oldevik [5] propone los diagramas de actividades de UML2 como un m´eto- do de composici´on externa de reglas de transformaci´on. En estos diagramas, las actividades representan las transformaciones que deben llevarse a cabo para derivar un producto. Estas actividades se encuentran anotadas mediante es- tereotipos, representando de este modo el tipo de transformaci´on que se debe realizar (i.e. modelo a modelo, modelo a texto, etc.). En esta aproximaci´on un producto es derivado mediante la ejecuci´on de las actividades que componen el flujo, en donde cada actividad recibe un modelo de entrada y genera un modelo de salida. Esta aproximaci´on no ofrece mecanismos de composici´on interna, los cuales son ´utiles para configurar activos de acuerdo con variantes seleccionados en una configuraci´on.
Wagelaar [3] propone un m´etodo de composici´on interna de reglas de trans- formaci´on escritas en ATL (ATLAS Transformation Language) [7] llamado su- perimposici´on de m´odulos. Un m´odulo de transformaci´on es una agrupaci´on de reglas de transformaci´on que transforman un modelo de un dominio a otro. En esta aproximaci´on las reglas de transformaci´on de un m´odulo son sobre impues- tas por reglas de transformaci´on de otro m´odulo. El resultado de la superim- posici´on es un nuevo m´odulo de transformaci´on, que contiene la uni´on de reglas de transformaci´on de los m´odulos sobre impuestos. En caso que existan reglas de transformaci´on con el mismo nombre entre los m´odulos a sobre imponer, se realiza un proceso de sobre escritura, en donde el contenido de la regla origi- nal es cambiado por el contenido de la regla sobre impuesta. Esta propuesta de composici´on de reglas de transformaci´on no ofrece mecanismos de composici´on externa y tampoco especifica c´omo es el proceso de derivaci´on de un producto de la l´ınea a trav´es de la sobre imposici´on de m´odulos, dependiendo de los variantes seleccionados en una configuraci´on.
Groher y Voelter [6] proponen el uso de aspectos en el desarrollo de las l´ıneas de productos orientadas por modelos. De este modo los aspectos interceptan llamados a reglas de transformaci´on y adicionan comportamiento. Estos aspectos se relacionan con variantes, condicionando el entretejido de los aspectos al estado de los variantes en la configuraci´on a derivar. Arboleda y Colegas [4] proponen modelos de decisi´on como m´etodo de composici´on interna y externa para reglas de transformaci´on, escritas en los lenguajes de transformaci´on Xtend y Xpand de oAW (openArchitectureWare) [11]. La composici´on interna se realiza usando los aspectos propuestos por Groher y Voelter. Adicionalmente, el modelo de decisi´on especifica la secuencia de modelos de transformaci´on que deben ser ejecutados para derivar un producto, la salida de un modelo de transformaci´on es pasada como entrada al siguiente modelo de transformaci´on. La propuesta de Arboleda y Colegas a diferencia de las anteriores, permite componer reglas de transformaci´on a nivel externo e interno, sin embargo su estrategia de composici´on se basa en funcionalidades espec´ıficas de los lenguajes de transformaci´on de oAW. Lo cual implica que la estrategia de composici´on no pueda ser utilizada en otros lenguajes de transformaci´on diferentes como por ejemplo ATL.
Las anteriores aproximaciones a la composici´on de reglas de transformaci´on presentan propuestas de composici´on diferentes, algunas utilizan aspectos, otras sobre escriben reglas de transformaci´on, etc. Esto se debe a que los m´etodos de composici´on se encuentran limitados a las funcionalidades de cada uno de los lenguajes de transformaci´on. En consecuencia es dif´ıcil migrar la estrategia de composici´on entre lenguajes de transformaci´on, puesto que, las estrategias de composici´on est´an dadas en t´erminos de funcionalidades espec´ıficas de los lenguajes de transformaci´on. El modelo de decisi´on propuesto en este art´ıculo es una generalizaci´on del trabajo realizado en [4], en el que se busca expresar de manera general un m´etodo de composici´on que no acople las reglas de trans- formaci´on con variantes y que pueda ser utilizado sobre cualquier lenguaje de reglas de transformaci´on.
3. Ejemplo Ilustrativo
A modo de ejemplo ilustrativo introduciremos el caso de estudio del admin- istrador de colecciones [4], el cual es una l´ınea de productos basada en los principios de la ingenier´ıa dirigida por modelos (MDE). Esta l´ınea de productos permite derivar productos que manejan colecciones de entidades. Un producto (Figura 1 (a)) que se puede derivar de esta l´ınea puede ser un colegio que admin- istra colecciones de estudiantes, los cuales tienen un c´odigo, nombre, direcci´on y correo. Otro producto que se podr´ıa derivar de esta l´ınea puede ser una tienda de discos (Figura 1 (b)) que administra colecciones de discos de m´usica, los cuales pueden tener un nombre, artista, g´enero y fecha de lanzamiento.
Figura 1. Ejemplos de productos derivados de la l´ınea de productos del administrador de colecciones.
La l´ınea de productos del administrador de colecciones tiene varios puntos de variaci´on, permitiendo derivar productos con caracter´ısticas particulares. Los puntos de variaci´on definen caracter´ısticas puntuales del producto que pueden variar, las posibles opciones que puede tomar un punto de variaci´on son llamadas variantes. Por ejemplo el caso de estudio del administrador de colecciones tiene un punto de variaci´on para el tipo de vista de informaci´on, la cual muestra la informaci´on de las entidades de la colecci´on. Este punto de variaci´on tiene dos variantes (Single y Grid ) que definen el tipo de vista de informaci´on. Una vista de informaci´on de tipo Single (Figura 1 (a)) muestra la informaci´on de una sola
entidad. La vista de informaci´on de tipo Grid (Figura 1 (b)) muestra en una tabla la informaci´on de todas las entidades que tiene la colecci´on.
En esta l´ınea de productos utilizamos tres metamodelos para represen- tar los dominios del sistema. El metamodelo del espacio del problema (Prob- lemSpaceMetamodel) representa el dominio de negocio y permite especificar la entidad que va a ser administrada. El metamodelo del n´ucleo (KernelMetamod- el) representa a bajo nivel la entidad a administrar y las operaciones que se pueden llevar a cabo sobre el administrador de colecciones. El metamodelo de interfaz gr´afica de usuario (GuiMetamodel) representa las vistas con las que podr´a interactuar un usuario para realizar operaciones sobre el sistema.
Figura 2. Proceso de derivaci´on en el caso de estudio del administrador de colleciones.
La Figura 2 presenta de manera general el proceso de derivaci´on en la l´ınea de productos del administrador de colecciones. El proceso de derivaci´on se re- aliza de manera incremental partiendo de un modelo del espacio del problema (ProblemSpaceModel). A este modelo se le aplican dos transformaciones de mod- elo a modelo. Una para convertir el modelo del espacio del problema a modelo del n´ucleo (KernelModel) y la otra para convertirlo a modelo de interfaz gr´afica de usuario (GuiModel). A cada uno de estos modelos generados ( KernelModel, GuiModel ) se le aplica una transformaci´on de modelo a texto, generando de este modo el c´odigo fuente del producto.
La transformaci´on del modelo del espacio del problema al modelo de interfaz gr´afica se encuentra compuesto por cuatro reglas de transfor- maci´on: ps2gui, createInformationView, createGridInformationView y createSingleInformationView. La regla de transformaci´on ps2gui transforma los elementos del modelo del espacio del problema a elementos del modelo de in- terfaz gr´afica. La regla de transformaci´on createInformationView crea la vista de informaci´on en el modelo GUI, esta vista muestra la informaci´on de las enti- dades en la colecci´on. La regla de transformaci´on createGridInformationView
crea una vista de informaci´on, en donde la informaci´on de todas las entidades de la colecci´on es mostrada mediante una tabla. La regla de transformaci´on createSingleInformationView crea una vista de informaci´on en la cual se muestra la informaci´on de una entidad.
La ejecuci´on de las reglas de transformaci´on que crean los elementos vari- ables de la l´ınea depende de los variantes seleccionados en la configuraci´on por derivar. Por ejemplo, la regla de transformaci´on createSingleInformationView ser´a aplicada en el proceso de transformaci´on solo si el variante Single se encuen- tra seleccionado en la configuraci´on. Esto mismo sucede con la regla de trans- formaci´on createGridInformationView, cuya ejecuci´on depende de la selecci´on del variante Grid.
4. Estrategia Global de soluci´on
Nuestro modelo de decisi´on permite componer reglas de transformaci´on a nivel externo e interno, especificando el conjunto y orden de reglas de transfor- maci´on que deben ser aplicadas para derivar un producto particular de la l´ınea.
Este modelo de decisi´on por ser una abstracci´on no puede ser ejecutado por un motor de transformaci´on. Sin embargo se pueden definir transformaciones entre el modelo de decisi´on y estrategias concretas de composici´on en los lenguajes de transformaci´on, las cuales pueden ser ejecutados por su respectivo motor de transformaci´on.
Figura 3. Composici´on externa por el modelo de decisi´on.
A nivel de composici´on externa de reglas de transformaci´on el modelo de decisi´on propuesto permite definir la secuencia de transformaciones que deben aplicarse para derivar un producto de manera incremental. Para cada una de estas transformaciones se puede especificar sus modelos de entrada y salida; los modelos de salida pueden ser utilizados como modelos de entrada para otras
transformaciones. La Figura 3 presenta un ejemplo de composici´on externa de reglas de transformaci´on para el caso de estudio del administrador de colecciones (ejemplo ilustrado en la secci´on anterior). Este ejemplo muestra dos transforma- ciones: problemSpace2gui (transformaci´on de modelo a modelo) y gui2code (transformaci´on de modelo a texto). La primera transformaci´on que se aplica en este ejemplo es problemSpace2gui, la cual transforma un modelo del espacio del problema a un modelo GUI, el cual representa La interfaz gr´afica con la que interact´ua el usuario. La siguiente transformaci´on en ejecutarse es gui2code, la cual recibe el modelo GUI que fue generado por la transformaci´on anterior y convierte este modelo a c´odigo fuente.
Figura 4. Composici´on interna por el modelo de decisi´on.
A nivel de composici´on interna de reglas de transformaci´on, nuestro modelo de decisi´on permite especificar las reglas de transformaci´on que deben com- ponerse dependiendo del estado de los variantes en la configuraci´on a derivar.
La Figura 4 presenta un ejemplo de composici´on interna para el caso de estu- dio del administrador de colecciones. En este ejemplo el grupo de transforma- ciones TransformProblemSpace2gui se encuentra compuesto por dos reglas de transformaci´on: ps2gui y createInformationView. La regla de transformaci´on ps2gui se encarga de transformar un modelo del espacio del problema a un mod- elo de interfaz gr´afica de usuario, adicionalmente, esta regla utiliza la regla de transformaci´on createInformationView para crear la vista de informaci´on del sistema.
Dado que la vista de informaci´on puede variar entre Single y Grid se deben realizar dos procesos de composici´on de reglas de transformaci´on dependiendo de los variantes seleccionados en la configuraci´on. Por ejemplo, si el variante Grid
se encuentra seleccionado, entonces se deben componer las reglas de transfor- maci´on del grupo GridViewModule con las reglas de transformaci´on del grupo TransformProblemSpace2gui. Como resultado de la composici´on de estos dos grupos de reglas de transformaci´on se debe aplicar en alg´un punto la regla de transformaci´on createGridInformationView, la cual crea una vista de infor- maci´on de tipo Grid.
4.1. Metamodelo de Decisi´on
Hemos creado un metamodelo para guiar la creaci´on de los modelos de de- cisi´on, que representa los conceptos de composici´on interna y externa que deben realizarse para derivar un producto de la l´ınea. La Figura 5 presenta el meta- modelo de decisi´on propuesto.
Figura 5. Metamodelo de decisi´on.
Un Modelo de decisi´on se encuentra compuestos por varios modelos de trans- formaci´on, los cuales representan las transformaciones entre modelos que deben realizarse en el proceso de derivaci´on de un producto. Los modelos de transfor- maci´on pueden ser de dos tipos: transformaci´on de modelo a modelo ´o transfor- maci´on de modelo a texto. Las transformaciones de modelo de modelo reciben un modelo de entrada y generan un modelo de salida. Las transformaciones de modelo a texto reciben un modelo de entrada y generan texto a partir de este modelo. El orden en que son aplicados estos modelos de transformaci´on se en- cuentra definido por las relaciones first (primer modelo de transformaci´on en aplicarse) y next (siguiente modelo de transformaci´on en aplicarse). Para cada modelo de transformaci´on se definen sus modelos de entrada y salida, los mod- elos de salida son creados por transformaciones de modelo a modelo y pueden ser utilizados como modelos de entrada para otros modelos de transformaci´on.
Los conceptos descritos anteriormente son utilizados para representar los mecanismos de composici´on externa. En el ejemplo presentado en la Figu- ra 3 se observan dos modelos de transformaci´on, uno de modelo a mode- lo (problemSpace2gui) y otro de modelo a texto (gui2code). El modelo de transformaci´on problemSpace2gui recibe como entrada un modelo llamado problemSpaceModel y genera un modelo guiModel, el cual es pasado como entra- da al modelo de transformaci´on gui2code. El orden de estos modelos es definido por las relaciones first y next.
Nuestros modelos de transformaci´on se encuentran compuestos por m´odulos de transformaci´on, los cuales son agrupaciones de reglas de transformaci´on. Cada modelo de transformaci´on tiene un m´odulo principal y varios m´odulos variables.
El modulo principal siempre se aplica en la derivaci´on de un producto y tiene la responsabilidad de crear los elementos comunes de la l´ınea. Los m´odulos variables crean los elementos variables y se relacionan con el m´odulo principal.
Los m´odulos variables tienen asociada una condici´on de ejecuci´on expresada en t´erminos de los estados (seleccionado, no seleccionado) de los variantes de la l´ınea y determina si el modulo variable va a estar relacionado con su m´odu- lo principal. De este modo si la condici´on de ejecuci´on se resuelve de manera verdadera, las reglas de transformaci´on del m´odulo variable se relacionaran con las reglas de transformaci´on del m´odulo principal. En el m´etodo de composici´on interno no se especifica si las reglas de transformaci´on del m´odulo variable reem- plazan o complementan las reglas de transformaci´on del modulo principal. Esta decisi´on depende de c´omo hayan sido dise˜nadas las reglas de transformaci´on y de las funcionalidades espec´ıficas del lenguaje de transformaci´on que se utilice.
Los conceptos m´odulo de transformaci´on y condici´on de ejecuci´on son uti- lizados para representar el mecanismo de composici´on interna en el modelo de decisi´on. En la figura Figura 4 presentamos un ejemplo de composici´on inter- na, para este ejemplo el modelo de transformaci´on problemSpace2gui tiene un m´odulo principal (TransformProblemSpace2gui) y dos m´odulos variables (GridViewModule y singleViewModule). Estos m´odulos variables se encuentran relacionados con el m´odulo principal. La composici´on interna de reglas de trans- formaci´on se realizar´a siempre y cuando se cumpla la condici´on de ejecuci´on que tiene asociada cada m´odulo variable, por ejemplo, en caso que el variante Grid se encuentre seleccionado en la configuraci´on, la condici´on de ejecuci´on que tiene asociada el m´odulo variable GridViewModule se resolver´a de manera verdadera, lo cual implica que se deben componer las reglas de transformaci´on del m´odu- lo principal TransformProblemSpace2gui con las reglas de transformaci´on del m´odulo variable GridViewModule.
5. Modelo de Decisi´on sobre Lenguajes de transformaci´on espec´ıficos
5.1. Modelo de decisi´on en OAW
oAW (openArchitectureWare) [11] es un framework Java para construir apli- caciones utilizando el enfoque de desarrollo de software dirigido por modelos.
Este framework expone una serie de lenguajes y herramientas que permiten:
validar modelos, transformar modelos a modelos, transformar modelos a texto, entre muchas otras funcionalidades.
Figura 6. Proceso de derivaci´on en OAW
La Figura 6 presenta la estrategia general de derivaci´on en este framework usando nuestro modelo de decisi´on. El modelo de decisi´on es transformado a un Workflow de oAW el cual define la secuencia de actividades que deben llevarse a cabo para derivar un producto, por ejemplo: cargar modelos, ejecutar reglas de transformaci´on, serializar modelos, etc. Dadas las funcionalidades que ofrecen los workflow, se pueden derivar productos especificando la configuraci´on de estos.
Los lenguajes de transformaci´on de oAW soportan aspectos, de este modo se pueden definir reglas de transformaci´on que interceptan otras reglas de transfor- maci´on. La composici´on interna de reglas de transformaci´on puede ser definida a trav´es de estos aspectos, de esta manera las reglas de transformaci´on crean los elementos comunes y son interceptadas por aspectos que crean los elemen- tos variables de la l´ınea. La ejecuci´on de estos aspectos depende del estado de los variantes en la configuraci´on a derivar. La estrategia de derivaci´on concreta que se utiliza en este framework a trav´es de modelos de decisi´on se describe detalladamente en [4].
La Figura 7 presenta el metamodelo de workflows de oAW, que definimos para realizar la transformaci´on del modelo de decisi´on a representaciones concretas sobre este framework. El proceso de transformaci´on se resume a continuaci´on:
Los modelos de transformaci´on junto con sus m´odulos principales son transfor- mados a componentes invokeRule, encargados de invocar reglas de transforma- ci´on, las cuales pueden ser de tipo modelo de a modelo (M2MTransformation)
´o modelo a texto (M2TTransformation). Los m´odulos variables junto con sus condiciones de ejecuci´on son transformados a componentes ExecuteAspect los cuales se encargan de especificar los aspectos que se ejecutan dependiendo de los variantes seleccionados en la configuraci´on. El elemento Configuration del modelo de decisi´on se transforma a un elemento LoadConfiguration en el mod- elo de workflow, especificando la configuraci´on que debe ser cargada para la derivaci´on del producto.
Figura 7. Metamodelo Workflow de OAW
5.2. Modelo de decisi´on en ATL
En ATL, el proceso de composici´on y derivaci´on de productos es diferente.
El modelo de decisi´on es transformado a un script ANT [12] dependiendo de la configuraci´on que se desee derivar. Este script ANT tiene una serie de tar- eas AM3 (ATLAS MegaModel Management) [13], las cuales permiten ejecutar operaciones relacionadas con modelos, por ejemplo: cargar un modelo, invocar reglas de transformaci´on, entre otras. El script de ANT generado contiene las operaciones que deben llevar a cabo para derivar un producto un producto es- pec´ıfico. Este proceso de derivaci´on puede observarse en la Figura 8.
Figura 8. Proceso de derivaci´on en ATL
En ATL la composici´on externa se realiza a trav´es de las actividades descritas en al archivo ANT, en donde se especifican los modelos de transformaci´on que deben ejecutarse para derivar un producto. La composici´on interna se realiza mediante la superimposici´on de m´odulos, estrategia planteada por Wagelaar en [3]. De este modo las reglas de transformaci´on de un m´odulo ser´an reemplazadas por reglas de transformaci´on del m´odulo sobre impuesto. Esta estrategia de derivaci´on de productos utilizando nuestro modelo de decisi´on es descrita en m´as detalle en [14].
Figura 9. Metamodelo ANT
La Figura 9 muestra una versi´on simplificada del metamodelo ANT que se propone en [14]. El modelo de decisi´on es transformado a un modelo conforme a este metamodelo dependiendo de los variantes que se encuentren selecciona- dos en la configuraci´on a derivar. Los modelos de transformaci´on junto con su m´odulo principal pertenecientes al modelo de decisi´on, son transformados a tar- eas AM3ATL, las cuales permiten invocar reglas de transformaci´on escritas en ATL. Los m´odulos variables que ser´an aplicados en el proceso de derivaci´on son transformados a tareas AM3Superimpose, las cuales representan los m´odulos que ser´an sobre impuestos a las reglas de transformaci´on AM3ATL.
6. Conclusiones y Trabajo Futuro
En este art´ıculo hemos presentado un modelo de decisi´on como mecanismo de composici´on de reglas de transformaci´on. El modelo de decisi´on propuesto facili- ta la composici´on externa e interna de reglas de transformaci´on, determinando el conjunto y orden de reglas de transformaci´on que deben ser aplicadas para derivar un producto espec´ıfico de la l´ınea, de acuerdo de variantes seleccionados en configuraciones. Los modelos de decisi´on se expresan en t´erminos de concep- tos del dominio de composici´on de reglas de transformaci´on. De este modo, no se tiene en cuenta funcionalidades espec´ıficas de los lenguajes de transformaci´on para expresar composici´on de reglas de transformaci´on. En consecuencia, Las es- trategias de composici´on que se definan con nuestro modelo de decisi´on pueden ser llevadas a estrategias de composici´on concretas sobre cada lenguaje de trans- formaci´on a trav´es de transformaciones, tal y como se ejemplifico para oAW y ATL. Sin embargo, es necesario explorar c´omo integrar los modelos de decisi´on sobre otros lenguajes de transformaci´on como QVT [15], VIATRA [16], etc.
Antes se deb´ıa expresar una estrategia de composici´on diferente por cada lenguaje de transformaci´on, lo cual implicaba problemas de portabilidad para la estrategia de composici´on formulada. Ahora con el uso de los modelos de
decisi´on, la estrategia de composici´on de reglas de transformaci´on se expresa de manera abstracta, y a trav´es de transformaciones se puede obtener de manera autom´atica la estrategia de composici´on concreta sobre cualquier lenguaje de transformaci´on que se desee. De este modo, nuestro modelo de decisi´on facilita la portabilidad de las estrategias de composici´on permitiendo llevar la soluci´on de composici´on de un lenguaje de transformaci´on a otro.
Para trabajo futuro exploraremos las transformaciones que deban realizarse para integrar otros lenguajes de transformaci´on con nuestro modelo de decisi´on.
Tambi´en trabajaremos en mecanismos de composici´on de reglas de transforma- ci´on, cuando existen restricciones entre los variantes de una l´ınea de productos.
Por ejemplo, la selecci´on simult´anea de dos variantes en una configuraci´on podr´ıa implicar una composici´on de reglas de transformaci´on diferente a la composici´on de reglas de transformaci´on que se realiza si un solo variante esta seleccionado.
Referencias
1. Bosch, J.: Design and use of software architectures: adopting and evolving a product-line approach. ACM Press/Addison-Wesley Publishing Co., New York, NY, USA (2000)
2. Czarnecki, K., Antkiewicz, M.: Mapping features to models: A template approach based on superimposed variants. In Gl¨uck, R., Lowry, M.R., eds.: GPCE. Volume 3676 of Lecture Notes in Computer Science., Springer (2005) 422–437
3. Wagelaar, D.: Composition techniques for rule-based model transformation lan- guages. In: First International Conference on Theory and Practice of Model Trans- formations (ICMT). (2008)
4. Arboleda, H., Romero, A., Casallas, R., Royer, J.: Product derivation in a model- driven software product line using decision models. In: Proceedings of the 12th Iberoamerican Conference on Requirements Engineering and Software Environ- ments, ideas, Medell´ın, Colombia (April, 2009)
5. Oldevik, J.: Transformation composition modelling framework. (2005)
6. Groher, I., Voelter, M.: Aspect-oriented model-driven software product line engi- neering. (2008)
7. Jouault, F., Kurtev, I.: Transforming models with atl. In Bruel, J.M., ed.: MoDELS Satellite Events. Volume 3844 of Lecture Notes in Computer Science., Springer (2005) 128–138
8. Forster, T., Muthig, D., Pech, D.: Understanding decision models visualization and complexity reduction of software variability. In Heymans, P., Kang, K.C., Metzger, A., Pohl, K., eds.: VaMoS. ICB Research Report (2008) 111–119
9. Dhungana, D., Gr¨unbacher, P., Rabiser, R.: Decisionking: A flexible and extensible tool for integrated variability modeling. In Pohl, K., Heymans, P., Kang, K.C., Metzger, A., eds.: VaMoS. Volume 2007-01 of Lero Technical Report. (2007) 119–
127
10. Atkinson, C., Bayer, J., Muthig, D.: Component-based product line development:
the kobra approach. In: Proceedings of the first conference on Software product lines : experience and research directions, Norwell, MA, USA, Kluwer Academic Publishers (2000) 289–309
11. OpenArchitectureWare: Openarchitectureware. http://www.
openarchitectureware.org (2009)
12. Apache: Ant. http://ant.apache.org/ (2009)
13. Allilaire, F., B´ezivin, J., Jouault, F., Kurtev, I.: Atl - eclipse support for model transformation. In: Proceedings of the Eclipse Technology eXchange workshop (eTX) at the ECOOP 2006 Conference, Nantes, France (2006)
14. Kling, W.: Using decision models on atl. (2009)
15. Jouault, F., Kurtev, I.: On the architectural alignment of atl and qvt. In: SAC
’06: Proceedings of the 2006 ACM symposium on Applied computing, New York, NY, USA, ACM (2006) 1188–1195
16. Balogh, A., Varr´o, D.: Advanced model transformation language constructs in the viatra2 framework. In: SAC ’06: Proceedings of the 2006 ACM symposium on Applied computing, New York, NY, USA, ACM (2006) 1280–1287