Automatic derivation of behavior of products in a software product line

Anuncio
1120
IEEE LATIN AMERICA TRANSACTIONS, VOL. 12, NO. 6, SEPTEMBER 2014
Automatic Derivation of Behavior of Products
in a Software Product Line
A. González, C. Luna, F. Zorzan and N. Szasz
Abstract— Models and model transformations constitute the
basis of a set of software development techniques known as ModelDriven Development. In this context, UML State Machines have
great potential for modeling the behavior of systems. In this work
we are concerned with modeling the behavior of Product Lines,
and their individual products. We present a process for deriving
automatically a UML State Machine that models the behavior of a
specific product from the UML model of a product line, via a
model transformation based on Query/View/Transformation. The
process directly involves the use of Feature Models in order to
determine which elements of a (extended) State Machine
describing a product family, will remain in the instantiation.
Keywords— State Machines, Software Product Lines, QVT,
Feature Models.
E
I. INTRODUCCIÓN
L DESARROLLO dirigido por modelos (Model-Driven
Development, MDD) [1], [2], [3] es una metodología de la
ingeniería de software que idealmente eleva el desarrollo de
software a un mayor nivel de abstracción, mediante la
utilización de modelos y transformaciones de modelos durante
todo el proceso de desarrollo. Los modelos proporcionan
abstracciones de un sistema del mundo real y permiten el
razonamiento acerca de ciertos aspectos de ese sistema,
ignorando otros detalles no relevantes. A menudo, es necesario
realizar transformaciones entre diferentes modelos de un
sistema en un nivel de abstracción equivalente, por ejemplo,
entre un modelo estructural y uno de comportamiento. En
otros casos, una transformación convierte modelos de
diferente nivel de abstracción; por lo general reduciendo el
nivel de abstracción mediante la incorporación de detalles
adicionales sobre un modelo base. Los lenguajes de modelado
y las herramientas de transformación de modelos y de
generación de código permiten disminuir la brecha existente
entre el dominio de los problemas y el de las soluciones.
Gran parte de las técnicas de MDD utilizan UML [4],
lenguaje incorporado como estándar de facto a nivel
académico e industrial, que permite la descripción de
múltiples aspectos de un sistema. En particular, las Máquinas
de Estados (StateCharts, SCs) [5] constituyen un mecanismo
adecuado para definir el comportamiento de sistemas mediante
una representación gráfica.1
A. Gonzalez, Universidad Nacional de Río Cuarto, Río Cuarto,
Argentina, agonzalez@dc.exa.unrc.edu.ar
F. Zorzan, Universidad Nacional de Río Cuarto, Río Cuarto, Argentina,
fzorzan}@dc.exa.unrc.edu.ar
C. Luna, Facultad de Ingeniería, Universidad de la República,
Montevideo, Uruguay, cluna@fing.edu.uy
N. Szasz, Universidad ORT Uruguay, Uruguay, szasz@ort.edu.uy
Una Línea de Productos de Software (Software Product
Line - SPL) [6], [7], [8] representa un conjunto de sistemas (o
productos) que comparten funcionalidades y satisfacen, en
general, las necesidades de un segmento particular del
mercado. Los diferentes productos de la línea se obtienen
incorporando funcionalidades distintivas (variabilidad) a un
conjunto de funcionalidades comunes a todos los productos de
la línea, denominado núcleo. En nuestra investigación,
aplicamos MDD a las SPLs con el objetivo de automatizar la
obtención de un modelo UML, que representa el
comportamiento de un producto determinado, a partir de un
modelo de la SPL, que representa el comportamiento de una
particular familia de productos. Si bien existen trabajos
previos que aplican MDD a las SPLs, como por ejemplo [9],
[10], [11], [12], [13], ninguno de éstos tiene por objetivo la
derivación de especificaciones de comportamiento extendidas
con variabilidades.
El presente artículo es una continuación de los siguientes
trabajos previamente publicados por los autores: [14], [15],
[16], en los cuales se propone una extensión de las SCs para
especificar SPLs y obtener productos concretos utilizando
Modelos de Funcionalidades [17], [18]. En [14] se presenta la
propuesta general y se desarrollan las primeras
formalizaciones; en [15] se especifica el problema como un
sistema basado en reglas, en el cual se prueban las propiedades
de confluencia y terminación; y en [16] se propone una
implementación parcial de dichas reglas mediante una
transformación
utilizando
el
lenguaje
estándar
Query/view/Transformation Relations (QVT-R) [19].
Este trabajo presenta la automatización completa del
proceso de instanciación del comportamiento de productos
específicos de una SPL, a partir de los resultados descriptos,
previamente alcanzados. Una versión preliminar de este
artículo es [20] y una versión extendida es la tesis [21], donde
pueden consultarse en detalle todos los resultados producidos
en esta investigación y reportados aquí.
La organización del resto de este trabajo es como sigue. En
la sección II se describen brevemente las SPL, las SCs y los
Modelos de Funcionalidades. En la sección III se introducen
las SCs con variabilidad en sus componentes esenciales, y la
relación entre éstas y los Modelos de Funcionalidades, para
especificar el comportamiento de una SPL. Asimismo, se
detalla el proceso de transformación de una SC con
variabilidad en una SC concreta que especifica el
comportamiento de un producto particular de una SPL. En la
sección IV se presenta un caso de estudio basado en tecnología
de telefonía móvil. Finalmente, en la sección V se discuten los
trabajos relacionados, las conclusiones y los trabajos futuros.
GONZALEZ et al.: AUTOMATIZATION OF THE INSTANTIATION
II. NOCIONES PRELIMINARES
En esta sección se presentan brevemente los principales
conceptos referentes a las áreas de base que dan soporte al
trabajo. Estas son: las Líneas de Productos de Software, las
Máquinas de Estados y los Modelos de Funcionalidades.
Clements y Northrop definen las SPLs en [6] como: “un
conjunto de sistemas de software (productos) que comparten
un conjunto de características, las cuales satisfacen las
necesidades específicas de un dominio o segmento particular
de mercado, y que se desarrollan a partir de un sistema común
(core) de una manera preestablecida”. Los productos de una
misma SPL poseen un conjunto de características en común,
pero cada producto difiere de otro en el conjunto de
funcionalidades opcionales que implementa. Esta diferencia
funcional entre productos de una SPL es conocida como la
variabilidad en una SPL [7]. El manejo de la variabilidad
juega un papel fundamental en una SPL y constituye un
problema en sí mismo [22], [23]. Es necesario tener en cuenta
desde el inicio del desarrollo posibles variaciones a ser
incluidas en los productos finales. Además, requiere utilizar
una notación adecuada para representarla y debe ser
explícitamente manejada a través del proceso entero de
desarrollo. El manejo de la variabilidad permite el reuso de
componentes, y normalmente es representada a través de
características (features). Una característica puede ser un
requerimiento funcional específico, una combinación de ellos
o incluso podría estar relacionada a requerimientos no
funcionales. En el contexto de los sistemas reactivos, las
distintas funcionalidades o características de un sistema
introducen la visión de un conjunto de productos diferentes,
según sea el conjunto de funcionalidades subyacentes. Un
mecanismo para modelar este tipo de sistemas en una etapa
prematura del desarrollo (diseño) es a través de las máquinas
de estados. En [24] se pueden observar diferentes técnicas que
dan soporte al manejo de la variabilidad y a la derivación de
productos. El presente trabajo hace uso del concepto de
variabilidad negativa, es decir, a partir de una especificación
completa de la familia de productos, se eliminarán
componentes de la especificación que corresponden a una
funcionalidad no deseada en el producto final.
Una SC es una representación visual de un autómata de
estados finito con jerarquía de estados e historia. Estas
máquinas fueron introducidas por Harel [5] e incorporadas a
las diferentes versiones de UML con algunas variaciones. La
principal característica de las SCs es que sus estados pueden
refinarse, definiendo así una jerarquía de estados. La
descomposición de un estado puede ser secuencial o paralela.
En la primera, un estado se descompone en un autómata,
mientras que en la segunda se descompone en dos o más
autómatas que se ejecutan concurrentemente. Las transiciones
son dirigidas. Una transición (t) está formada por su nombre,
el estado origen, el evento que la “dispara” (e), la condición de
disparo (c), la secuencia de acciones (α), el estado destino y el
tipo de historia del estado destino, respectivamente. La
notaciσn grαfica utilizada es t: e, c / α.
Los Modelos de Funcionalidades o Características (Feature
Models, FMs) se utilizan fundamentalmente para describir las
1121
propiedades o funcionalidades (features) obligatorias,
opcionales, alternativas y disyuntivas dentro de un dominio
[17], [25]. Los FMs permiten identificar las funcionalidades
comunes y las variantes entre los productos de una SPL, y
establecer relaciones entre las mismas. Aunque hay múltiples
notaciones para describir un FM nos basamos en la propuesta
por Czarnecki en [17]. La Fig. 1 describe un posible FM en el
dominio de la tecnología de teléfonos móviles (TMs) usando
la notación de Czarnecki. Por ejemplo, todos los TMs deben
tener un directorio telefónico (relación obligatoria); un TM
puede tener cámara digital o no (relación opcional); un TM
puede tener búsqueda en el directorio telefónico por búsqueda
directa, por strings o ambas (relación disyuntiva); si un TM
dispone de cámara fotográfica, esta deberá ser de 10 o 12mpx,
pero no ambas resoluciones (relación alternativa).
Figura 1. FM de un Teléfono Móvil.
Em [15] un FM es definido formalmente como una
estructura de árbol representada como una tupla: (Funcs, f0,
Obli, Opc, Alt, rel-Or). También se define una configuración
(instanciación) de un FM conffm = (F, R), con F ⊂ Funcs y
R el conjunto de las aristas, como un subárbol que caracteriza
las funcionalidades de un producto específico. Las
funcionalidades obligatorias (funcionalidades comunes a la
familia de productos) deben pertenecer a cualquier
configuración.
III. PROCESO DE TRANSFORMACIÓN
El proceso de transformación se divide en tres partes: (1) la
definición de la variabilidad de una SPL; (2) la definición
formal de un método para la generación de productos; y (3) la
implementación del mecanismo anterior. La definición de la
variabilidad se basa en una extensión de máquinas de estados
que admiten componentes opcionales (máquinas de estados
con variabilidad), de tal manera que, junto a los FMs, definen
la familia de productos de una línea. Posteriormente, y
1122
utilizando las definiciones anteriores, se presenta un
mecanismo para la obtención de productos basado en reglas y
un algoritmo de aplicación de las mismas. Por último, se
implementa con QVT-R el mecanismo anterior como un
proceso de transformación de modelos, desde máquinas de
estados con variabilidad a máquinas de estados concretas. La
fig. 2 representa gráficamente el proceso.
Figura 2. Proceso de Transformación.
A. Variabilidad en las SPLs
Existen extensiones de algunos modelos de UML para la
especificación de variabilidades, por ejemplo [26], [27], [28],
[29], [22]. En este trabajo utilizamos nuestra propuesta de
[15], la cual está basada en la aplicación de un conjunto de
reglas que especifican la semántica al eliminar los elementos
opcionales de una SC. En dicho trabajo las SCs son extendidas
con elementos opcionales o variantes, y luego se establece la
relación que vincula a estos elementos con las funcionalidades
de un FM. Llamaremos StateCharts* (SCs*) a las SCs
extendidas. Los estados y las transiciones opcionales son
destacados gráficamente con líneas de puntos.
La vinculación entre un FM y una SC se realiza a través de
una función (Imp) que representa la asociación entre los
elementos variables de una SC* con las funcionalidades de un
FM. Dado un FM (Funcs, Obl, Opc, Alt, Disy) y una SC*, la
función Imp tiene tipo Imp : Funcs → Set(ElemVar), donde
ElemVar es el conjunto de todos los elementos opcionales de
la SC*. Imp(F) retorna el conjunto de elementos opcionales
que implementan el comportamiento de la funcionalidad F.
IEEE LATIN AMERICA TRANSACTIONS, VOL. 12, NO. 6, SEPTEMBER 2014
toma como parámetro un modelo de una SC* con los
elementos que deben eliminarse, marcados previamente sin la
utilización de procesos automáticos. Este método se torna
impráctico cuando se trata con modelos complejos. Además, la
introducción de un cambio en el conjunto de funcionalidades
deseadas para un producto determinado (una nueva instancia
del FM correspondiente), implica una actualización manual
del modelo SC* fuente de la transformación, lo cual
incrementa las posibilidades de introducir errores en la
marcación.
En [20] se propone una optimización con respecto a [16].
La transformación considera, además de una SC*, el conjunto
de funcionalidades que deben permanecer en la SC concreta.
La automatización de este paso brinda practicidad al
mecanismo y reduce los errores que, en particular, pueden
surgir al tener que efectuar manualmente la marcación de los
elementos que deben eliminarse. En [20], la implementación
en QVT-R considera, por un lado, un parámetro adicional a la
transformación (Param_funcionalidades) que representa a una
instancia de un FM, y por otro lado, un mecanismo para
determinar la asociación entre las funcionalidades y los
elementos de una SC*. Para esto último, se extendió el
metamodelo de las SCs* con un atributo adicional a los
estados y transiciones (features) que admita la especificación
de un conjunto de nombres de funcionalidades. Se debe tener
en cuenta que un estado o transición opcional puede
implementar a más de una funcionalidad. Este mecanismo
implementa la función Imp. Dada una SC* y un conjunto de
funcionalidades (instancia de un FM), la implementación
retorna una SC concreta, tal como se muestra en la Fig. 3. Se
transforman, por un lado, los elementos sintácticos no
opcionales (obligatorios), y por otro lado, los elementos
opcionales que tengan al menos una funcionalidad asociada
que pertenezca a Param_funcionalidades.
B. Generación de productos
Dada una SC*, una instancia de un FM permite determinar
cuáles elementos opcionales deben permanecer y cuáles
deberán ser eliminados para obtener el modelo del producto
específico. En [15] se definen, por un lado, reglas que
especifican la semántica de la eliminación de cada uno de los
posibles casos, y por otro, una estrategia de aplicación de
dichas reglas. El método de obtención de productos se
presenta como un sistema de reescritura basado en reglas, el
cual especifica cómo se instancian los prodcutos de una SPL a
partir de un algoritmo que refleja la estrategia de aplicación de
las reglas
C. Implementación
En [16] se propone una implementación parcial de dichas
reglas utilizando el lenguaje QVT-R. Allí, la transformación
Figura 3. Implementación de la Transformación.
La instancia de un FM (Param_funcionalidades) es
introducida dentro del modelo origen tal como se puede ver en
la Fig. 5 de la sección [Caso de Estudio]. El metamodelo es
extendido
con
una
nueva
EClass
denominada
Param_funcionalidades. El atributo features de los estados y
las transiciones es implementado con una EReference sobre
GONZALEZ et al.: AUTOMATIZATION OF THE INSTANTIATION
1123
las EClass Vertex y Transition de tal manera que las
funcionalidades sean referenciadas desde features.
IV. CASO DE ESTUDIO
En esta sección mostramos un fragmento de un caso de
estudio basado en tecnología de telefonía móvil. El ejemplo
completo puede verse en [21]. Los archivos necesarios para
ejecutar
la
transformación
están
disponibles
en
https://www.dropbox.com/sh/h8kj76snr4x3l26/TvH9UvLq2h.
Considérese la SC* de la Fig. 4. Las funcionalidades
involucradas en este ejemplo parcial de un teléfono móvil
(TM) son las relacionadas al envío de mensajes de texto. Los
mismos pueden clasificarse en mensajes de sólo texto,
mensajes de voz y mensajes con contenido multimedia. A su
vez, estos últimos pueden contener una imagen y/o un video
y/o un sonido de tipo polifónico. Las relaciones entre estas
funcionalidades se muestran en el FM de la Fig. 1. El atributo
features de los estados y las transiciones opcionales debe ser
configurado de acuerdo a la función Imp, como se muestra
también en la Fig. 4 mediante etiquetas con los nombres de las
funcionalidades involucradas. Por ejemplo, la funcionalidad se
asocia tanto al estado SeleccSonPol como a la transición que
va desde TipoMultimedia a SeleccSonPol.
Figura 5. Modelo origen de la transformación en formato Ecore de un
Teléfono Móvil.
A. Ejemplo 1: Un TM sin sonido polifónico
El FM de la Fig. 1 puede configurarse para caracterizar a
un TM sin sonidos polifónicos, es decir, conffm = ({Adm.
Mensajes, Multimedia, Imágenes, Videos}, R). Por
simplicidad, sólo notamos las funcionalidades involucradas en
la SC* del ejemplo. La transformación recibe como
parámetros la SC* de la Fig. 4 y el conjunto
Param_funcionalidades = {Adm. Mensajes, Multimedia,
Imágenes, Videos}.
Los únicos elementos opcionales de la SC* que no tienen al
menos una funcionalidad asociada que pertenezca a
Param_funcionalidades son el estado SeleccSonPol y la
transición TDerTipoMultimedia-SeleccSonPol, por lo que no
son transformados al modelo SC resultante. Las transiciones
opcionales de entrada y salida al estado SeleccSonPol también
desaparecen. El modelo resultante se muestra en la Fig. 6.
Figura 4. SC* parcial de un Teléfono Móvil.
En la Fig. 5 se muestra la SC* del ejemplo en formato
Ecore, con la funcionalidad Adm. Mensajes asociada al estado
opcional Mensaje Nuevo.
B. Ejemplo 2: Un TM sin mensajes Multimediales
El FM de la Fig. 1 puede configurarse también para
caracterizar a un TM sin la posibilidad de enviar mensajes con
contenido multimedial, donde sólo se pueden enviar mensajes
de texto, es decir, conffm = ({Adm. Mensajes}, R).
El único elemento opcional de la SC* que tiene al menos
una funcionalidad que pertenece al conjunto de funciones que
deben
permanecer
Param_funcionalidades
=
{Adm.
Mensajes} es el estado Mensaje Nuevo. Este último estado y
los demás elementos no opcionales son transformados por las
relaciones definidas en QVT-R. En particular, la eliminación
del estado opcional Multimedia produce la composición de las
transiciones no opcionales TDerMensTexto- Multimedia y
1124
IEEE LATIN AMERICA TRANSACTIONS, VOL. 12, NO. 6, SEPTEMBER 2014
TIzqMultimedia-SeleccContacto en correspondencia con las
reglas definidas en [15]. El modelo resultante se presenta en la
Fig. 7.
Figura 6. SC de un Teléfono Móvil sin sonidos polifónicos.
la obtención de productos concretos empleando un desarrollo
dirigido por modelos (MDD).
Un enfoque alternativo puede observarse en [28] y [36].
Los autores, en un marco formal, definen funciones que
asocian SCs (en lugar de estados y transiciones de SCs, como
en nuestro caso) a funcionalidades de un FM y analizan
formas de combinación entre distintos SCs que especifican
posibles variantes de una SPL. El enfoque se orienta a un
proceso de combinación de SCs para obtener la especificación
del comportamiento de un producto de la línea. Sin embargo,
se torna complejo el diseño cuando el comportamiento de una
funcionalidad se manifiesta en distintas partes de una SC a
través de los estados, transiciones y posiblemente otros
elementos del modelo, como sería el manejo de multimedia de
nuestro ejemplo.
Otro trabajo relacionado es [37], donde se propone una
transformación de modelos para derivar automáticamente un
modelo UML de un producto concreto, a partir de un modelo
UML de una SPL. Utilizan el perfil Modeling and Analysis of
Real-Time and Embedded Systems (MARTE) sobre los
elementos del Modelo UML para indicar las funcionalidades
que implementan, es decir, el mapeo está explícito en los
modelos UML fuentes. Para la obtención de un producto
concreto definen una transformación de modelos que es
implementada en el lenguaje ATL (Atlas Transformation
Language). La propuesta se enfoca básicamente sobre modelos
UML estáticos, como los diagramas de Casos de Uso y el
Modelo de Dominio, y de comportamiento, como los
Diagramas de Secuencia, pero no presenta ningún tratamiento
sobre la variabilidad en las SCs. Además, restringe la
asociación de un elemento con una sola funcionalidad del FM.
B. Conclusiones y Trabajos Futuros
Figura 7. SC de un Teléfono Móvil sin contenido Multimedia.
V. DISCUSIÓN
A. Trabajos Relacionados
Existen múltiples trabajos que proponen la incorporación
de variabilidades en sistemas de software y en particular en las
SPLs. En [30], [31], [32] los autores proponen utilizar
mecanismos de combinación de paquetes (“package merge”)
de UML 2 basados inicialmente en [33], como herramienta de
representación y configuración de la variabilidad de una SPL y
reservar los mecanismos clásicos de modelado para expresar
las variantes válidas en tiempo de ejecución de cada aplicación
concreta.
En cuanto a los modelos estructurales, o bien se utilizan
directamente los mecanismos de UML como en el caso
mencionado de Jacobson, o bien se anotan de forma explícita
mediante estereotipos. Los trabajos [27] y [34] son ejemplos
de este último enfoque. En [35] las extensiones propuestas
para las SPLs son definidas sobre UML 2.0 y sólo conciernen
a los diagramas de clases y de secuencias. Sin embargo,
ninguno de los trabajos referidos presenta un mecanismo para
La derivación de productos es una parte esencial del
proceso de desarrollo de una SPL. Este artículo propone un
proceso integral para derivar automáticamente una máquina de
estados que representa el comportamiento de un producto
específico desde una máquina de estados extendida, que
representa una SPL. La propuesta permite reducir el tiempo de
desarrollo de un producto, automatizando la derivación de la
especificación del comportamiento de un producto, a través de
una transformación de modelos en el lenguaje QVT-R. El
proceso presentado en este artículo —que sintetiza y conjuga
resultados de investigación de los autores de varios años
constituye un avance significativo hacia el objetivo de
automatizar completamente el proceso de desarrollo de una
SPL para sistemas dinámicos. En particular, a partir de este
trabajo se cuenta con una automatización del proceso de
instanciación del comportamiento de productos específicos de
una línea; un resultado que, para nuestro conocimiento, no se
había alcanzado, con otras propuestas, de manera integral
sobre modelos de comportamiento extendidos con
variabilidades. La aplicación de la propuesta a un caso de
estudio relevante muestra la factibilidad de la propuesta para
abordar sistemas complejos.
Como trabajo futuro se prevé la creación de una
herramienta que automatice todo el proceso de desarrollo y
GONZALEZ et al.: AUTOMATIZATION OF THE INSTANTIATION
permita la incorporación en las relaciones QVT de todos los
elementos de UML 2 involucrados en las transiciones y los
estados.
REFERENCIAS
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
[11]
[12]
[13]
[14]
[15]
[16]
[17]
[18]
[19]
[20]
[21]
S. J. Mellor, A. N. Clark, and T. Futagami, “Guest editors’
introduction: Model-driven development,” IEEE Software, vol. 20, no.
5, pp. 14–18, 2003.
B. Selic, “The pragmatics of model-driven development,” IEEE
Softw.,vol. 20, no. 5, pp. 19–25, 2003.
T. Stahl, M. Voelter, and K. Czarnecki, Model-Driven Software
Development: Technology, Engineering, Management. John Wiley &
Sons,2006.
OMG, OMG Unified Modeling Language (OMG UML),
Superstructure, Version 2.4.1, Object Management Group Std., Rev.
2.4.1, 2011. [Online]. Available: http://www.omg.org/spec/UML/2.4.1
D. Harel, “Statecharts: A visual formalism for complex systems,” Sci.
Comput. Program., vol. 8, no. 3, pp. 231–274, 1987.
P. Clements and L. Northrop, Software Product Lines: Practices and
Patterns, ser. SEI Series in Software Engineering. Addison-Wesley,
2001.
K. Pohl, G. Böckle, and F. J. v. d. Linden, Software Product Line
Engineering: Foundations, Principles and Techniques. Secaucus, NJ,
USA: Springer-Verlag New York, Inc., 2005.
W. B. Frakes and K. Kang, “Software reuse research: Status and
future,” IEEE Trans. Softw. Eng., vol. 31, no. 7, pp. 529–536, 2005.
K. Czarnecki, M. Antkiewicz, C. H. P. Kim, S. Lau, and K. Pietroszek,
“Model-driven software product lines,” in Companion to the 20th
Annual ACM SIGPLAN Conference on Object-oriented Programming,
Systems, Languages, and Applications, ser. OOPSLA ’05. New York,
NY, USA: ACM, 2005, pp. 126–127.
G. Botterweck, K. Lee, and S. Thiel, “Automating product derivation in
software product line engineering,” in Software Engineering, ser. LNI,
P. Liggesmeyer, G. Engels, J. Münch, J. Dörr, and N. Riegel, Eds., vol.
143. GI, 2009, pp. 177–182.
I. Schaefer, E. Worret, A. Poetzsch-heffter, and T. Kaiserslautern, “A
model-based framework for automated product derivation,” in Modeldriven Approaches in Software Product Line Engineering, 2009.
K. Schmid, R. Rabiser, and P. Grúnbacher, “A comparison of decision
modeling approaches in product lines,” in Proceedings of the 5th
Workshop on Variability Modeling of Software-Intensive Systems, ser.
VaMoS ’11. New York, NY, USA: ACM, 2011, pp. 119–126.
P. Fernandes, C. Werner, and E. Teixeira, “An approach for feature
modeling of context-aware software product line,” Journal of Universal
Computer Science, vol. 17, no. 5, pp. 807–829, 2011.
A. Gonzalez and C. Luna, “Behavior specification of product lines via
feature models and uml statecharts with variabilities,” in SCCC, 2008,
pp. 32–41.
——, “Specification of products and product lines,” in WRS, ser.
EPTCS, M. Fernández, Ed., vol. 15, 2009, pp. 44–55.
A. Gonzalez, C. Luna, and F. Zorzan, “Transformación de máquinas de
estados con variabilidad usando el lenguaje qvt,” in Proceedings of
Conferencia Latinoamericana en Informática (CLEI’11), 2011, pp.
479– 494.
K. Czarnecki and U. W. Eisenecker, Generative programming methods, tools and applications. Addison-Wesley, 2000.
D. Benavides, S. Segura, and A. Ruiz-Cortés, “Automated analysis of
feature models 20 years later: A literature review,” Inf. Syst., vol. 35,
no. 6, pp. 615–636, 2010.
OMG, Meta Object Facility (MOF) 2.0 Query/View/Transformation
Specification, Version 1.1, Object Management Group Std., Rev. 1.1,
2011. [Online]. Available: http://www.omg.org/spec/QVT/1.1/
A. Gonzalez, C. Luna, N. Szasz, and F. Zorzan, “Automatización del
proceso de instanciación del comportamiento de productos de una línea
de productos de software,” in Proceedings of 16th Ibero-American
Conference on Software Engineering (CIbSE’13), 2013, pp. 103–116.
A. Gonzalez, “Especificación del comportamiento de líneas de
productos mediante modelos de funcionalidades y máquinas de estados
con variabilidades",” Master’s thesis, PEDECIBA Informática,
Uruguay, Tech. Rep., 2012. [Online]. Available: https://www.dropbox.
com/s/229wrnrimybfr0b/tesisAGonzalez-Final.pdf
1125
[22] J. Bosch, “Software variability management,” in Proceedings of the
26th International Conference on Software Engineering, ser. ICSE ’04.
Washington, DC, USA: IEEE Computer Society, 2004, pp. 720–721.
[23] L. Chen and M. A. Babar, “Variability management in software product
lines: An investigation of contemporary industrial challenges.” in
SPLC, ser. Lecture Notes in Computer Science, J. Bosch and J. Lee,
Eds., vol. 6287. Springer, 2010, pp. 166–180.
[24] I. Groher and M. Voelter, Aspect-Oriented Model-Driven Software
Product Line Engineering. Springer Berlin / Heidelberg, 2009, vol.
5560, pp. 111–152.
[25] F. Heidenreich, P. Sánchez, J. a. Santos, S. Zschaler, M. Alférez, J. a.
Araújo, L. Fuentes, U. Kulesza, A. Moreira, and A. Rashid,
“Transactions on aspect-oriented software development vii,” S. Katz
and M. Mezini, Eds. Berlin, Heidelberg: Springer-Verlag, 2010, ch.
Relating Feature Models to Other Models of a Software Product Line:
A Comparative Study of Featuremapper and VML, pp. 69–114.
[26] M. V. Cengarle, P. Graubmann, and S. Wagner, “Semantics of uml 2.0
interactions with variabilities,” Electr. Notes Theor. Comput. Sci., vol.
160, pp. 141–155, 2006.
[27] H. Gomaa, “Designing software product lines with uml 2.0: From use
cases to pattern-based software architectures,” in ICSR, 2006, p. 440.
[28] N. Szasz and P. Vilanova, “Statecharts and variabilities,” in VaMoS,
2008, pp. 131–140.
[29] L. Chen, M. Ali Babar, and N. Ali, “Variability management in
software product lines: A systematic review,” in Proceedings of the
13th International Software Product Line Conference, ser. SPLC ’09.
Pittsburgh, PA, USA: Carnegie Mellon University, 2009, pp. 81–90.
[30] M. A. Laguna, B. González-Baixauli, and O. López, “Gestión de la
variabilidad en líneas de productos,” in Proceedings of Conferencia
Latinoamericana de Informática (CLEI’07), 2007.
[31] M. A. Laguna and B. González-Baixauli, “Variabilidad, trazabilidad y
líneas de productos: una propuesta basada en uml y clases parciales,” in
JISBD, 2007, pp. 157–166.
[32] ——, “Product line requirements: Multi-paradigm variability models,”
in WER, 2008.
[33] A. Zito, Z. Diskin, and J. Dingel, “Package merge in uml 2: Practice vs.
theory?” in MoDELS, 2006, pp. 185–199.
[34] M. Clauss, “Generic Modeling using UML extensions for variability,”
in Proceedings of OOPSLA Workshop on Domain-specific Visual
Languages, Tampa, FL, USA, 2001, pp. 11–18.
[35] T. Ziadi, L. Hélouét, and J.-M. Jézéquel, “Behaviors generation from
product lines requirements,” in Proc. UML2004 workshop on Software
Architecture Description, Lisbon, Portugal, 2004.
[36] P. Vilanova, “On uml statecharts with variabilities,” Master’s thesis,
PEDECIBA Informática, Uruguay, Tech. Rep., 2011.
[37] R. Tawhid and D. C. Petriu, “Product model derivation by model
transformation in software product lines,” 2012 IEEE 15th
International Symposium on Object/Component/Service-Oriented RealTime Distributed Computing Workshops, vol. 0, pp. 72–79, 2011.
Ariel Gonzalez recibió el título de Magíster en Informática
del PEDECIBA Informática (Uruguay) y actualmente está
comenzando su doctorado en Informática en dicho programa.
Es profesor e investigador de la Universidad Nacional de Río
Cuarto, Argentina. Sus principales áreas de interés son:
Transformación de Modelos, Líneas de Productos y Sistemas
de Simulación. Actualmente es representante de las universidades de
Argentina miembros del Centro Latinoamericano de Estudios en Informática
(CLEI).
Carlos Luna es Magíster en Informática del PEDECIBA
Informática (Uruguay) y actualmente está culminando su
doctorado en Informática en dicho programa. Es profesor
Adjunto del Instituto de Computación de la Facultad de
Ingeniería de la Universidad de la República (Uruguay).
Desde hace 5 años se desempeña como investigador de la
Agencia Nacional de Investigación e Innovación de Uruguay, en métodos
formales aplicados a ingeniería de software y seguridad de sistemas.
1126
Fabio Zorzan es Magíster en Informática del PEDECIBA
Informática (Uruguay) y actualmente está comenzando su
doctorado en Informática en dicho programa. Es profesor e
investigador de la Universidad Nacional de Río Cuarto,
Argentina. Ha recibido una beca especial de la agencia
Córdoba Ciencia, y como estudiante de grado recibió una
beca de ayudantía de investigación. Sus principales áreas de
interés son: Transformación de Modelos, Bases de Datos y
Microprocesadores.
Nora Szasz es Ph.D. en Ciencias de la Computación de la
Universidad Tecnológica de Chalmers, Suecia. Actualmente
es Coordinadora Académica de Ingeniería en Sistemas de la
Universidad ORT Uruguay e Investigadora del área
Informática del PEDECIBA y del Sistema Nacional de
Investigadores de Uruguay. Sus principales áreas de interés
son los métodos formales, los fundamentos de la computación y los lenguajes
de programación.
IEEE LATIN AMERICA TRANSACTIONS, VOL. 12, NO. 6, SEPTEMBER 2014
Descargar