Abstract
Search-Based Software Engineering is a research area that aims to tackle software engineering tasks as optimization problems. Among the problems in this area, we can find the Software Module Clustering Problem (SMCP). This problem, which has been proved to be \(\mathcal{N}\mathcal{P}\)-hard, focuses on finding the best organization of a software project in terms of modularity. Since modular code is easier to understand, the result is an increase of the quality of software projects and thus a reduction of the costs associated to their maintenance. To tackle the SMCP, software projects are often modeled as graphs that represent the dependencies between different components. In this work, we study two well-known multi-objective approaches for the SMCP: the Maximizing Cluster Approach (MCA) and the Equal-size Cluster Approach (ECA). Each of these variants is composed of 5 different objectives. We propose a heuristic algorithm based on the Multi-Objective Variable Neighborhood Descent (MO-VND) schema to tackle the aforementioned variants and we introduce three neighborhoods to be explored within the algorithm. Finally, we compare the performance of our proposal with the performance of NSGA-III over a dataset of real software projects. The results show that the proposed algorithm is competitive when tackling the MCA, and some ideas are given to increase its efficiency when tackling the ECA.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Arasteh, B., Fatolahzadeh, A., Kiani, F.: Savalan: multi objective and homogeneous method for software modules clustering. J. Softw.: Evol. Process 34(1), e2408 (2022)
Barros, M.D.O.: An analysis of the effects of composite objectives in multiobjective software module clustering. In: Proceedings of the 14th annual conference on Genetic and evolutionary computation, pp. 1205–1212 (2012)
Brandes, U., et al.: On modularity clustering. IEEE Trans. Knowl. Data Eng. 20(2), 172–188 (2007)
Chen, C., Alfayez, R., Srisopha, K., Boehm, B., Shi, L.: Why is it important to measure maintainability and what are the best ways to do it? In: 2017 IEEE/ACM 39th International Conference on Software Engineering Companion (ICSE-C), pp. 377–378. IEEE (2017)
Chhabra, J.K., et al.: TA-ABC: two-archive artificial bee colony for multi-objective software module clustering problem. J. Intell. Syst. 27(4), 619–641 (2018)
Colanzi, T.E., Assunção, W.K., Vergilio, S.R., Farah, P.R., Guizzo, G.: The symposium on search-based software engineering: past, present and future. Inf. Softw. Technol. 127, 106372 (2020)
Duarte, A., Pantrigo, J.J., Pardo, E.G., Mladenovic, N.: Multi-objective variable neighborhood search: an application to combinatorial optimization problems. J. Global Optim. 63(3), 515–536 (2015)
Durillo, J.J., Nebro, A.J.: jMetal: a java framework for multi-objective optimization. Adv. Eng. Softw. 42(10), 760–771 (2011)
Harman, M., Mansouri, S.A., Zhang, Y.: Search-based software engineering: trends, techniques and applications. ACM Comput. Surv. (CSUR) 45(1), 1–61 (2012)
Huang, J., Liu, J., Yao, X.: A multi-agent evolutionary algorithm for software module clustering problems. Soft. Comput. 21(12), 3415–3428 (2017)
International Organization for Standardization: ISO/IEC/IEEE 24765:2017 Systems and software engineering - Vocabulary (2017)
Kumari, A.C., Srinivas, K.: Hyper-heuristic approach for multi-objective software module clustering. J. Syst. Softw. 117, 384–401 (2016)
López-Ibáñez, M., Dubois-Lacoste, J., Cáceres, L.P., Birattari, M., Stützle, T.: The Irace package: iterated racing for automatic algorithm configuration. Oper. Res. Perspect. 3, 43–58 (2016)
Mancoridis, S., Mitchell, B.S., Rorres, C., Chen, Y.F., Gansner, E.R.: Using automatic clustering to produce high-level system organizations of source code. In: 6th International Workshop on Program Comprehension (IWPC 1998), pp. 45–52. IEEE (1998)
Martín, R., Cavero, S.: MORK: metaheuristic optimization framewoRK. https://doi.org/10.5281/zenodo.6241738
Mitchell, B.S., Mancoridis, S.: A Heuristic Search Approach to Solving the Software Clustering Problem. Drexel University Philadelphia, PA, USA (2002)
Mitchell, B.S., Mancoridis, S.: Using heuristic search techniques to extract design abstractions from source code. In: Proceedings of the 4th Annual Conference on Genetic and Evolutionary Computation, pp. 1375–1382 (2002)
Mkaouer, W., et al.: Many-objective software remodularization using NSGA-III. ACM Trans. Softw. Eng. Methodol. (TOSEM) 24(3), 1–45 (2015)
Mladenović, N., Hansen, P.: Variable neighborhood search. Comput. Oper. Res. 24(11), 1097–1100 (1997)
Monçores, M.C., Alvim, A.C.F., Barros, M.O.: Large neighborhood search applied to the software module clustering problem. Comput. Oper. Res. 91, 92–111 (2018)
Mu, L., Sugumaran, V., Wang, F.: A hybrid genetic algorithm for software architecture re-modularization. Inf. Syst. Front. 22(5), 1133–1161 (2020)
de Oliveira Barros, M., de Almeida Farzat, F., Travassos, G.H.: Learning from optimization: a case study with apache ant. Inf. Softw. Technol. 57, 684–704 (2015)
Pinto, A.F., de Faria Alvim, A.C., de Oliveira Barros, M.: ILS for the software module clustering problem. XLVI Simpósio Brasileiro de Pesquisa Operacional. Salvador:[sn], pp. 1972–1983 (2014)
Pourasghar, B., Izadkhah, H., Isazadeh, A., Lotfi, S.: A graph-based clustering algorithm for software systems modularization. Inf. Softw. Technol. 133, 106469 (2021)
Praditwong, K.: Solving software module clustering problem by evolutionary algorithms. In: 2011 Eighth International Joint Conference on Computer Science and Software Engineering (JCSSE), pp. 154–159. IEEE (2011)
Praditwong, K., Harman, M., Yao, X.: Software module clustering as a multi-objective search problem. IEEE Trans. Softw. Eng. 37(2), 264–282 (2010)
Prajapati, A.: Software module clustering using grid-based large-scale many-objective particle swarm optimization. Soft Comput., 1–22 (2022)
Prajapati, A., Chhabra, J.K.: A particle swarm optimization-based heuristic for software module clustering problem. Arab. J. Sci. Eng. 43(12), 7083–7094 (2018)
Ramirez, A., Romero, J.R., Ventura, S.: A survey of many-objective optimisation in search-based software engineering. J. Syst. Softw. 149, 382–395 (2019)
Yuste, J., Duarte, A., Pardo, E.G.: An efficient heuristic algorithm for software module clustering optimization. J. Syst. Softw. 190, 111349 (2022)
Acknowledgements
This research has been partially supported by grants: PID2021-125709OA-C22 and PID2021-126605NB-I00, funded by MCIN/AEI/10.13039/501100011033 and by ‘ERDF A way of making Europe’; grant P2018/TCS-4566, funded by Comunidad de Madrid and European Regional Development Fund; grant CIAICO/2021/224 funded by Generalitat Valenciana; and grant M2988 funded by Proyectos Impulso de la Universidad Rey Juan Carlos 2022.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2023 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this paper
Cite this paper
Yuste, J., Pardo, E.G., Duarte, A. (2023). Multi-objective Variable Neighborhood Search for Improving Software Modularity. In: Sleptchenko, A., Sifaleras, A., Hansen, P. (eds) Variable Neighborhood Search. ICVNS 2022. Lecture Notes in Computer Science, vol 13863. Springer, Cham. https://doi.org/10.1007/978-3-031-34500-5_5
Download citation
DOI: https://doi.org/10.1007/978-3-031-34500-5_5
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-34499-2
Online ISBN: 978-3-031-34500-5
eBook Packages: Computer ScienceComputer Science (R0)