Heuristic Algorithms for Software Modules Clustering
In the fields of software engineering, the maintenance phase takes the most effort. Software Module Clustering (SMC), as a part of reverse engineering, is used for the purpose of creating structural models from the source code enhancing its comprehensibility. Finding the best clusters is an NP-hard problem. The method of software module clustering aims to extract the best clusters, which involves Increase cohesion and reduce coupling. This re-search addresses a set of problems with the aim of solving them, which are drawback found in most previous studies. This paper adopts three main methods to solve Software Modules Clustering problem (SMCP), a Teaching-Learning-Based-optimization (TLBO) algorithm, a Black Widow optimization (BWO) algorithm, and the third is a hybrid algorithm combining the previous two methods. These algorithms were used to cluster software modules and were evaluated based on MQ (Modularity Quality), cohesion, coupling, and stability. To determine the optimal number of clusters for each reference program, the Louvain algorithm is used, which works on detecting communities in networks. The study also experintly examined the impact of the chaos, random, Lorenzo methods in the initial generation of solutions on the quality of the results and stability. Considering the results of the experiments conducted on eight standard applications, the hybrid algorithm performs better in SMC problems than the TLBO and BWO. The performance of these algorithms also improves significantly, when their initial populations are generated using the logistic Lorenz and Chaos method rather than a random one. 6.644548537, 6.318318013, and 4.375766992 are the average MQ of the clusters that were formed for the selected casses set using the Hybrid method, BWO, and TLBO, respectively.
Authors
- Dujan B. Taha (ORCID: https://orcid.org/0000-0003-3503-2689)
- Ali H. Ali (ORCID: https://orcid.org/0000-0002-6330-7662)
Institutions
- University of Mosul (IQ)
Publication Details
- Journal
- Procedia Computer Science
- Published
- 2025-01-01
- DOI
- https://doi.org/10.1016/j.procs.2025.04.466
- Citations
- 1
- Primary Topic
- Software Engineering Research
- Type
- article
- Field-Weighted Citation Impact
- 3.25