
Software Module Clustering
- Javier Yuste , Eduardo G Pardo
- 17 de julio de 2025
Tabla de Contenidos
Software Module Clustering
Descripción del problema
El Software Module Clustering Problem (SMCP) consiste en organizar el código de los sistemas de software en diferentes carpetas o paquetes. El objetivo es optimizar la modularidad del código, maximizando la cohesión y minimizando el acoplamiento. Esto, a su vez, mejora la mantenibilidad, escalabilidad y comprensibilidad de los sistemas de software. El SMCP es fundamental en la ingeniería de software, especialmente en el contexto del mantenimiento, comprensión y reingeniería del software.
Contexto industrial
En la industria, los sistemas de software a gran escala suelen evolucionar con el tiempo, lo que conduce a una erosión arquitectónica y dependencias enmarañadas. El SMCP proporciona un enfoque sistemático para reestructurar dichos sistemas mediante la identificación de agrupaciones lógicas de módulos. Esto es especialmente valioso en sistemas heredados, migraciones a microservicios y entornos de integración continua. Las empresas que buscan refactorizar aplicaciones monolíticas o mejorar métricas de calidad del software se benefician significativamente del agrupamiento efectivo de módulos.
Desafíos comunes
Existen tres desafíos principales en el SMCP:
- Escalabilidad: el SMCP es un problema NP-difícil. El número de soluciones posibles crece exponencialmente con el número de módulos. Encontrar la mejor solución en un tiempo aceptable es un reto.
- Modelado: existen diferentes formas de modelar un sistema de software para encontrar una buena organización. Modelar las entidades y dependencias dentro del código no es trivial.
- Evaluación: hay diferentes métricas para evaluar la calidad de las soluciones. Además, algunas de estas métricas están en conflicto —mejorar una a menudo implica empeorar otra—, por lo que debe encontrarse un equilibrio. El equilibrio deseable es subjetivo y depende del responsable de la toma de decisiones.
Solution Approaches
Para resolver el desafío de la evaluación de soluciones, el SMCP puede abordarse como un problema de optimización multiobjetivo, donde se consideran varios objetivos y se tienen en cuenta las preferencias del responsable de la decisión. Para afrontar el desafío de la escalabilidad, normalmente se eligen métodos aproximados para resolver el problema, los cuales son capaces de encontrar soluciones de alta calidad en tiempos de cómputo reducidos. En particular, las propuestas más recientes se basan en técnicas de búsqueda de vecindad variable (VNS, del inglés Variable Neighborhood Search).
Referencias
- Yuste, J., Pardo, E. G., Duarte, A., & Hao, J. K. (2024). Multi-objective general variable neighborhood search for software maintainability optimization. Engineering Applications of Artificial Intelligence, 133, 108593.
- Yuste, J., Pardo, E. G., & Duarte, A. (2024). General Variable Neighborhood Search for the optimization of software quality. Computers & Operations Research, 165, 106584.
- Yuste, J., Pardo, E. G., & Duarte, A. (2022, October). Multi-objective variable neighborhood search for improving software modularity. In International Conference on Variable Neighborhood Search (pp. 58-68). Cham: Springer Nature Switzerland.
- Yuste, J., Duarte, A., & Pardo, E. G. (2022). An efficient heuristic algorithm for software module clustering optimization. Journal of Systems and Software, 190, 111349.
- Yuste, J., Pardo, E. G., & Duarte, A. (2022, July). Variable neighborhood descent for software quality optimization. In Metaheuristics International Conference (pp. 531-536). Cham: Springer International Publishing.
Agradecimientos
Esta investigación ha sido parcialmente financiada por los siguientes proyectos: PGC2018-095322-B-C22, PID2021125709OA-C22 y PID2021-126605NB-I00, por la Agencia Española de Investigación, España, y por ‘‘ERDF A way of making Europe’’; P2018/TCS-4566, financiada por la Comunidad de Madrid, España, y cofinanciada por European Structural Funds ESF y FEDER, España; CIAICO/2021/224 por la Generalitat Valenciana, España; M2988 por la convocatoria ‘‘Proyectos Impulso de la Universidad Rey Juan Carlos 2022, España’’; ‘‘Cátedra de Innovación y Digitalización Empresarial entre Universidad Rey Juan Carlos y Second Episode, Spain’’ (Ref. ID MCA06); y ‘‘Red Española de optimización heurística 4.0 digitalización, Spain’’ (Ref. RED2022-134480-T). Las opiniones, conclusiones y recomendaciones expresadas en esta investigación son las de los autores y no reflejan necesariamente aquellas de las entidades financiadoras.

