Skip to main content

Multi-objective Variable Neighborhood Search for Improving Software Modularity

  • Conference paper
  • First Online:
Variable Neighborhood Search (ICVNS 2022)

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 44.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 59.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  1. Arasteh, B., Fatolahzadeh, A., Kiani, F.: Savalan: multi objective and homogeneous method for software modules clustering. J. Softw.: Evol. Process 34(1), e2408 (2022)

    Google Scholar 

  2. 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)

    Google Scholar 

  3. Brandes, U., et al.: On modularity clustering. IEEE Trans. Knowl. Data Eng. 20(2), 172–188 (2007)

    Article  Google Scholar 

  4. 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)

    Google Scholar 

  5. 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)

    Google Scholar 

  6. 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)

    Article  Google Scholar 

  7. 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)

    Article  MathSciNet  MATH  Google Scholar 

  8. Durillo, J.J., Nebro, A.J.: jMetal: a java framework for multi-objective optimization. Adv. Eng. Softw. 42(10), 760–771 (2011)

    Article  Google Scholar 

  9. Harman, M., Mansouri, S.A., Zhang, Y.: Search-based software engineering: trends, techniques and applications. ACM Comput. Surv. (CSUR) 45(1), 1–61 (2012)

    Article  Google Scholar 

  10. Huang, J., Liu, J., Yao, X.: A multi-agent evolutionary algorithm for software module clustering problems. Soft. Comput. 21(12), 3415–3428 (2017)

    Article  Google Scholar 

  11. International Organization for Standardization: ISO/IEC/IEEE 24765:2017 Systems and software engineering - Vocabulary (2017)

    Google Scholar 

  12. Kumari, A.C., Srinivas, K.: Hyper-heuristic approach for multi-objective software module clustering. J. Syst. Softw. 117, 384–401 (2016)

    Article  Google Scholar 

  13. 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)

    MathSciNet  Google Scholar 

  14. 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)

    Google Scholar 

  15. Martín, R., Cavero, S.: MORK: metaheuristic optimization framewoRK. https://doi.org/10.5281/zenodo.6241738

  16. Mitchell, B.S., Mancoridis, S.: A Heuristic Search Approach to Solving the Software Clustering Problem. Drexel University Philadelphia, PA, USA (2002)

    Google Scholar 

  17. 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)

    Google Scholar 

  18. Mkaouer, W., et al.: Many-objective software remodularization using NSGA-III. ACM Trans. Softw. Eng. Methodol. (TOSEM) 24(3), 1–45 (2015)

    Article  Google Scholar 

  19. Mladenović, N., Hansen, P.: Variable neighborhood search. Comput. Oper. Res. 24(11), 1097–1100 (1997)

    Article  MathSciNet  MATH  Google Scholar 

  20. 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)

    Article  MathSciNet  MATH  Google Scholar 

  21. Mu, L., Sugumaran, V., Wang, F.: A hybrid genetic algorithm for software architecture re-modularization. Inf. Syst. Front. 22(5), 1133–1161 (2020)

    Article  Google Scholar 

  22. 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)

    Article  Google Scholar 

  23. 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)

    Google Scholar 

  24. Pourasghar, B., Izadkhah, H., Isazadeh, A., Lotfi, S.: A graph-based clustering algorithm for software systems modularization. Inf. Softw. Technol. 133, 106469 (2021)

    Article  Google Scholar 

  25. 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)

    Google Scholar 

  26. Praditwong, K., Harman, M., Yao, X.: Software module clustering as a multi-objective search problem. IEEE Trans. Softw. Eng. 37(2), 264–282 (2010)

    Article  Google Scholar 

  27. Prajapati, A.: Software module clustering using grid-based large-scale many-objective particle swarm optimization. Soft Comput., 1–22 (2022)

    Google Scholar 

  28. 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)

    Article  Google Scholar 

  29. 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)

    Article  Google Scholar 

  30. Yuste, J., Duarte, A., Pardo, E.G.: An efficient heuristic algorithm for software module clustering optimization. J. Syst. Softw. 190, 111349 (2022)

    Article  Google Scholar 

Download references

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

Authors

Corresponding author

Correspondence to Javier Yuste .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2023 The Author(s), under exclusive license to Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

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)

Publish with us

Policies and ethics