Ingeniería del Software Basada en Búsqueda y Aprendizaje Automático

URI permanente para esta colección:

Artículos en la categoría Ingeniería del Software Basada en Búsqueda y Aprendizaje Automático publicados en las Actas de las XXVI Jornadas de Ingeniería del Software y Bases de Datos (JISBD 2022).
Notificar un error en esta colección

Examinar

Envíos recientes

Mostrando 1 - 12 de 12
  • Artículo
    Optimización de programas software considerando la incertidumbre del tiempo de ejecución
    Aragón-Jurado, José M.; de La Torre, Juan Carlos; Benito-Jareño, Carlos; Dorronsoro, Bernabé. Actas de las XXVI Jornadas de Ingeniería del Software y Bases de Datos (JISBD 2022), 2022-09-05.
    Proponemos en este trabajo un nuevo problema combinatorio para la optimización automática de programas, de forma que puedan sacar el máximo rendimiento de una arquitectura hardware considerada. Calcular el tiempo de ejecución de un programa es una tarea complicada, ya que est+AOE sujeta a una elevada incertidumbre. En este trabajo se estudian siete métodos distintos para estimar el tiempo de ejecución de los programas optimizados teniendo en cuenta la incertidumbre del sistema, y se comparan los resultados obtenidos con cada uno de ellos. Los resultados conseguidos permiten mejorar el tiempo de ejecución del programa original en un 33+ACU.
  • Artículo
    A Novel Formulation of the Software Cognitive Complexity Reduction Problem
    Saborido, Rubén; Ferrer, Javier; Chicano, Francisco. Actas de las XXVI Jornadas de Ingeniería del Software y Bases de Datos (JISBD 2022), 2022-09-05.
    Reducing the Cognitive Complexity of a piece of code to a given threshold is not trivial. Recently, we modeled Software Cognitive Complexity reduction as an optimization problem and we proposed an approach to assist developers on this task. This approach enumerates sequences of Extract Method refactoring operations until a stopping criteria is met. As result, it returns the minimal sequence of Extract Method refactoring operations found that is able to reduce the Cognitive Complexity of a method to the given threshold. However, enumeration algorithms fail to scale with the code size. The number of refactoring plans can grow exponentially with the number of lines of code. In this paper, instead of enumerating sequences of Extract Method refactoring operations, we model the Cognitive Complexity reduction as an Integer Linear Programming optimization problem. This makes it feasible to use solvers, like CPLEX, to efficiently find optimal solutions in large programs.
  • Resumen
    On the influence of model fragment properties on a machine learning-based approach for feature location
    Ballarín, Manuel; Marcén, Ana Cristina; Pelechano, Vicente; Cetina, Carlos. Actas de las XXVI Jornadas de Ingeniería del Software y Bases de Datos (JISBD 2022), 2022-09-05.
    Context: Leveraging machine learning techniques to address feature location on models has been gaining attention. Machine learning techniques empower software product companies to take advantage of the knowledge and the experience to improve the performance of the feature location process. Most of the machine learning-based works for feature location on models report the machine learning techniques and the tuning parameters in detail. However, these works focus on the size and the distribution of the data sets, neglecting the properties of their contents. Objective: In this paper, we analyze the influence of three model fragment properties (density, multiplicity, and dispersion) on a machine learning-based approach for feature location. Method: The analysis of these properties is based on an industrial case provided by CAF, a worldwide provider of railway solutions. The test cases were evaluated through a machine learning technique that uses different subsets of a knowledge base to learn how to locate unknown features. Results: Results show that the density and dispersion properties have a direct impact on the results. In our case study, the model fragments with extra-small density values achieve results with up to 43+ACU more precision, 41+ACU more recall, 42+ACU more F-measure, and 0.53 more Matthews Correlation Coefficient (MCC) than the model fragments with other density values. On the other hand, the model fragments with extra-small and small dispersion values achieve results with up to 53+ACU more precision, 52+ACU more recall, 52+ACU more F-measure, and 0.57 more MCC than the model fragments with other dispersion values. Conclusions: The analysis of the results shows that both density and dispersion properties significantly influence the results. These results can serve not only to improve the reports by means of the model fragment properties, but also to be able to compare machine learning-based feature location approaches fairly improving the feature location results.
  • Resumen
    An evolutionary approach for generating software models: The case of Kromaia in Game Software Engineering
    Blasco, Daniel; Font, Jaime; Zamorano, Mar; Cetina, Carlos. Actas de las XXVI Jornadas de Ingeniería del Software y Bases de Datos (JISBD 2022), 2022-09-05.
    In the context of Model-Driven Engineering applied to video games, software models are high-level abstractions that represent source code implementations of varied content such as the stages of the game, vehicles, or enemy entities (e.g., final bosses). In this work, we present our Evolutionary Model Generation (EMoGen) approach to generate software models that are comparable in quality to the models created by human developers. Our approach is based on an evolution (mutation and crossover) and assessment cycle to generate the software models. We evaluated the software models generated by EMoGen in the Kromaia video game, which is a commercial video game released on Steam and PlayStation 4. Each model generated by EMoGen has more than 1000 model elements. The results, which compare the software models generated by our approach and those generated by the developers, show that our approach achieves results that are comparable to the ones created manually by the developers in the retail and digital versions of the video game case study. However, our approach only takes five hours of unattended time in comparison to ten months of work by the developers. We perform a statistical analysis, and we make an implementation of EMoGen readily available.
  • Artículo
    Causalidad temporal y selección de características: Situación actual y retos futuros
    Díaz Lago, Ledicia; Mera, David; Cotos, José Manuel. Actas de las XXVI Jornadas de Ingeniería del Software y Bases de Datos (JISBD 2022), 2022-09-05.
    En los últimos años, la demanda de algoritmos de inteligencia artificial capaces de modelar líneas de producción est+AOE aumentando en el sector industrial. Debido al elevado número de variables existentes en los procesos productivos, el primer paso para conseguir un buen modelo es la selección de un conjunto de variables representativo del proceso. Esto resulta ser especialmente difícil cuando se trata de líneas de ensamblaje, ya que, debido a su naturaleza continua y secuencial, son necesarios algoritmos capaces de lidiar con datos que presentan desfases temporales, redundancias y ruido en las medidas. En la actualidad existen algunos algoritmos diseñados explícitamente para determinar desfases temporales pero, sin embargo, estos no se muestran eficaces para conjuntos de datos industriales. En este trabajo analizamos 3 aproximaciones capaces de lidiar con conjuntos de datos con fuertes dependencias temporales, señalando sus puntos fuertes y débiles. Además, se esboza una posible línea de trabajo futuro capaz de tratar con este tipo de datos y dependencias.
  • Resumen
    GEML: A grammar-based evolutionary machine learning approach for design-pattern detection
    Barbudo Lunar, Rafael; Ramírez, Aurora; Servant, Francisco; Romero, José Raúl. Actas de las XXVI Jornadas de Ingeniería del Software y Bases de Datos (JISBD 2022), 2022-09-05.
    Design patterns (DPs) are recognised as a good practice in software development. However, the lack of appropriate documentation often hampers traceability, and their benefits are blurred among thousands of lines of code. Automatic methods for DP detection have become relevant but are usually based on the rigid analysis of either software metrics or specific properties of the source code. We propose GEML, a novel detection approach based on evolutionary machine learning using software properties of diverse nature. Firstly, GEML makes use of an evolutionary algorithm to extract those characteristics that better describe the DP, formulated in terms of human-readable rules, whose syntax is conformant with a context-free grammar. Secondly, a rule-based classifier is built to predict whether new code contains a hidden DP implementation. GEML has been validated over five DPs taken from a public repository recurrently adopted by machine learning studies. Then, we increase this number up to 15 diverse DPs, showing its effectiveness and robustness in terms of detection capability. An initial parameter study served to tune a parameter setup whose performance guarantees the general applicability of this approach without the need to adjust complex parameters to a specific pattern. Finally, a demonstration tool is also provided.
  • Artículo
    Generación Automática de Oráculos de Prueba para APIs RESTful
    Alonso Valenzuela, Juan Carlos; Segura, Sergio; Ruiz-Cortés, Antonio. Actas de las XXVI Jornadas de Ingeniería del Software y Bases de Datos (JISBD 2022), 2022-09-05.
    Las APIs web basadas en el estilo arquitectónico REST (conocidas como APIs RESTful) se han convertido en el estándar de-facto para la integración web. Dada su popularidad y difusión, en los últimos años han proliferado gran cantidad de herramientas para la generación automática de casos de prueba para este tipo de APIs. Sin embargo, todas las herramientas están limitadas por el tipo de errores que son capaces de detectar: fallos inesperados (i.e., respuestas con código 5XX) y errores de conformidad con la especificación. En este artículo, describimos nuestro trabajo en progreso para la generación automñatica de oráculos de prueba para APIs RESTful. El objetivo es poder detectar errores de forma automática mediante el aprendizaje de invariantes potenciales a partir de un conjunto de llamadas y respuestas a la API. Una evaluación inicial muestra la efectividad de nuestra propuesta para detectar cientos de orñaculos en sistemas reales, detectando errores replicables en las APIs de GitHub y OMDb.
  • Artículo
    Análisis de librerías Python en repositorios GitHub con minería de patrones
    García-Pozo, Pedro Pablo; Ramírez, Aurora. Actas de las XXVI Jornadas de Ingeniería del Software y Bases de Datos (JISBD 2022), 2022-09-05.
    Python se ha erigido como uno de los lenguajes de programación más populares hoy en día, en parte gracias a la cantidad de recursos a disposición de los programadores. Incluir desarrollos de terceros, en forma de librerías, en programas Python es una práctica muy habitual pues aligera el esfuerzo de codificación y permite una alta reutilización. En este trabajo se presenta una visión del ecosistema de librerías Python y sus singularidades. Mediante herramientas y técnicas propias de la minería de repositorios software, se ha extraído y analizado un conjunto de más 3.000 librerías Python utilizadas por más de 800 repositorios públicos de GitHub. Además de mostrar estadísticas sobre su uso, hemos aplicado minería de patrones para descubrir relaciones aparentemente ocultas entre librerías. Nuestro estudio revela que aunque el ecosistema de librerías es vasto, los repositorios tienden a utilizar un número reducido de librerías (15 o menos). No obstante, existen librerías que destacan por su amplio uso, como son requests para desarrollos web y numpy para proyectos de carácter más general o científico.
  • Artículo
    Pruebas de APIs REST guiadas por Aprendizaje Activo
    Mirabella, A. Giuliano; Martin-Lopez, Alberto; Segura, Sergio; Valencia Cabrera, Luis; Ruiz-Cortés, Antonio. Actas de las XXVI Jornadas de Ingeniería del Software y Bases de Datos (JISBD 2022), 2022-09-05.
    La generación automática de casos de prueba para APIs REST es un tema de investigación muy activo. La mayoría de técnicas emplean un enfoque de caja negra basado en la generación aleatoria de peticiones a partir de la especificación de la API. Dichas técnicas tienen una limitación importante: ignoran las dependencias inter-parámetro (restricciones entre parámetros que se deben cumplir para que la petición a la API sea válida), ya que no están soportadas por los lenguajes de especificación actuales. Como resultado, la mayoría de peticiones generadas automáticamente viola alguna dependencia y es rechazada por la API. En este artículo, proponemos un método para entrenar eficientemente un clasificador que prediga la validez de las peticiones, para as+AO0 poder descartar las inválidas antes de invocar a la API. Nuestra técnica aprende a medida que genera casos de prueba, de forma que el porcentaje de llamadas válidas aumenta progresivamente hasta un 90+ACU en APIs comerciales como GitHub y Stripe. Estos resultados prometedores sugieren que nuestra propuesta podría mejorar significativamente la generación automática de casos de prueba para APIs REST.
  • Artículo
    Sistema de caracterización y agrupación de benchmarks en arquitecturas x86
    Jareño, Javier; Dorronsoro, Bernabé; de La Torre, Juan Carlos. Actas de las XXVI Jornadas de Ingeniería del Software y Bases de Datos (JISBD 2022), 2022-09-05.
    El acelerado crecimiento tecnológico en el sector informático ha traído consigo una gran variedad de arquitecturas de computación y programas disponibles. Esto propicia que el problema de optimizar el rendimiento de los programas sea cada vez más complejo. La razón es que requiere de un tratamiento automático que, para obtener resultados notables, debe considerar en sus decisiones tanto las características del propio programa como las del sistema donde se ejecutarán. Con el objetivo de avanzar en el conocimiento sobre la optimización automática y adaptada de programas informáticos, en este trabajo se presenta un novedoso sistema de caracterización y agrupamiento de programas sobre arquitecturas x86 en función de sus características intrínsecas, extraídas con las herramientas Intel SDE y perf. Como caso de estudio, se ha seleccionado un subconjunto de los programas recogidos en EEMBC, un conjunto de programas de prueba (benchmark suite) de la literatura diseñado para analizar el rendimiento de dispositivos de computación. Los resultados muestran cómo con 11 clusters se pueden agrupar 70 benchmarks, que a priori son distintos, pero que comparten un mismo comportamiento.
  • Artículo
    Creation of balanced Top Trumps decks with multi-objective evolutionary algorithms and simulation
    Parejo, José Antonio; Calle Perez, Pablo. Actas de las XXVI Jornadas de Ingeniería del Software y Bases de Datos (JISBD 2022), 2022-09-05.
    Many software design problems have been addressed using search-based approaches. However, software development usually involves domain-specific design decisions and problems, which are not so common in the SBSE literature. For instance, in the case of video-game development, game-play balancing is a crucial task that involves choosing parameter values for many of the mechanics of the game. This paper addresses the problem of automatically generating balanced decks for a popular card-based game named Top Trumps using a multi-objective evolutionary algorithm. Specifically, three objective functions are defined, some of which involve the simulation of matches by confronting bots with different gaming strategies. The results of the experiments performed, show that the approach can generate decks without silver-bullet cards, for which better strategies usually lead to win, and for which games between players which similar strategies lead to close matches. Finally, an analysis of the impact of game parameters on the objective functions allowed the identification of interesting relationships and bounds on those parameters for a proper use of the algorithm and the objective functions.
  • Artículo
    ProjectION: Herramienta de ayuda a la toma de decisiones en gestión ágil
    Pérez-Piqueras, Víctor; Bermejo López, Pablo; Gámez, José A.. Actas de las XXVI Jornadas de Ingeniería del Software y Bases de Datos (JISBD 2022), 2022-09-05.
    Dada la creciente complejidad y alta incertidumbre de los proyectos software, la toma de decisiones en gestión ágil es candidata a ser apoyada por sistemas que simplifiquen los análisis y asistan al gestor en sus decisiones. A pesar del gran número de aplicaciones existentes, hay una escasez de herramientas de libre acceso que asistan en la planificación de entregas software con métodos computacionales. Para resolver esta carencia se ha desarrollado ProjectION: una aplicación que resuelva las necesidades más esenciales de la gestión ágil y que aporte valor y guíe al gestor sin limitar su capacidad de decisión.