RESDEC: Un prototipo de herramienta para la selección de configuraciones de despliegue basada en Sistemas de Recomendación
Abstract
Los sistemas de alta variabilidad son sistemas que representan cientos de configuraciones distintas. En un contexto particular, estas configuraciones pueden ser desplegadas en distintos entornos de despliegue lo cual es una decisión crítica para el correcto funcionamiento de la misma. Por ejemplo, determinar en qué dispositivo móvil se va a ejecutar correctamente nuestra app, es una tarea difícil de resolver. En este artículo presentamos RESDEC, un prototipo de herramienta para asistir al ingeniero de software en la toma de decisiones para el despliegue. Concretamente RESDEC provee algoritmos de recomendación para tres escenarios de despliegue distintos.
Full text
RESDEC: Un prototipo de herramienta para la selecci´on de configuraciones de despliegue basado en Sistemas de Recomendaci´on Jorge L. Rodas1, Jos´e A. Galindo2, and David Benavides2 1Universidad Estatal de Milagro, Facultad de Ciencias de la Ingenier´ıa, Cdla. Universitaria Km 1 1/2 v´ıa Km 26, Milagro - Ecuador, [email protected] 2Universidad de Sevilla, Dept. Lenguajes y Sistemas Inform´aticos, Av. Reina Mercedes s/n Sevilla - Espa˜na, [jagalindo,benavides]@us.es Abstract. Los sistemas de alta variabilidad son sistemas que representan cientos de configuraciones distintas. En un contexto particular, estas configuraciones pueden ser desplegadas en distintos entornos de despliegue lo cual es una decisi´on cr´ıtica para el correcto funcionamiento de la misma. Por ejemplo, determinar en qu´e dispositivos m´oviles se va a ejecutar correctamente nuestra app, es una tarea dif´ıcil de resolver. En este art´ıculo presentamos RESDEC, un prototipo de herramienta para asistir al ingeniero de software en la toma de decisiones para el despliegue. Concretamente RESDEC provee algoritmos de recomendaci´on para tres escenarios de despliegue distintos. Keywords: Sistemas de alta variabilidad, Sistemas de recomendaci´on, Valoraciones, Configuraciones 1 Antecedentes Los sistemas de alta variabilidad son sistemas de software cuyo comportamiento se puede personalizar de acuerdo con las necesidades espec´ıficas de un contexto particular [2]. Los modelos de caracter´ısticas [7] se han convertido en el est´andar de facto para representar caracter´ısticas comunes y variables en Variabilityintensive System (VIS). Cuando el n´umero de combinaciones en un modelo crece exponencialmente, hace que el an´alisis y la mejora de dichos sistemas sea una actividad costosa y propensa a errores. Para aliviar el problema, investigadores han propuesto el uso del an´alisis automatizado de modelos de caracter´ısticas [3]. Sin embargo, este problema se vuelve cada vez m´as dif´ıcil cuando hay m´ultiples y diversas plataformas para implementar un producto. Por ejemplo, para decidir en qu´e plataformas de implementaci´on es mejor instalar Drupal o Wordpress, o en qu´e tel´efonos m´oviles debemos instalar una aplicaci´on de Android [5]. En tales casos, la selecci´on de la plataforma de implementaci´on ´optima se convierte en una actividad cr´ıtica que puede afectar la experiencia del usuario. En la industria, podemos encontrar propuestas basadas en propiedades estructurales y atributos de calidad que apuntan a seleccionar configuraciones
´optimas para una variedad de casos de uso, como el testing o la predicci´on del rendimiento. Sin embargo, hay una falta de soporte para beneficiarse de otros artefactos, tales como informes de usuarios o rankings de aplicaciones que eval´uan qu´e tan bien se realiz´o una configuraci´on en una plataforma de implementaci´on concreta. En este documento, proponemos explotar informes de usuarios para guiar la selecci´on de plataformas de implementaci´on; esto es, para encontrar qu´e plataformas de implementaci´on se adaptan mejor a un usuario concreto y a una configuraci´on espec´ıfica. En consecuencia, hemos encontrado en los sistemas de recomendaci´on una alternativa ideal para guiar al usuario en la b´usqueda de configuraciones de implementaci´on que satisfagan sus necesidades. Un sistema de recomendaci´on es un software que, en funci´on de los datos existentes, intenta predecir productos para que se adapten mejor a las necesidades o gustos de un usuario [4]. En este paper presentamos RESDEC(Recommendation System for Selecting Deployment Configurations), un prototipo de herramienta basada en sistemas de recomendaci´on que ayuda al ingeniero de software a seleccionar el mejor entorno de despliegue para configuraciones de VIS basadas en informes de usuarios. 2 RESDEC: Un prototipo de herramienta para recomendar estrategias de despliegue RESDEC fue dise˜nado para soportar dos fases tal como se muestra en la Figura 1. Base de Conocimiento Generador de Recomendaciones 12 Información Basado en filtrado colaborativo Basado en filtrado por contenido Basado en populridad Escenarios de despliegue Arranque en cero Transición entre plataformas de despliegue basadas en valoraciones Transición entre plataformas de despliegue basadas en características Entorno de variabilidad 105 Algoritmos Selección Escenario Fig. 1. Fases para establecer recomendaciones en escenarios de despliegue 2.1 Base de conocimiento: La base de conocimiento contiene la informaci´on sobre la satisfacci´on de los usuarios en despliegues anteriores. Esta informaci´on puede representar criterios de evaluaci´on dados previamente por los usuarios en relaci´on a gustos, funcionalidad, errores o desperfectos que puede presentar un producto. En nuestro caso, los valores que se extraen de los informes de usuarios, reflejan los niveles de satisfacci´on en relaci´on al uso de un producto por parte del usuario. 2.2 Generador de Recomendaciones: RESDEC se ejecuta en tres escenarios diferentes de acuerdo a las necesidades espec´ıficas del ingeniero de software:
Primer despliegue o arranque en cero. El primer escenario se presenta cuando un usuario nuevo del sistema desea conocer qu´e configuraciones ser´ıan las m´as adecuadas para un proyecto en particular. Esto ocurre por ejemplo, cuando el ingeniero de software construye un sitio web nuevo y necesita una asistencia guiada en la selecci´on de plugins que podr´ıan ser instalados dentro del sitio. Para realizar recomendaciones en este escenario hemos empleado un algoritmo basado en popularidad, perteneciente al grupo de algoritmos no personalizados. Aunque el m´etodo de recomendaci´on que utiliza este algoritmo parece simple, es uno de los m´as populares en escenarios reales, tales como: la lista de productos m´as vendidos en Amazon, los v´ıdeos con mayor visitas en Y outube, las canciones m´as escuchadas en Spotify, las pel´ıculas m´as vistas en Netflix, entre otros. Transici´on entre plataformas de despliegue basadas en valoraciones. El segundo escenario se presenta cuando un usuario que ha usado previamente una configuraci´on de un producto quiere explorar otras configuraciones para obtener nuevas alternativas de recomendaci´on. Esto ocurre, por ejemplo, cuando el ingeniero de software tiene publicado un sitio web que incorpora una serie de plugins y basado en esa experiencia desea conocer qu´e otros plugins similares a los instalados podr´ıan tambi´en implementarse; para ello, el sistema utiliza informaci´on de unos usuarios para producir recomendaciones a otros. Para realizar este tipo de recomendaciones hemos integrado en RESDEC tres algoritmos de recomendaci´on basados en filtrado colaborativo (FC). Seg´un la clasificaci´on, del grupo Neighborhood-based Collaborative Filtering (Knn) [6] hemos seleccionado el algoritmo ”KNNBasic” y el algoritmo ”KNNWithMeans”; y del grupo Model-based Collaborative Filtering hemos elegido el algoritmo de factorizaci´on de matrices SVD (Singular Value Decomposition). Transici´on entre plataformas de despliegue basadas en caracter´ısticas. El tercer escenario adem´as de utilizar las valoraciones que recibe una configuraci´on, tambi´en considera las caracter´ısticas que el usuario define para las configuraciones que el sistema devuelve. Cuando un usuario especifica las caracter´ısticas requeridas para una configuraci´on es f´acil para el sistema encontrar las configuraciones que mejor se adapten dentro de esos requisitos y de esa manera establecer las mejores recomendaciones. Esto ocurre por ejemplo, cuando el ingeniero de software est´a desarrollando un sitio web y necesita instalar un conjunto de plugins que se ajusten a los requerimientos del sitio, en este caso a trav´es de los tags asociados a los plugins se podr´ıan encontrar f´acilmente plugins para el cat´alogo de productos, el buscador de productos, la pasarela de pagos, el carrito de compras entre otros componentes que podr´ıan requerirse para el correcto funcionamiento del sitio web. Para hacer recomendaciones basados en la descripci´on de cada configuraci´on, hemos integrado en RESDEC dos algoritmos basados en filtrado por contenido, Rocchio [1] y kNN [8], este ´ultimo similar al utilizado por el grupo de filtrado colaborativo no obstante su variaci´on radica en la funci´on de similitud utilizada.
2.3 Datasets y validaci´on. Dataset de dispositivos Android: Para recopilar la informaci´on de Android, se realiz´o una encuesta a 2,099 usuarios de la comunidad de estudiantes y docentes de la Universidad Estatal de Milagro, Ecuador. Esto nos permiti´o conocer qu´e aplicaciones son las m´as utilizadas por los usuarios, los dispositivos que utilizan y las puntuaciones que otorgan a las aplicaciones instaladas en sus dispositivos de acuerdo al funcionamiento que han tenido en el mismo. Despu´es de conocer los dispositivos usados por los usuarios encuestados, obtuvimos informaci´on expl´ıcita sobre las caracter´ısticas de cada uno de ellos a trav´es de informaci´on disponible en el sitio web http://www.gsmarena.com/. Dataset de Wordpress: Este dataset contiene informaci´on sobre el gestor de contenidos wordpress. Para obtener informaci´on de este entorno, se desarroll´o un crawler que extrae datos que relaciona los plugins con los tags asociados a los mismos. Esto nos permiti´o conocer qu´e plugins son los m´as utilizados por los usuarios y las puntuaciones que se les otorgan. La b´usqueda sigui´o un proceso sistem´atico para extraer datos utilizando el sistema de prueba Selenium (http://www.seleniumhq.org/). Resultados: Nuestras pruebas incluyeron la generaci´on autom´atica de recomendaciones de entre un conjunto de datos de 832 dispositivos m´oviles en Android y 634 plugins de Wordpress. Acceso al c´odigo y demostraci´on del prototipo. El c´odigo fuente de RESDEC se puede descargar desde el sitio web del proyecto https://github.com/ RESDEC. La herramienta junto con el conjunto de datasets presentados en este trabajo, est´a disponible en el sitio web de RESDEC http://resdec.com/. References 1. Gediminas Adomavicius and Alexander Tuzhilin. Toward the next generation of recommender systems: A survey of the state-of-the-art and possible extensions. Knowledge and Data Engineering, IEEE Transactions on, 17(6):734–749, 2005. 2. Muhammad Ali Babar, Lianping Chen, and Forrest Shull. Managing variability in software product lines. Software, IEEE, 27(3):89–91, 2010. 3. David Benavides, Sergio Segura, and Antonio Ruiz-Cort´es. Automated analysis of feature models 20 years later: A literature review. Information Systems, 35(6):615– 636, 2010. 4. Jes´us Bobadilla, Fernando Ortega, Antonio Hernando, and Abraham Guti´errez. Recommender systems survey. Knowledge-Based Systems, 46:109–132, 2013. 5. Jos´e A Galindo, Hamilton Turner, David Benavides, and Jules White. Testing variability-intensive systems using automated analysis: an application to android. Software Quality Journal, pages 1–41, 2014. 6. Anil K Jain. Data clustering: 50 years beyond k-means. Pattern recognition letters, 31(8):651–666, 2010. 7. Kyo C Kang, Sholom G Cohen, James A Hess, William E Novak, and A Spencer Peterson. Feature-oriented domain analysis (foda) feasibility study. Technical report, DTIC Document, 1990. 8. Michael Pazzani and Daniel Billsus. Learning and revising user profiles: The identification of interesting web sites. Machine learning, 27(3):313–331, 1997.
Ap´endice A: Tiempo planeado para la presentaci´on de la herramienta 5min – Presentaci´on del problema y alcance de la herramienta. 5min – Presentaci´on del problema al que se dirige RESDEC con un breve ejemplo de la aplicaci´on. 5min – Demostraci´on de los tipos de recomendaci´on que RESDEC emplea para diferentes escenarios. 5min – Demostraci´on de las capacidades de la herramienta para seleccionar y priorizar configuraciones en un conjunto de datos de dispositivos m´oviles Android. 5min – Conclusiones del trabajo
Ap´endice B.- Capturas de pantalla de la herramienta: Caso ANDROID Fig. 2. Pantalla principal de RESDEC, en la parte izquierda un men´u flotante muestra las opciones agrupadas por el entorno de despliegue y el gestor de recomendaciones.
Fig. 3. La ventana de productos permite la gesti´on (creaci´on, modificaci´on y eliminaci´on) de los productos (dispositivos) pertenecientes al entorno de variabilidad mediante el cual el sistema establece las recomendaciones.
Fig. 4. La ventana de Apps, permite la gesti´on creaci´on, modificaci´on y eliminaci´on) de las aplicaciones que fueron desplegadas en los dispositivos registrados en la opci´on productos.
Fig. 5. Muestra los resultados obtenidos cuando se ejecuta el primer escenario de nuestra propuesta, en este caso se observa las recomendaciones basadas en el top de popularidad.