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.








Similar content being viewed by others
Explore related subjects
Discover the latest articles and news from researchers in related subjects, suggested using machine learning.References
Akhlaq U, Yousaf MU (2010) Impact of software comprehension in software maintenance and evolution. Master Thesis, School of Computing Blekinge Institute of Technology, Sweden
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
P. Amarjeet, J. K. Chhabra, “Improving Modular Structure Of Software System Using Structural And Lexical Dependency”, Information and Software Technology, Volume 82, 2017.
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
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
Hatami E, Arasteh B (2020) An efficient and stable method to cluster software modules using ant colony optimization algorithm. J Supercomput 76:6786–6808
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
Praditwong K, Harman M, Yao X (2011) Software module clustering as a multi-objective search problem. IEEE Trans Softw Eng 37(2):264–282
Shtern M (2010) Methods for evaluating, selecting and improving software. Graduate Program in Computer Science and Engineering, New York University, Toronto
https://drive.google.com/drive/folders/1RV8ziR5Wxf_Amkqsi8mtFHxjTFkhusJA?usp=sharing
Kumari AC, Srinivas K (2016) Hyper-heuristic approach for multi-objective software module clustering. Syst Softw 117:384–401
Kennedy J, Eberhart R (1995) Particle swarm optimization. In: Proceedings of IEEE international conference on neural networks, pp 1942–1948
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
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
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
Sun J, Ling B (2018) Software module clustering algorithm using probability selection. Wuhan Univ J Nat Sci 23(2):93–102
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
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
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
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)
Garey MR, Johnson DS (1979) Computers and intractability: a guide to the theory of NP-completeness. ISBN-10: 0716710455
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
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
Eusuff M, Lansey K, Pasha F (2006) Shuffled frog-leaping algorithm—a memetic metaheuristic for discrete. Eng Optim 38(2):129–154
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
Huang J, Liu J (2016) A similarity-based modularization quality measure for software module clustering problems. Inf Sci 342:96–110
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
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
McCall J (2005) Genetic algorithms for modelling and optimization. J Comput Appl Math 184(1):205–222
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
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
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.
About this article
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
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00521-022-07716-1