Abstract
Comprehension of the structure of software will facilitate maintaining the software more efficiently. Clustering software modules, as a reverse engineering technique, is assumed to be an effective technique in extracting comprehensible structural-models of software from the source code. Finding the best clustering model of a software system is regarded as a NP-complete problem. Minimizing the connections among the created clusters, maximizing the internal connections within the created clusters and maximizing the clustering quality are considered to be the most important objectives in software module clustering (SMC). Poor success rate, low stability and modularization quality are regarded as the major drawbacks of the previously proposed methods. In this paper, five different heuristic algorithms (Bat, Cuckoo, Teaching–Learning-Based, Black Widow and Grasshopper algorithms) are proposed for optimal clustering of software modules. Also, the effects of chaos theory in the performance of these algorithms in this problem have been experimentally investigated. The results of conducted experiments on the eight standard and real-world applications indicate that performance of the BWO, PSO, and TLB algorithms are higher than the other algorithms in SMC problem; also, the performance of these algorithm increased when their initial population were generated with logistic chaos method instead of random method. The average MQ of the generated clusters for the selected benchmark set by BWO, PSO and TLB are 3.155, 3.120 and 2.778, respectively.



















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
Mitchell BS, Mancoridis S (2002) A heuristic search approach to solving the software clustering problem. Drexel University, Philadelphia
Praditwong K, Harman M, Yao X (2011) Software module clustering as a multi-objective search problem. IEEE Trans Software Eng 37(2):282–264
Roger S (2000) Pressman: software engineering: a practitioner’s approach (European Adaptation). McGrawHill, New York
Prajapati A, Chhabra JK (2017) A particle swarm optimization-based heuristic for software module clustering problem. Arab J Sci Eng 43(12):7083–7094
Mancoridis S et al (1999) Bunch: a clustering tool for the recovery and maintenance of software system structures. In: Proceedings IEEE international conference on software maintenance-1999 (ICSM'99). Software Maintenance for Business Change'(Cat. No. 99CB36360) IEEE
Mamaghani A, Hajizadeh M (2014) Software modularization using the modified firefly algorithm. In: 8th Malaysian software engineering conference (MySEC)
Harman M, Swift S, Mahdavi K (2005) An empirical study of the robustness of two module clustering fitness functions. In: Proceedings of the 7th annual conference on genetic and evolutionary computation
Praditwong K (2011) Solving software module clustering problem by evolutionary algorithms. In 2011 eighth international joint conference on computer science and software engineering (JCSSE). IEEE
Chhabra JK (2017) Harmony search based remodularization for object-oriented software systems. Comput Lang Syst Struct 47:153–169
Mahdavi K, Harman M, Hierons RM (2003) A multiple hill climbing approach to software module clustering. In: International conference on software maintenance, 2003. ICSM 2003. Proceedings 2003. IEEE
Bavota G et al (2012) Putting the developer in-the-loop: an interactive GA for software re-modularization. In: International symposium on search based software engineering. Springer, Berlin
Maletic JI, Marcus A (2001) Supporting program comprehension using semantic and structural information. In: Proceedings of the 23rd international conference on software engineering 2001. IEEE Computer Society
Barros MdO (2012) 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
Gandomi AH, Yang XS, Alavi AH et al (2013) Bat algorithm for constrained optimization tasks. Neural Comput Appl 22:1239–1255. https://doi.org/10.1007/s00521-012-1028-915
Arcuri A, Yao X (2014) Co-evolutionary automatic programming for software development. Inf Sci 259:412–432
Saremi S, Mirjalili S, Lewis A (2017) Grasshopper optimisation algorithm: theory and application. Adv Eng Softw 105:30–47. ISSN 0965-9978
Chhabra JK (2017) Improving package structure of object-oriented software using multi-objective optimization and weighted class connections. J King Saud Univ Comput Inf Sci 29(3):349–364
Chhabra JK (2017) Improving modular structure of software system using structural and lexical dependency. Inf Softw Technol 82:96–120
Amarjeet, Chhabra JK (2018) TA-ABC: two-archive artificial bee colony for multi-objective software module clustering problem. J Intell Syst 27(4):619–641. https://doi.org/10.1515/jisys-2016-0253
Pourasghar B, Izadkhah H, Isazadeh A, Lotfi S (2021) A graph-based clustering algorithm for software systems modularization. Inf Softw Technol 133:106469
Güngör E, Cavus E, Pehlivan İ (2019) A logistic map Runge Kutta-4 solution for FPGA using fixed point representation. Chaos Theory Appl 1 (1): 19–28. Retrieved from https://dergipark.org.tr/en/pub/chaos/issue/50396/653250
Yang XS, Deb S (2014) Cuckoo search: recent advances and applications. Neural Comput Applc 24:169–174. https://doi.org/10.1007/s00521-013-1367-1
Arasteh B, Sadegi R, Arasteh K (2019) Bölen: software module clustering method using the combination of shuffled frog leaping and genetic algorithm. Data Technol Appl ahead-of-print No. ahead-of-print. https://doi.org/10.1108/DTA-08-2019-0138
Rao RV, Savsani VJ, Vakharia DP (2011)Teaching-learning-based optimization: a novel method for constrained mechanical design optimization problems. Comput Aided Des 43(3):303–315, ISSN 0010-4485, https://doi.org/10.1016/j.cad.2010.12.015
Hayyolalam V, Pourhaji Kazem A (2020) Black Widow Optimization Algorithm: a novel meta-heuristic approach for solving engineering optimization problems. Eng Appl Artif Intell 87:103249, ISSN 0952-1976
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 (2020).
Zelinka I, Diep QB, Snášel V, Das S, Innocenti G, Tesi A, Schoen F, Kuznetsov NV (2022) Impact of chaotic dynamics on the performance of metaheuristic optimization algorithms: an experimental analysis. Inf Sci 587:692–719, ISSN 0020-0255. https://doi.org/10.1016/j.ins.2021.10.076
Acknowledgements
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.
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. Experiments have been performed by BA and also, the report of the manuscript was written by him. Statistical analysis of the results has been performed by BA.
Corresponding author
Ethics declarations
Conflict of interests
The authors declared that they have no conflict of interest.
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. Clustered design-model generation from a program source code using chaos-based metaheuristic algorithms. Neural Comput & Applic 35, 3283–3305 (2023). https://doi.org/10.1007/s00521-022-07781-6
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00521-022-07781-6