Abstract
Software modularization is complex but crucial to the software design process. The complexity in software modularization arises due to inter-dependencies among its constituting elements. A good software structure performs certain enhancement, and makes maintenance work easier for developers that consequently saves development and testing effort cycles. Software failures due to poor design and structure have motivated exhaustive research in this field. This encouraged the formulation of software modularization clustering problem (SMCP) as a search problem with an aim to identify the possible best module clustering solution that can optimize cohesion and coupling. With the inception of search-based software engineering, many optimization problems have been successfully addressed with meta-heuristics. Differential evolution (DE), a popular algorithm, is stable, versatile, robust with few control parameters and considered as an effective meta-heuristic for solving optimization problems. This paper introduces a novel formulation of DE as differential evolution software module clustering (DESMC) to identify optimal clustering solution for any software. It is guided by fitness based on modularization quality factors. The proposed formulation redefines classical concepts of donor vector, trial vector, and mutation operator for DESMC to adapt the discrete nature of SMCP. The performance of DESMC is evaluated on a set of test problems identified from literature and open source. Further, the results are compared against other three rivalry approaches, namely hill climbing, genetic algorithm, and particle swarm optimization. The observation shows that DESMC outperforms the existing state-of-the-art methods.
![](http://media.springernature.com/m312/springer-static/image/art%3A10.1007%2Fs42979-023-02238-6/MediaObjects/42979_2023_2238_Fig1_HTML.png)
![](http://media.springernature.com/m312/springer-static/image/art%3A10.1007%2Fs42979-023-02238-6/MediaObjects/42979_2023_2238_Fig2_HTML.png)
![](http://media.springernature.com/m312/springer-static/image/art%3A10.1007%2Fs42979-023-02238-6/MediaObjects/42979_2023_2238_Fig3_HTML.png)
![](http://media.springernature.com/m312/springer-static/image/art%3A10.1007%2Fs42979-023-02238-6/MediaObjects/42979_2023_2238_Fig4_HTML.png)
![](http://media.springernature.com/m312/springer-static/image/art%3A10.1007%2Fs42979-023-02238-6/MediaObjects/42979_2023_2238_Fig5_HTML.png)
![](http://media.springernature.com/m312/springer-static/image/art%3A10.1007%2Fs42979-023-02238-6/MediaObjects/42979_2023_2238_Fig6_HTML.png)
Similar content being viewed by others
References
Doval D, Mancoridis S, Mitchell BS (1999) Automatic clustering of software systems using a genetic algorithm. In STEP'99. Proceedings Ninth International Workshop Software Technology and Engineering Practice (pp. 73–81). IEEE.
Harman M, Yao X. Software module clustering as a multi-objective search problem. IEEE Trans Software Eng. 2010;37(2):264–82.
Pressman, Roger S. Software engineering: a practitioner's approach. Palgrave macmillan, 2005.
Mancoridis S, Mitchell BS, Rorres C, Chen Y, Gansner ER (1998) Using automatic clustering to produce high-level system organizations of source code. In Proceedings. 6th International Workshop on Program Comprehension. IWPC'98 (Cat. No. 98TB100242) (pp. 45–52). IEEE.
Hutchens DH, Basili VR. System structure analysis: Clustering with data bindings. IEEE transactions on Software Engine; 1985.
Saeed M, Maqbool O, Babri HA, Hassan SZ, Sarwar SM. Software clustering techniques and the use of combined algorithm. In Seventh European Conference onSoftware Maintenance and Reengineering, 2003. Proceedings. (pp. 301–306). IEEE; 2003.
Maqbool O, Babri H. Hierarchical clustering for software architecture recovery. IEEE Trans Software Eng. 2007;33(11):759–80.
Naseem R, Maqbool O, Muhammad S. Cooperative clustering for software modularization. J Syst Softw. 2013;86(8):2045–62.
Gupta N, Rana A, Gupta S. Fitness for Solving SMCP Using Evolutionary Algorithm. In IOP Conference Series: Materials Science and Engineering (Vol. 1099, No. 1, p. 012041). IOP Publishing; 2021.
Mitchell BS. A heuristic search approach to solving the software clustering problem. Drexel University; 2002.
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.
Kumari AC, Srinivas K, Gupta MP. Software module clustering using a hyper-heuristic based multi-objective genetic algorithm. In 2013 3rd IEEE International Advance Computing Conference (IACC) (pp. 813–818). IEEE; 2013.
Harman M, Swift S, Mahdavi K. An empirical study of the robustness of two module clustering fitness functions. In Proceedings of the 7th annual conference on Genetic and evolutionary computation (pp. 1029–1036); 2005.
Chhabra JK. Improving package structure of object-oriented software using multi-objective optimization and weighted class connections. J King Saud Univ Comp Inform Sci. 2017;29(3):349–64.
Bavota G, Gethers M, Oliveto R, Poshyvanyk D, Lucia AD. Improving software modularization via automated analysis of latent topics and dependencies. ACM Trans Softw Eng Method. 2014;23(1):1–33.
Chhabra JK. Harmony search based remodularization for object-oriented software systems. Comput Lang Syst Struct. 2017;47:153–69.
Neetu G. ACTUM–tool for automatic class testing using meta-heuristics. In 2022 10th International Conference on Reliability, Infocom Technologies and Optimization (Trends and Future Directions) (ICRITO) (pp. 1–4). IEEE; 2022.
Prajapati A, Chhabra JK. A particle swarm optimization-based heuristic for software module clustering problem. Arab J Sci Eng. 2018;43:7083–94.
Hatami E, Arasteh B. An efficient and stable method to cluster software modules using ant colony optimization algorithm. J Supercomput. 2020;76(9):6786–808.
Amarjeet J, Chhabra K. "FP-ABC: Fuzzy-Pareto dominance driven artificial bee colony algorithm for many-objective software module clustering", Comput. Lang. Syst. Structures, vol. 51, pp. 1–21, 2017.
Amarjeet A, Chhabra JK. Many-objective artificial bee colony algorithm for large-scale software module clustering problem. Soft Comput. 2018;22(19):6341–61.
Storn R, Price K. Differential evolution a simple evolution strategy for fast optimization. Dr Dobb’s J. 1997;22(4):18–24.
Varshney S, Mehrotra M. A differential evolution based approach to generate test data for data-flow coverage. In 2016 international conference on computing, communication and automation (ICCCA) (pp. 796–801). IEEE; 2016.
Lichtblau D. Differential evolution in discrete optimization. Int J Swarm Intell Evol Comput. 2012;1(2012):1–10.
Uher V, Gajdoš P, Radecký M, Snášel V. Utilization of the discrete differential evolution for optimization in multidimensional point clouds. Computational Intelligence and Neuroscience, 2016.
Maeda M, Chikuba Y. An Algorithm of Set-Based Differential Evolution for Discrete Optimization Problem. In Data Mining and Big Data: 7th International Conference, DMBD 2022, Bei**g, China, November 21–24, 2022, Proceedings, Part II (pp. 105–117). Singapore: Springer Nature Singapore; 2003.
Sarhan QI, Ahmed BS, Bures M, Zamli KZ. Software Module Clustering: An In-Depth Literature Analysis. IEEE Trans Softw Eng. 2022;48(6):1905–28. https://doi.org/10.1109/TSE.2020.3042553.
Lutz R. Evolving good hierarchical decompositions of complex systems. J Syst Architect. 2001;47(7):613–34.
Harman M, Hierons RM, Proctor M. A New Representation And Crossover Operator For Search-based Optimization Of Software Modularization. In GECCO (Vol. 2, pp. 1351–1358); 2002.
Seng O, Bauer M, Biehl M, Pache G. Search-based improvement of subsystem decompositions. In Proceedings of the 7th annual conference on Genetic and evolutionary computation. 2005; 1045–1051.
Falkenauer E. Genetic algorithms and grou** problems. John Wiley & Sons Inc; 1998.
Kumari AC, Srinivas K. Software module clustering using a fast multi-objective hyper-heuristic evolutionary algorithm. Int J Appl Inform Syst. 2013;5(6):12–8.
Deb K, Pratap A, Agarwal S, Meyarivan TAMT. A fast and elitist multiobjective genetic algorithm: NSGA-II. IEEE Trans Evol Comput. 2002;6(2):182–97.
Mkaouer W, Kessentini M, Shaout A, Koligheu P, Bechikh S, Deb K, Ouni A. Many-objective software remodularization using NSGA-III. ACM Trans Softw Eng Methodol. 2015;24(3):1–45.
Arasteh B, Fatolahzadeh A, Kiani F. Savalan: Multi objective and homogeneous method for software modules clustering. J Softw. 2022;34(1): e2408.
Bishnoi M, Singh P. Modularizing software systems using PSO optimized hierarchical clustering. In 2016 International Conference on Computational Techniques in Information and Communication Technologies (ICCTICT) (pp. 659–664). IEEE; 2016.
Sun J, Xu Y, Wang S. PSO with reverse edge for multi-objective software module clustering. Int J Perform Eng. 2018;14(10):2423.
Jiaze S, Beilei L. Density PSO-based software module clustering algorithm. 2018;25(4), 38.
Abdeen H, Ducasse S, Sahraoui H, Alloui I. Automatic package coupling and cycle minimization. In 2009 16th working conference on reverse engineering (pp. 103–112). IEEE; 2009.
Kirkpatrick S, Gelatt CD, Vecchi MP. Optimization by simulated annealing. science, 1983; 220(4598), 671-680.
Mahdavi K, Harman M, Hierons RM. A multiple hill climbing approach to software module clustering. In International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings. (pp. 315–324). IEEE; 2003.
Huang J, Liu J. A similarity-based modularization quality measure for software module clustering problems. Inf Sci. 2016;342:96–110.
Harman M, Mansouri SA, Zhang Y. Search-based software engineering: Trends techniques and applications. ACM Comput Surv. 2012;45(1):11–61.
Acknowledgements
No funding was received to assist with the preparation of this manuscript.
Author information
Authors and Affiliations
Corresponding author
Ethics declarations
Conflict of Interest
There is no conflict of interest.
Consent for publication
Informed consent was obtained for the study.
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
This article is part of the topical collection “Advanced Computing and Data Sciences” guest edited by Mayank Singh, Vipin Tyagi and P.K. Gupta.
Rights and permissions
Springer Nature or its licensor (e.g. a society or other partner) 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
Gupta, N., Kumar, S., Gupta, V. et al. Novel Automatic Approach Using Modified Differential Evaluation to Software Module Clustering Problem. SN COMPUT. SCI. 4, 816 (2023). https://doi.org/10.1007/s42979-023-02238-6
Received:
Accepted:
Published:
DOI: https://doi.org/10.1007/s42979-023-02238-6