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 XXIV Jornadas de Ingeniería del Software y Bases de Datos (JISBD 2019).
Notificar un error en esta colección

Examinar

Envíos recientes

Mostrando 1 - 11 de 11
  • Artículo
    Estudio sobre la correlación de mutantes equivalentes: un enfoque evolutivo
    Delgado Pérez, Pedro; Chicano García, José Francisco. Actas de las XXIV Jornadas de Ingeniería del Software y Bases de Datos (JISBD 2019), 2019-09-02.
    La prueba de mutaciones es una conocida técnica para el análisis y mejora de un conjunto de pruebas. Este artículo aborda un problema inherente a esta técnica, la existencia de mutantes equivalentes, tratando de establecer si estos mutantes comparten ciertas características que los liguen. Para ello se emplea un algoritmo evolutivo de selección de mutantes (conocido como prueba de mutación evolutiva) para observar si en la práctica los mutantes equivalentes tienden a generar otros equivalentes. Además, también se evalúa qué ocurre si, penalizando a estos mutantes durante la ejecución del algoritmo, la búsqueda se enfoca hacia otros mutantes de mayor utilidad. Los resultados de los experimentos en este artículo revelan la existencia de una correlación entre mutantes equivalentes, la cual puede ser aprovechada en general para incrementar el rendimiento de la prueba de mutación evolutiva.
  • Artículo
    Reparación de pruebas de interfaz de usuario en Android como un problema de búsqueda
    Cantón Fernandez, Adrián; Parejo Maestre, José Antonio; Segura Rueda, Sergio; Ruiz Cortés, Antonio. Actas de las XXIV Jornadas de Ingeniería del Software y Bases de Datos (JISBD 2019), 2019-09-02.
    Las pruebas de interfaz de usuario son una técnica muy popular gracias a su capacidad para validar el comportamiento de la aplicación tal y como lo experimentaría el usuario, y por su facilidad para generar los casos de prueba. Sin embargo, una de las limitaciones más importantes de este tipo de pruebas es su fragilidad ante los cambios de la propia interfaz de usuario, que suelen producirse durante el desarrollo del sistema. En este artículo formulamos la reparación de estas pruebas ante cambios en la intefaz o funcionalidad de la aplicación como un problema de búsqueda. Además, proponemos un algoritmo heurístico para su resolución basado en GRASP. Esta propuesta se ha implementado y validado en el dominio especifico de aplicaciones móviles para dispositivos Android. Los resultados obtenidos demuestran su aplicabilidad con varios casos de estudio para cambios de diversa envergadura.
  • Artículo
    Looking for novelty in SBSE problems
    Romero, José Raúl; Ramírez, Aurora; Simons, Christopher L.. Actas de las XXIV Jornadas de Ingeniería del Software y Bases de Datos (JISBD 2019), 2019-09-02.
    Search-based software engineering (SBSE) was conceived to support engineers searching for innovative ideas to solve recurrent software engineering problems along the software project lifecycle. However, current approaches require the engineer to formulate and quantify their search objectives, which may be challenging. As SBSE consolidates as a discipline, problems become more demanding, and consequently the definition of the search problem and the characteristics of the search space remain oversimplified. Thus the evaluation of problem solutions by means of a fitness function could be failing to address essential aspects that can cause disappointment for the engineer after reaching final results. This position paper launches the idea that novelty search opens up a new scenario, as it rewards solution novelty, a concept mapping to problem characteristics other than fitness and whose definition might be more intuitive to the engineer. We explore its applicability to SBSE and discuss some preliminary findings of interest to the SBSE community.
  • Resumen
    Efficient refactoring scheduling based on partial order reduction
    Morales, Rodrigo; Chicano García, José Francisco; Khomh, Foutse; Antoniol, Giuliano. Actas de las XXIV Jornadas de Ingeniería del Software y Bases de Datos (JISBD 2019), 2019-09-02.
    Anti-patterns are poor solutions to design problems that make software systems hard to understand and to extend. Components involved in anti-patterns are reported to be consistently related to high changes and faults rates. Developers are advised to perform refactoring to remove anti-patterns, and consequently improve software design quality and reliability. However, since the number of anti-patterns in a system can be very large, the process of manual refactoring can be overwhelming. To assist a software engineer who has to perform this task, we propose a novel approach RePOR (Refactoring approach based on Partial Order Reduction). We perform a case study with five open source systems to assess the performance of RePOR against two well-known metaheuristics (Genetic Algorithm, and Ant Colony Optimization), one conflict-aware refactoring approach and, a new approach based on sampling (Sway). Results show that RePOR can correct a median of 73% of anti-patterns (10% more than existing approaches) with a significant reduction in effort (measured by the number of refactorings applied) ranging from 69% to 85%, and a reduction of execution time ranging between 50% and 87%, in comparison to existing approaches.
  • Resumen
    Search-based mutant selection for efficient test suite improvement: Evaluation and results
    Delgado Pérez, Pedro; Medina Bulo, María Inmaculada. Actas de las XXIV Jornadas de Ingeniería del Software y Bases de Datos (JISBD 2019), 2019-09-02.
    Las técnicas basadas en búsqueda se han aplicado a casi todas las áreas de la Ingeniería del Software, especialmente a la prueba de software, con el fin de abordar problemas de difícil resolución. Sin embargo, el problema de la selección de mutantes con el objetivo de mejorar el conjunto de pruebas no ha sido explorado tanto como otros problemas del mismo área, como puede ser la generación de datos de prueba. En este artículo aplicamos selección de mutantes basada en búsqueda para la mejora eficiente de la calidad de las pruebas. Concretamente, usamos la técnica conocida como prueba de mutación evolutiva (PME), la cual permite reducir el número de mutantes pero sin pérdida significativa de efectividad. A pesar de los beneficios que su aplicación ha reportado, los resultados empíricos hasta el momento han sido derivados de un número limitado de casos de estudio, un único conjunto de operadores de mutación así como una métrica poco representativa del rendimiento real de la técnica. Este artículo trata de aliviar estos defectos definiendo una nueva metodología para la evaluación de PME basada en la mejora real que se logra en el conjunto de pruebas al usar la estrategia evolutiva. Después, aplicamos esta metodología en nuevos experimentos con un conjunto de programas en C++ reales. Los resultados muestran que PME proporciona un buen rendimiento para la mayoría de casos y niveles de exigencia de mejora de las pruebas (en torno al 45% mejor que la selección aleatoria en el mejor caso). Los resultados revelan que incluso un conjunto reducido de mutantes seleccionado con PME es útil para incrementar la calidad de las pruebas, especialmente en los programas con un número mayor de mutantes. En definitiva, estos resultados apoyan el uso de técnicas basadas en búsqueda para resolver el problema de la selección de mutantes para la mejora eficiente de las pruebas. Adicionalmente, identificamos ciertos aspectos que previsiblemente podrían ayudar a mejorar la técnica PME.
  • Artículo
    Estado y evolución de la comunidad SBSE en España: un análisis bibliométrico
    Ramírez, Aurora; Delgado Pérez, Pedro; Ferrer, Javier; Romero, José Raúl; Medina Bulo, María Inmaculada; Chicano García, José Francisco. Actas de las XXIV Jornadas de Ingeniería del Software y Bases de Datos (JISBD 2019), 2019-09-02.
    Dada la creciente complejidad de los sistemas software, disponer de métodos y técnicas eficientes para apoyar la realización de las diferentes actividades que se llevan a cabo en el ciclo de vida de un proyecto software ha despertado un gran interés. Así, el concepto de Ingeniería del Software basada en búsqueda (SBSE, search-based software engineering) ha permitido a ingenieros del software la aplicación de técnicas de optimización para automatizar tareas relativas a la gestión e implementación de un proyecto software. La comunidad científica en España no ha sido ajena a estos avances, contribuyendo desde la aparición de la disciplina en 2001. Este trabajo representa el primer estudio bibliométrico que resume y analiza el esfuerzo investigador realizado por la comunidad SBSE en España, así como su evolución en los últimos 18 años. Tras efectuar un riguroso proceso de búsqueda donde se han considerado más de 3700 artículos, se han identificado 232 publicaciones relevantes, donde participan hasta 145 autores de 19 instituciones diferentes. Entre los resultados más relevantes cabe destacar que casi la mitad de publicaciones se han llevado a cabo entre investigadores de distintas instituciones, la mayoría de ellas internacionales. No obstante, el nacimiento en 2015 del track sobre ingeniería del software guiada por búsqueda en las jornadas SISTEDES ha fomentado el contacto entre investigadores de instituciones españolas, mejorando el ratio de colaboraciones nacionales, así como la financiación dedicada a este campo en España.
  • Artículo
    Formulación Robusta para el Problema de Selección de Requisitos
    Chicano García, José Francisco; Domínguez Ríos, Miguel Ángel. Actas de las XXIV Jornadas de Ingeniería del Software y Bases de Datos (JISBD 2019), 2019-09-02.
    El problema de selección de requisitos consiste en elegir un subconjunto de requisitos que serán desarrollados en la siguiente versión del producto software. Esta elección se debe hacer de tal forma que se maximice la satisfacción de los clientes y se minimice el coste de implementación, cumpliendo, además, con una serie de dependencias entre los requisitos. Tanto el coste de implementación de los requisitos como la satisfacción de los clientes están sujetos a incertidumbre y se pueden modelar mediante variables aleatorias. Como resultado, el coste total y el valor de una solución (subconjunto de requisitos) también son variables aleatorias. Un decisor normalmente prefiere soluciones robustas, es decir, con baja incertidumbre en sus valores objetivos. Esta preferencia se puede modelar minimizando la varianza de las variables aleatorias, a la vez que se optimizan sus valores promedios. En este trabajo presentamos una formulación robusta del problema de selección de requisitos con cuatro objetivos: los promedios del coste y satisfacción, y sus varianzas. Para resolver el modelo empleamos un resolutor de programación lineal entera que se aplica a una suma ponderada de los objetivos, obteniendo soluciones soportadas del frente de Pareto.
  • Resumen
    Performance metamorphic testing: A Proof of concept
    Segura Rueda, Sergio; Troya, Javier; Durán Toro, Amador; Ruiz Cortés, Antonio. Actas de las XXIV Jornadas de Ingeniería del Software y Bases de Datos (JISBD 2019), 2019-09-02.
    Sergio Segura, Javier Troya, Amador Durán, Antonio Ruiz-Cortés. "Performance Metamorphic Testing: A Proof of Concept". Information and Software Technology, 98:1-4, 2018. https://doi.org/10.1016/j.infsof.2018.01.013 Impact indicators: - JCR FI: 2.62 TOP 15% (Q1) CS/SE. - 2 citations in GScholar (http://bit.ly/2WnrYYj) A preliminary version of this paper was presented in the track of New Ideas an Emerging Results at ICSE 2017, with an acceptance rate of 16% (14 papers accepted out of 85 submissions) [1]. All four reviewers agreed on the value of the work with an overall score of 9 (out of 12), and a novelty score of 11 (out of 12). [1] Sergio Segura, Javier Troya, Amador Durán, Antonio Ruiz-Cortés. "Performance metamorphic testing: motivation and challenges". In Proceedings of the 39th International Conference on Software Engineering: New Ideas and Emerging Results (ICSE NIER'17) Track. IEEE Press, Piscataway, NJ, USA, 7-10, 2017. [Acceptance rate: 16%. Main track ranked as Class 1 in SCIE Ranking] https://doi.org/10.1109/ICSE-NIER.2017.16
  • Resumen
    Interactive multi-objective evolutionary optimization of software architectures
    Ramírez, Aurora; Romero, José Raúl; Ventura, Sebastián. Actas de las XXIV Jornadas de Ingeniería del Software y Bases de Datos (JISBD 2019), 2019-09-02.
    While working on a software specification, designers usually need to evaluate different architectural alternatives to be sure that quality criteria are met. Even when these quality aspects could be expressed in terms of multiple software metrics, other qualitative factors cannot be numerically measured, but they are extracted from the engineers know-how and prior experiences. In fact, detecting not only strong but also weak points in the different solutions seems to fit better with the way humans make their decisions. Putting the human in the loop brings new challenges to the search-based software engineering field, especially for those human-centered activities within the early analysis phase. This paper explores how the interactive evolutionary computation can serve as a basis for integrating the humans judgment into the search process. An interactive approach is proposed to discover software architectures, in which both quantitative and qualitative criteria are applied to guide a multi-objective evolutionary algorithm. The obtained feedback is incorporated into the fitness function using architectural preferences allowing the algorithm to discern between promising and poor solutions. Experimentation with real users has revealed that the proposed interaction mechanism can effectively guide the search towards those regions of the search space that are of real interest to the expert. Publicado en: Information Sciences, vol. 463-464, pp. 92-109. 2018. DOI: https://doi.org/10.1016/j.ins.2018.06.034. IF(2017): 4.305 [12/148, Information Systems (Q1)]
  • Artículo
    Aprendizaje automático y predicción de defectos en el software
    del Sagrado, José; del Aguila, Isabel María; Bosch, Alfonso J.. Actas de las XXIV Jornadas de Ingeniería del Software y Bases de Datos (JISBD 2019), 2019-09-02.
    La predicción de defectos de software es el proceso de desarrollo de modelos que pueden ser utilizados por los profesionales de software para detectar artefactos defectuosos. Existen numerosas técnicas de aprendizaje automático que se han propuesto e implementado como solución a este problema, pero en muchos casos los resultados son contradictorios y no se ha consensuado el conjunto de métricas que serán las variables de base en la predicción. En este trabajo se abordan dos tareas importantes en la aplicación de algoritmos de aprendizaje al problema de predicción de defenctos. Por una parte crear un método unificado para tratar este problema que sea generalizable a nuevos conjuntos de datos y/o que pueda incorporar nuevos algoritmos, así se podrán comparar los resultados de las distintas técnicas hayan sido probadas o no. Por otra parte, profundizamos en la selección de métricas relevantes en problema de la predicción de defectos software y proponemos un método de consenso en base a las relaciones identificadas en los datos. El método de comparación de técnicas y la selección de métricas se han probado experimentalmente sobre 5 conjuntos de datos. Los resultados obtenidos indican que las métricas relevantes en la predicción de defectos son una combinación de métricas de acoplamiento y tamaño.
  • Artículo
    Predicción del impacto de las transformaciones LLVM en el rendimiento del software
    de La Torre, Juan Carlos; Ruiz, Patricia; Galindo, Pedro L.; Dorronsoro, Bernabé. Actas de las XXIV Jornadas de Ingeniería del Software y Bases de Datos (JISBD 2019), 2019-09-02.
    Tradicionalmente ha existido una rápida evolución del hardware de computación que, en los últimos años, se ha visto complementada con la aparición de una gran diversidad de arquitecturas hardware. Modificar el software para que funcione eficientemente en estas nuevas arquitecturas es un proceso muy costoso, pero necesario en muchos casos. Por tanto, es necesario el desarrollo de nuevos métodos que permitan adaptar los programas para ejecutarse eficientemente en cualquier hardware; en poco tiempo y a un bajo coste. Nuestro framework Faevol hace uso de las transformaciones de código de herramienta de compilación LLVM para realizar esta adaptación de forma automática. El impacto de dichas transformaciones en el rendimiento del programa es desconocido, puesto que depende enormemente de las otras transformaciones aplicadas, así como del software a optimizar y del hardware en el que se ejecuta. Esto complica enormemente el proceso. En este trabajo, desarrollamos dos modelos predictivos basados en aprendizaje computacional para estimar de forma precisa el impacto de una secuencia de transformaciones LLVM en el código de un programa software. Adicionalmente, se evalúa el impacto en los resultados de incorporar dichos modelos predictivos en Faevol, logrando mejorar notablemente el tiempo necesario para transformar el código sin impactar negativamente en los resultados obtenidos.