Debido al alto tráfico generado por robots, aplicamos límites en el número de peticiones permitidas por cliente y bloqueos por IP automáticos. Si haces un uso legítimo y estás teniendo problemas, avísanos para reevaluar nuestras políticas de bloqueo. Disculpa las molestias.

Artículo:
Enfoque Multiobjetivo de Programación Lineal Entera para la Reducción Automática de la Complejidad Cognitiva del Software

Cargando...
Miniatura

Editor

Sistedes

Publicado en

Actas de las XXX Jornadas de Ingeniería del Software y Bases de Datos (JISBD 2026)

Licencia Creative Commons

Resumen

El código de un proyecto de software debe ser claro y conciso para asegurar su mantenibilidad, por lo que es crucial que sea lo más simple posible de entender, para evitar errores y, sobre todo, vulnerabilidades. Una de las métricas de calidad del software es la complejidad cognitiva, que mide el esfuerzo relativo que un desarrollador debe emplear para comprender un código. En este trabajo se utilizará la medida de complejidad cognitiva definida por SonarSource, que considera las sentencias de control de flujo y su nivel de anidamiento. La refactorización de extracción de código a otros métodos se puede plantear como un problema de optimización combinatoria para reducir la complejidad cognitiva del software automáticamente. La principal dificultad radica en que existen distintos criterios para evaluar las soluciones obtenidas, por lo que en este trabajo se modela el problema de reducción de complejidad cognitiva a través de programación lineal entera multiobjetivo. Este planteamiento permite obtener un conjunto de soluciones que reducen la complejidad cognitiva de un fragmento de código dado por debajo de un límite establecido. Además, se equilibran otras características del código, como la propia complejidad cognitiva y el número de líneas existentes entre los diferentes métodos resultantes de las operaciones de refactorización. Por último, se ha desarrollado un algoritmo para resolver el modelo y se ha evaluado sobre un proyecto software de empresa y tres proyectos de código abierto populares. La evaluación experimental muestra que se encuentran soluciones óptimas para el 65,46% de las instancias estudiadas, resolviendo a su vez el 75% de ellas en menos de 52 segundos.

Descripción

Acerca de Novoa-Hurtado, Adriana

Palabras clave

Complejidad Cognitiva, Refactorización De Software, Optimización Multiobjetivo

Citación

Novoa-Hurtado, A., Saborido, R., Chicano, F., Giménez-Medina, M.: Enfoque Multiobjetivo de Programación Lineal Entera para la Reducción Automática de la Complejidad Cognitiva del Software. In: Cetina, C. (ed.) Actas de las XXX Jornadas de Ingeniería del Software y Bases de Datos (JISBD 2026). Sistedes (2026). https://hdl.handle.net/11705/JISBD/2026/101