Ingeniería del Software Guiada por Búsqueda
URI permanente para esta colección:
Artículos en la categoría Ingeniería del Software Guiada por Búsqueda publicados en las Actas de las XXI Jornadas de Ingeniería del Software y Bases de Datos (JISBD 2016).
Notificar un error en esta colección
Examinar
Envíos recientes
Artículo Configuración guiada por búsqueda de aplicaciones basadas en micro-serviciosParejo, José Antonio; Ramírez, Aurora; Romero, José Raúl; Segura, Sergio; Ruiz-Cortés, Antonio. Actas de las XXI Jornadas de Ingeniería del Software y Bases de Datos (JISBD 2016), 2016-09-13.Organizaciones como Netflix, Google o Amazon hacen uso de arquitecturas basadas en micro-servicios, lo que ha disparado el interés de la comunidad en ingeniería del software por este estilo arquitectónico, en el que los distintos módulos de la aplicación se implementan como servicios web RESTful independientes. De esta forma, se alcanza un nivel de modularidad que facilita el control del re-despliegue en únicamente aquellas partes que soportan mayor carga de trabajo y, consecuentemente, evitan el uso indiscriminado de la infraestructura. Todos estos servicios, además, se coordinan e invocan orquestando las interacciones necesarias para satisfacer los requisitos del sistema. No obstante, el buen uso de este estilo arquitectónico supone nuevos retos, como determinar qué instancias de servicios se despliegan o establecer la mejor configuración de la nube que los aloja, conforme a la carga esperada y para cumplir los Acuerdos de Nivel de Servicio. Se trata de un problema de optimización en el que deben considerarse simultáneamente múltiples propiedades, a menudo en conflicto entre sí. Por ello, tras formular este caso como un problema de búsqueda, se discutirá cómo el uso de técnicas multi-objetivo puede mejorar las soluciones actuales, permitiéndonos escoger los proveedores y configuraciones apropiadas para dismuir los costes de explotación, asegurar la disponibilidad de los servicios críticos, sin empobrecer la latencia y el tiempo de respuesta.Artículo Un algoritmo híbrido para el problema NRP con interdependenciasPalomo-Lozano, Francisco; del Aguila, Isabel María; Medina-Bulo, Inmaculada. Actas de las XXI Jornadas de Ingeniería del Software y Bases de Datos (JISBD 2016), 2016-09-13.En este artículo presentamos un algoritmo híbrido para una variante del problema de la siguiente versión (NRP). En esta variante existe un conjunto de requisitos para los que se dispone de una estimación del esfuerzo necesario para su implementación y de la satisfacción percibida por los potenciales clientes con la inclusión de dichos requisitos. Entre estos requisitos existen relaciones de interdependencia, que establecen a ciertos requisitos como prerequisitos de otros, o que obligan a implementar determinados requisitos simultáneamente en caso de incluirse alguno de ellos en la siguiente versión del producto a desarrollar. Dado un límite superior de esfuerzo prefijado, el objetivo es seleccionar un subconjunto de requisitos que cumpla todas las restricciones y maximice la satisfacción global de los clientes. La propuesta combina heurísticas con técnicas exactas para una versión simplificada del problema. El rendimiento del algoritmo resultante en distintos escenarios realistas se compara con el de otras técnicas metaheurísticas previamente empleadas.Artículo Flujo de trabajo para la experimentación colaborativa en Ingeniería del Software guiada por búsquedadel Aguila, Isabel María; del Sagrado, José; Bosch, Alfonso J.. Actas de las XXI Jornadas de Ingeniería del Software y Bases de Datos (JISBD 2016), 2016-09-13.La Ingeniería del Software Guiada por Búsqueda persigue reformular problemas de Ingeniería del Software que a menudo comprenden objetivos en conflicto, como problemas de optimización. Así, las técnicas que se aplican en esta disciplina buscan una o un conjunto de soluciones casi-óptimas en un espacio de soluciones candidatas con la ayuda de una función de aptitud que les permita distinguir las mejores soluciones. La naturaleza estocástica de los algoritmos de optimización requiere de la repetición de las búsquedas para mitigar los efectos de la aleatoriedad. A la hora de comparar algoritmos, el investigador comparará los resultados con mejor calidad (mejores valores en la función de aptitud, en indicadores de calidad y rendimiento) devueltos en las búsquedas, lo que conlleva un trabajo adicional por parte del investigador. La sobrecarga que implica esta actividad puede aminorarse si la experimentación se enfoca de manera colaborativa. Este artículo propone un flujo de trabajo para la experimentación colaborativa basado en resultados e indicadores de calidad y rendimiento.Artículo Prueba de Mutación Evolutiva Aplicada a Sistemas Orientados a ObjetosDelgado-Pérez, Pedro; Medina-Bulo, Inmaculada; Segura, Sergio; García Domínguez, Antonio; Domínguez-Jiménez, Juan José. Actas de las XXI Jornadas de Ingeniería del Software y Bases de Datos (JISBD 2016), 2016-09-13.A pesar del beneficio que puede reportar la prueba de mutaciones en el proceso de prueba de software, el coste que supone su aplicación siempre ha sido visto como un obstáculo para una mayor acogida por parte de la industria. Por esta razón se han desarrollado diversas técnicas que tratan de paliar el problema, principalmente mediante la reducción del número de mutantes que son generados. Entre ellas se encuentra la Prueba de Mutación Evolutiva, que propone el empleo de algoritmos evolutivos para encontrar un subconjunto de mutantes que presenta mayor posibilidad de ayudar a refinar el conjunto de casos de prueba empleado. La técnica solo había sido probada con éxito en operadores para el lenguaje de programación WS-BPEL. En este artículo se presentan los experimentos llevados a cabo aplicando la Prueba de Mutación Evolutiva con mutantes generados por operadores de mutación para C++ relacionados con la orientación a objetos. Los resultados obtenidos, usando los parámetros considerados como más apropiados para la configuración del algoritmo, revelan que la técnica también es más efectiva que una estrategia aleatoria con operadores de clase para sistemas en C++.Artículo Estudio de mecanismos de hibridación para el descubrimiento evolutivo de arquitecturasRamírez, Aurora; Molina, José Antonio; Romero, José Raúl; Ventura, Sebastián. Actas de las XXI Jornadas de Ingeniería del Software y Bases de Datos (JISBD 2016), 2016-09-13.Las decisiones que los ingenieros software toman durante el análisis arquitectónico pueden verse influenciadas por aspectos como la naturaleza del sistema bajo estudio o los criterios de calidad que deben guiar su desarrollo, generalmente expresados en términos de métricas software. A la hora de abordar tareas de diseño arquitectónico como problemas de optimización, factores como los anteriores también deben ser tenidos en cuenta, ya que podrían afectar al funcionamiento de cualquier algoritmo de búsqueda. Incluir técnicas de búsqueda local en un algoritmo evolutivo constituye un mecanismo habitual para intentar mejorar su rendimiento, si bien diseñar un modelo híbrido añade nuevas variables a ser estudiadas. En este trabajo se analiza la idoneidad de este tipo de enfoque para la resolución del problema del descubrimiento de arquitecturas software. El estudio experimental realizado muestra que las características del problema pueden influir tanto en la eficiencia de la búsqueda local como en la calidad de las soluciones obtenidas.Artículo Providing Support for the Optimized Management of Declarative ProcessesBarba, Irene; Lanz, Andreas; Jiménez Ramírez, Andrés; Weber, Barbara; Reichert, Manfred; Del Valle, Carmelo. Actas de las XXI Jornadas de Ingeniería del Software y Bases de Datos (JISBD 2016), 2016-09-13.Declarative process models are becoming increasingly popular due to the high flexibility they offer to process participants. Based on a declarative process model, there exist numerous possible enactment plans, each one with specific values for relevant objective functions (e.g., overall completion time). How to actually execute such a model is quite challenging due to several reasons: (1) proper objective functions must be considered to find optimized enactment plans, (2) users often do not have an understanding of the overall process, (3) the presence of a variety of temporal constraints to be met during process enactment, and (4) the need to coordinate multiple instances of a process concurrently exe- cuted (which compete for shared resources). This is further complicated by the fact that the enactment of new process instances may continuously start over time and many organizations do not exactly know their future demands. In such con- text, to properly support users in enacting declarative process models, this paper suggests generating optimized enactment plans from declarative process models. The generated enactment plans may be used for different purposes, e.g., to pro- vide personal schedules to users. Moreover, they may be dynamically adapted if required. To evaluate the applicability of our approach in practical settings we apply it to a real process scenario from the healthcare domain.Artículo Dos estrategias de búsqueda anytime basadas en programación lineal entera para resolver el problema de selección de requisitosChicano, Francisco; Domínguez Ríos, Miguel Ángel; del Aguila, Isabel María; del Sagrado, José; Alba, Enrique. Actas de las XXI Jornadas de Ingeniería del Software y Bases de Datos (JISBD 2016), 2016-09-13.El problema de selección de requisitos (o Next Release Problem, NRP) consiste en seleccionar el subconjunto de requisitos que se va a desarrollar en la siguiente versión de una aplicación software. Esta selección se debe hacer de tal forma que maximice la satisfacción de las partes interesadas a la vez que se minimiza el esfuerzo empleado en el desarrollo y se cumplen un conjunto de restricciones. Trabajos recientes han abordado la formulación bi-objetivo de este problema usando técnicas exactas basadas en resolutores SAT y resolutores de programación lineal entera. Ambos se enfrentan a dificultades cuando las instancias tienen un gran tamaño, sin embargo la programación lineal entera (ILP) parece ser más efectiva que los resolutores SAT. En la práctica, no es necesario calcular todas las soluciones del frente de Pareto (que pueden llegar a ser muchas) y basta con obtener un buen número de soluciones eficientes bien distribuidas en el espacio objetivo. Las estrategias de búsqueda basadas en ILP que se han utilizado en el pasado para encontrar un frente bien distribuido en cualquier instante de tiempo solo buscan soluciones soportadas. En este trabajo proponemos dos estrategias basadas en ILP que son capaces de encontrar el frente completo con suficiente tiempo y que, además, tienen la propiedad de aportar un conjunto de soluciones bien distribuido en el frente objetivo en cualquier momento de la búsqueda.Artículo Aplicando programación lineal entera a la búsqueda de conjuntos de productos de prueba priorizados para líneas de productos softwareFerrer, Javier; Chicano, Francisco; Lopez-Herrejón, Roberto Erick; Alba, Enrique. Actas de las XXI Jornadas de Ingeniería del Software y Bases de Datos (JISBD 2016), 2016-09-13.Las líneas de productos software son familias de productos que están íntimamente relacionados entre sí, normalmente formados por combinaciones de un conjunto de características software. Generalmente no es factible testar todos los productos de la familia, ya que el número de productos es muy elevado debido a la explosión combinatoria de características. Por este motivo, se han propuesto criterios de cobertura que pretenden probar al menos todas las interacciones entre características sin necesidad de probar todos los productos, por ejemplo todos los pares de características (emph{pairwise coverage}). Además, es deseable testar primero los productos compuestos por un conjunto de características prioritarias. Este problema es conocido como emph{Prioritized Pairwise Test Data Generation}. En este trabajo proponemos una técnica basada en programación lineal entera para generar este conjunto de pruebas priorizado. Nuestro estudio revela que la propuesta basada en programación lineal entera consigue mejores resultados estadísticamente tanto en calidad como en tiempo de computación con respecto a las técnicas existentes para este problema.Artículo Minimización de conjuntos de casos de prueba en la prueba de mutaciones de composiciones BPELPalomo-Lozano, Francisco; Estero-Botaro, Antonia; Medina-Bulo, Inmaculada. Actas de las XXI Jornadas de Ingeniería del Software y Bases de Datos (JISBD 2016), 2016-09-13.Tanto en la aplicación de prueba de mutaciones a composiciones BPEL como en la realización de estudios experimentales sobre diversas métricas de calidad, surge la necesidad de minimizar conjuntos de casos de prueba manteniendo la máxima cobertura de mutación. La prueba de este tipo de software presenta algunas peculiaridades. Normalmente, las composiciones son relativamente pequeñas cuando se comparan con aplicaciones desarrolladas en lenguajes tradicionales, pues se encargan exclusivamente de la orquestación de los servicios, y no se dispone de un gran número de casos de prueba para ellas. No obstante, su ejecución puede resultar muy costosa, y debe realizarse para un número de mutantes que, normalmente, supera ampliamente al de casos de prueba. Proponemos aquí como técnica de minimización una reducción a programación lineal entera y evaluamos su rendimiento para distintas composiciones.