• No se han encontrado resultados

Modelos de Decisión Como Mecanismo de Composición de Reglas de Transformación

N/A
N/A
Protected

Academic year: 2021

Share "Modelos de Decisión Como Mecanismo de Composición de Reglas de Transformación"

Copied!
15
0
0

Texto completo

(1)

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

(2)

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

(3)

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.

(4)

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.

(5)

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

(6)

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

(7)

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

(8)

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

(9)

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.

(10)

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 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.

(11)

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.

(12)

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 as detalle en [14].

(13)

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 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

(14)

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)

(15)

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

Referencias

Documento similar

[r]

[r]

La invalidez en el MMPI por no respuestas no se considera criterio positivo (sólo se puede considerar tal posibilidad en caso de daño neurológico que justifique tal estilo

Pero antes hay que responder a una encuesta (puedes intentar saltarte este paso, a veces funciona). ¡Haz clic aquí!.. En el segundo punto, hay que seleccionar “Sección de titulaciones

El contar con el financiamiento institucional a través de las cátedras ha significado para los grupos de profesores, el poder centrarse en estudios sobre áreas de interés

Fuente de emisión secundaria que afecta a la estación: Combustión en sector residencial y comercial Distancia a la primera vía de tráfico: 3 metros (15 m de ancho)..

En nuestra opinión, las cuentas anuales de la Entidad Pública Empresarial Red.es correspondientes al ejercicio 2010 representan en todos los aspectos significativos la imagen fiel

En nuestra opinión, las cuentas anuales de la Entidad Pública Empresarial Red.es correspondientes al ejercicio 2012 representan en todos los aspectos