Skip to main content
Log in

Düzen: generating the structural model from the software source code using shuffled frog leaping algorithm

  • Original Article
  • Published:
Neural Computing and Applications Aims and scope Submit manuscript

Abstract

The cost of software maintenance is heavily influenced by program understanding. When the source code is the only product accessible, maintainers spend a significant amount of effort trying to understand the structure and behavior of the software. Program module clustering is a useful reverse-engineering technique for obtaining the software structural model from source code. Finding the best clustering is regarded as an NP-hard optimization problem, and several meta-heuristic methods have been employed to solve it. The fundamental flaws of the prior approaches were their insufficient performance and effectiveness. The major goals of this research are to achieve improved software clustering quality and stability. A new method (Düzen) is proposed in this research for improving software module clustering. As a meta-heuristic memetic algorithm, this technique employs the shuffled frog-leaping algorithm. The Düzen results were investigated and compared to those produced using earlier approaches. In terms of obtaining the best clustering quality, the proposed method was shown to be better and more successful than the others; it also had higher data stability and data convergence to optimal replies in a fewer number of repetitions. Furthermore, it acquired a higher data mean and a faster clustering execution time.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8

Similar content being viewed by others

References

  1. Akhlaq U, Yousaf MU (2010) Impact of software comprehension in software maintenance and evolution. Master Thesis, School of Computing Blekinge Institute of Technology, Sweden

  2. Doval D, Mancoridis S, Mitchell BS (1999) Automatic clustering of software systems using a genetic algorithm. In: Proceedings of the IEEE conference on software technology and engineering practice

  3. P. Amarjeet, J. K. Chhabra, “Improving Modular Structure Of Software System Using Structural And Lexical Dependency”, Information and Software Technology, Volume 82, 2017.

  4. Arasteh B, Fatolahzadeh A, Kiani F (2022) Savalan: multi objective and homogeneous method for software modules clustering. J Softw Evol 34(1):e2408. https://doi.org/10.1002/smr.240829

    Article  Google Scholar 

  5. Arasteh B, Razieh S, Keyvan A (2020) ARAZ: a software modules clustering method using the combination of particle swarm optimization and genetic algorithms. Intell Decis Technol 14(4):449–462

    Article  Google Scholar 

  6. Hatami E, Arasteh B (2020) An efficient and stable method to cluster software modules using ant colony optimization algorithm. J Supercomput 76:6786–6808

    Article  Google Scholar 

  7. Mitchell BS (2003) A heuristic search approach to solving the software clustering problem. A thesis submitted to the Faculty of Drexel University in Partial Fufillment of Therequirements for The Degree of Doctor of Philosop

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

    Article  Google Scholar 

  9. Shtern M (2010) Methods for evaluating, selecting and improving software. Graduate Program in Computer Science and Engineering, New York University, Toronto

  10. https://drive.google.com/drive/folders/1RV8ziR5Wxf_Amkqsi8mtFHxjTFkhusJA?usp=sharing

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

    Article  Google Scholar 

  12. Kennedy J, Eberhart R (1995) Particle swarm optimization. In: Proceedings of IEEE international conference on neural networks, pp 1942–1948

  13. Austin MA, Samadzadeh MH (2005) Software comprehension/maintenance: an introductory course. In: 18th International conference on systems engineering (ICSEng'05), Las Vegas, pp 414–419

  14. Kennedy J, Eberhart R (1995) Particle swarm optimization. In: Proceedings of ICNN'95—international conference on neural networks, Perth, WA, Australia, vol 4, pp 1942–1948

  15. Mancoridis S, Mitchell BS, Chen YF, Gansner ER (1999) Bunch: a clustering tool for the recovery and maintenance of software system structures. In: Proceedings of the IEEE international conference software maintenance

  16. Sun J, Ling B (2018) Software module clustering algorithm using probability selection. Wuhan Univ J Nat Sci 23(2):93–102

    Article  Google Scholar 

  17. Jiang F, Wang K, Dong L, Pan C, Xu W, Yang K (2020) Deep-learning-based joint resource scheduling algorithms for hybrid MEC networks. IEEE Internet Things J 7(7):6252–6265. https://doi.org/10.1109/JIOT.2019.2954503

    Article  Google Scholar 

  18. Jiang F, Wang K, Dong L, Pan C, Xu W, Yang K (2021) AI driven heterogeneous MEC system with UAV assistance for dynamic environment: challenges and solutions. IEEE Netw 35(1):400–408. https://doi.org/10.1109/MNET.011.2000440

    Article  Google Scholar 

  19. Jiang F, Dong L, Dai Q (2022) Designing a mixed multilayer wavelet neural network for solving ERI inversion problem with massive amounts of data: a hybrid STGWO-GD learning approach. IEEE Trans Cybern 52(2):925–936. https://doi.org/10.1109/TCYB.2020.2990319

    Article  Google Scholar 

  20. Xie T, Gong M, Tang Z, Lei Y, Liu J (2016) Enhancing evolutionary multifactorial optimization based on particle swarm optimization. In: IEEE congress on evolutionary computation (CEC)

  21. Garey MR, Johnson DS (1979) Computers and intractability: a guide to the theory of NP-completeness. ISBN-10: 0716710455

  22. Prajapati A, Chhabra JK (2018) TA-ABC: two-archive artificial bee colony for multi-objective software module clustering problem. J Intell Syst 27(4):619–641

    Google Scholar 

  23. Prajapati A, Kumar Chhabra J (2017) A particle swarm optimization-based heuristic for software module clustering problem. Arab J Sci Eng 43(12):7083–7094

    Article  Google Scholar 

  24. Eusuff M, Lansey K, Pasha F (2006) Shuffled frog-leaping algorithm—a memetic metaheuristic for discrete. Eng Optim 38(2):129–154

    Article  MathSciNet  Google Scholar 

  25. Duan QY, Gupta VK, Sorooshian S (1993) Shuffled complex evolution approach for effective and efficient global minimization. J Optim Theory Appl 76(3):501–521

    Article  MathSciNet  MATH  Google Scholar 

  26. Huang J, Liu J (2016) A similarity-based modularization quality measure for software module clustering problems. Inf Sci 342:96–110

    Article  Google Scholar 

  27. Amarjeet P, Chhabra JK (2018) FP-ABC: fuzzy-pareto dominance driven artificial bee colony algorithm for many-objective software module clustering. Comput Lang Syst Struct 52:1–21

    Google Scholar 

  28. Mancoridis S, Mitchell BS, Rorres C, Chen Y, Gansner ER (1998) Using automatic clustering to produce high-level system organizations of source code. Department of Mathematics & Computer Science Drexel University, Philadelphia

  29. McCall J (2005) Genetic algorithms for modelling and optimization. J Comput Appl Math 184(1):205–222

    Article  MathSciNet  MATH  Google Scholar 

Download references

Funding

The authors declare that no funds, grants, or other support were received during the preparation of this manuscript. The authors have no relevant financial or non-financial interests to disclose.

The datasets generated during and the implemented code during the current study is available in the google.drive can be freely accessed by [10].

Author information

Authors and Affiliations

Authors

Contributions

All authors contributed to the study conception and design. Thesis statement, data collection and analysis were performed by BA and MK. Experiments have been performed by RS and also, the first draft of the manuscript was written by MK and RS. All authors commented on previous versions of the manuscript. Bahman Arasteh read and approved the final manuscript.

Corresponding author

Correspondence to Bahman Arasteh.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Springer Nature or its licensor holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Arasteh, B., Karimi, M.B. & Sadegi, R. Düzen: generating the structural model from the software source code using shuffled frog leaping algorithm. Neural Comput & Applic 35, 2487–2502 (2023). https://doi.org/10.1007/s00521-022-07716-1

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00521-022-07716-1

Keywords

Navigation