Navegación

Búsqueda

Búsqueda avanzada

El autor Francisco Chicano ha publicado 11 artículo(s):

1 - Efficient refactoring scheduling based on partial order reduction

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.

Autores: Rodrigo Morales / Francisco Chicano / Foutse Khomh / Giuliano Antoniol / 
Palabras Clave: Ant colony optimization - Anti-patterns - Design quality - Genetic algorithm - Refactoring schedule - Software refactoring

2 - Estudio sobre la correlación de mutantes equivalentes: un enfoque evolutivo

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.

Autores: Pedro Delgado-Pérez / Francisco Chicano / 
Palabras Clave: algoritmos evolutivos - Equivalencia - prueba de mutación

3 - A Novel Formulation of the Software Cognitive Complexity Reduction Problem

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.

Autores: Rubén Saborido / Javier Ferrer / Francisco Chicano / 
Palabras Clave: cognitive complexity - Optimization - Software

4 - Hacia un Algoritmo Exacto para Resolver el Problema de Agrupamiento de Módulos Software

El problema de agrupamiento de módulos software consiste en encontrar una partición del conjunto de módulos de un determinado software de tal forma que se maximice la cohesión entre módulos pertenecientes al mismo componente de la partición a la vez que se minimiza el acoplamiento entre módulos pertenecientes a distintos componentes. El objetivo es estructurar el software de una manera que mejore el desarrollo y la mantenibilidad del sistema. Este problema, conocido como emph{Software Module Clustering}, ha sido abordado en el pasado usando principalmente algoritmos heurísticos y metaheurísticas. En este trabajo describimos un algoritmo exacto basado en ramificación y poda.

Autores: Miguel Ángel Domínguez / Francisco Chicano / Enrique Alba / 
Palabras Clave: Agrupamiento de módulos software - Algoritmos exactos - Ramificación y poda - Search-Based Software Engineering

5 - Impacto de las métricas CK en la refactorización

Las métricas CK son las que alcanzan un mayor consenso, a nivel de diseño orientado a objetos, sobre la idenficación de la necesidad de una refactorización. Para estimar el impacto de estas métricas de calidad en la refactorización en este trabajo nos basamos en la reducción de la entropía. Para medir este impacto empleamos datos validados de refactorizaciones y métricas de código de varios proyectos open source. Las valoraciones obtenidas se combinan para ordenar las métricas y proponemos un método para medir su influencia incluso en aquellas situaciones en las que no todas las métricas puedan ser valoradas o cuando esta valoración no alcance unos tasas suficientemente representativas. Los resultados obtenidos con el enfoque aplicado están en la misma línea de trabajos previos de otros autores.

Autores: José Del Sagrado / Isabel María Del águila / Alfonso J. Bosch / Francisco Chicano / 
Palabras Clave: evolución del software - métricas de código - Refactorización

6 - On the use of developers context for automatic refactoring of software anti-patterns

Publication: Journal of Systems and Software Number: Available On-line Month and Year: May 2016 DOI: 10.1016/j.jss.2016.05.042 Quality indicators of the journal: ISI JCR IF=1.424 (Q1 in CS/SE, Q2 in CS/TM), 5-year IF=1.767, SNIP=2.415, SJR=0.897, CiteScore=2.93 Citations (according to Google Scholar): 4

Autores: Rodrigo Morales / Zéphyrin Soh / Foutse Khomh / Giuliano Antoniol / Francisco Chicano / 
Palabras Clave: Anti-patterns - Automatic refactoring - Interaction traces - Metaheuristics - Software maintenance - Task context

7 - Resolviendo un problema multi-objetivo de selección de requisitos mediante resolutores del problema SAT

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. Este es un problema de optimización combinatorio multi-objetivo para el que se han utilizado en el pasado técnicas heurísticas y metaheurísticas en su resolución, ya que es NP-difícil. En el presente trabajo proponemos la traducción de este problema a lógica proposicional y el uso de resolutores del problema SAT en una estrategia para encontrar el frente de Pareto de forma exacta.

Autores: Isabel María del Aguila / José del Sagrado / Francisco Chicano / Enrique Alba / 
Palabras Clave: next release problem - optimización multi-objetivo - resolutores SAT - Selección de requisitos

8 - Estado y evolución de la comunidad SBSE en España: un análisis bibliométrico

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.

Autores: Aurora Ramírez / Pedro Delgado-Pérez / Javier Ferrer / José Raúl Romero / Inmaculada Medina-Bulo / Francisco Chicano / 
Palabras Clave: Análisis bibliométrico - Comunidad española - ingeniería del software basada en búsqueda

9 - CMSA para el problema de la generación de casos de prueba priorizados en líneas de productos software

En las líneas de producto software puede ser difícil o incluso imposible probar todos los productos de la familia debido al gran número de combinaciones de características que pueden existir. Esto conlleva la necesidad de buscar un subconjunto de productos de la familia que nos permita probar todas las posibles combinaciones. Los algoritmos del estado del arte basados en heurísticos junto con programación lineal entera (ILP) son lo bastante rápidos para instancias de tamaño pequeño o mediano. Sin embargo, existen algunas instancias del mundo real que son demasiado grandes para obtener una respuesta en un tiempo razonable, debido al crecimiento exponencial del espacio de búsqueda. Por otro lado, estos heurísticos no siempre conducen a las mejores soluciones. En este trabajo proponemos un nuevo enfoque basado en un algoritmo metaheurístico híbrido llamado Construct, Merge, Solve & Adapt (CMSA). Comparamos este enfoque con un algoritmo del estado del arte basado en ILP y en algoritmos híbridos. El análisis muestra que el algoritmo propuesto conduce a soluciones de mayor calidad.

Autores: José Antonio Ortega-Toro / Javier Ferrer / Francisco Chicano / 
Palabras Clave: Aleatorización - Híbridos exactos/heurísticos - Líneas de Productos Software - modelos de características - Optimización Combinatoria - Testeo por pares

10 - An experimental and practical study on the equivalent mutant connection: An evolutionary approach

Las pruebas de mutación permiten evaluar y mejorar la calidad de los conjuntos de casos de prueba, pero resultan costosas debido a la existencia de muchos mutantes semánticamente equivalentes al código original, lo que requiere la revisión manual de los mutantes. Este trabajo estudia la posibilidad de que estos mutantes equivalentes estén relacionados tomando como base ciertas características comunes, como son los operadores de mutación que los generan o los fragmentos de códigos en los que estos mutantes aparecen. El experimento que se muestra en este artículo ofrece evidencias de la existencia de tales conexiones, lo cual permite abordar el problema de la detección de mutantes equivalentes desde una perspectiva global en lugar de una puramente individual como hasta el momento. En base a ello, se propone un algoritmo evolutivo que utiliza esta relación entre mutantes equivalentes para resolver de forma más eficiente el problema de selección de mutantes. El trabajo fue publicado en Information and Software Technology, revista indexada en Clarivate Journal of Citation Reports con un índice de impacto de 2,726, y que se encuentra en el cuartil Q2 en la categoría Computer Science, Software Engineering (edición del índice: 2019).

Autores: Pedro Delgado-Pérez / Francisco Chicano / 
Palabras Clave: Evolutionary computation - Mutation testing - Software Testing

11 - Formulación Robusta para el Problema de Selección de Requisitos

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.

Autores: Francisco Chicano / Miguel Ángel Domínguez Ríos / 
Palabras Clave: optimización multi-objetivo - optimización robusta - programación lineal entera - Selección de requisitos