Skip to main content

Variable Neighborhood Descent for Software Quality Optimization

  • Conference paper
  • First Online:
Metaheuristics (MIC 2022)

Abstract

In the Software Development Life-Cycle, the maintenance phase is often the most costly stage due to the efforts devoted to understanding the system. The Software Module Clustering Problem (SMCP) is an optimization problem which objective is to find the most modular organization of software systems to ease their comprehension. In this problem, software projects are frequently modeled as graphs. Then, the objective of the SMCP, which is proved to be \(\mathcal{N}\mathcal{P}\)-hard, is to group the vertices in modules such that the modularity of the graph is maximized. In this work, we present an algorithm based on Variable Neighborhood Descent for the SMCP and study a novel quality metric, the Function of Complexity Balance, which was recently proposed for the problem. Our proposal has been favorably evaluated over a dataset of 34 real software projects, outperforming the previous state-of-the-art method, a Hybrid Genetic Algorithm, in terms of both quality and computing time. Furthermore, the results are statistically significant according to the Wilcoxon’s signed rank test.

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 69.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 89.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

Notes

  1. 1.

    https://github.com/JavierYuste/Variable-Neighborhood-Descent-for-software-quality-optimization.

References

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

    Article  Google Scholar 

  2. Cavero, S., Pardo, E.G., Duarte, A.: A general variable neighborhood search for the cyclic antibandwidth problem. Comput. Optim. Appl. 81, 657–687 (2022)

    Google Scholar 

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

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

    Google Scholar 

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

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

  7. Martín, R., Cavero, S.: MORK: Metaheuristic Optimization framewoRK. https://doi.org/10.5281/zenodo.6241738

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

    Article  MathSciNet  MATH  Google Scholar 

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

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

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

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

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

  14. 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 funded by the Spanish government (Refs. PGC2018-095322-B-C22 and PID2021-125709OA-C22) and by the Comunidad de Madrid (Ref. P2018/TCS-4566), cofinanced by European Structural Funds ESF and FEDER. The opinions, findings, and conclusions or recommendations expressed are those of the authors and do not necessarily reflect those of any of the funders.

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). Variable Neighborhood Descent for Software Quality Optimization. In: Di Gaspero, L., Festa, P., Nakib, A., Pavone, M. (eds) Metaheuristics. MIC 2022. Lecture Notes in Computer Science, vol 13838. Springer, Cham. https://doi.org/10.1007/978-3-031-26504-4_44

Download citation

  • DOI: https://doi.org/10.1007/978-3-031-26504-4_44

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-031-26503-7

  • Online ISBN: 978-3-031-26504-4

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics