A Modified Horse Herd Optimization Algorithm and Its Application in the Program Source Code Clustering

Maintenance is one of the costliest phases in the software development process. If architectural design models are accessible, software maintenance can be made more straightforward. When the software’s source code is the only available resource, comprehending the program profoundly impacts the costs...

Full description

Bibliographic Details
Main Authors: Bahman Arasteh, Peri Gunes, Asgarali Bouyer, Farhad Soleimanian Gharehchopogh, Hamed Alipour Banaei, Reza Ghanbarzadeh
Format: Article
Language:English
Published: Hindawi-Wiley 2023-01-01
Series:Complexity
Online Access:http://dx.doi.org/10.1155/2023/3988288
_version_ 1797366782061707264
author Bahman Arasteh
Peri Gunes
Asgarali Bouyer
Farhad Soleimanian Gharehchopogh
Hamed Alipour Banaei
Reza Ghanbarzadeh
author_facet Bahman Arasteh
Peri Gunes
Asgarali Bouyer
Farhad Soleimanian Gharehchopogh
Hamed Alipour Banaei
Reza Ghanbarzadeh
author_sort Bahman Arasteh
collection DOAJ
description Maintenance is one of the costliest phases in the software development process. If architectural design models are accessible, software maintenance can be made more straightforward. When the software’s source code is the only available resource, comprehending the program profoundly impacts the costs associated with software maintenance. The primary objective of comprehending the source code is extracting information used during the software maintenance phase. Generating a structural model based on the program source code is an effective way of reducing overall software maintenance costs. Software module clustering is considered a tremendous reverse engineering technique for constructing structural design models from the program source code. The main objectives of clustering modules are to reduce the quantity of connections between clusters, increase connections within clusters, and improve the quality of clustering. Finding the perfect clustering model is considered an NP-complete problem, and many previous approaches had significant issues in addressing this problem, such as low success rates, instability, and poor modularization quality. This paper applied the horse herd optimization algorithm, a distinctive population-based and discrete metaheuristic technique, in clustering software modules. The proposed method’s effectiveness in addressing the module clustering problem was examined by ten real-world standard software test benchmarks. Based on the experimental data, the quality of the clustered models produced is approximately 3.219, with a standard deviation of 0.0718 across the ten benchmarks. The proposed method surpasses former methods in convergence, modularization quality, and result stability. Furthermore, the experimental results demonstrate the versatility of this approach in effectively addressing various real-world discrete optimization challenges.
first_indexed 2024-03-08T17:09:33Z
format Article
id doaj.art-260b760a3efa446ea0b16a154dcec955
institution Directory Open Access Journal
issn 1099-0526
language English
last_indexed 2024-03-08T17:09:33Z
publishDate 2023-01-01
publisher Hindawi-Wiley
record_format Article
series Complexity
spelling doaj.art-260b760a3efa446ea0b16a154dcec9552024-01-04T00:00:06ZengHindawi-WileyComplexity1099-05262023-01-01202310.1155/2023/3988288A Modified Horse Herd Optimization Algorithm and Its Application in the Program Source Code ClusteringBahman Arasteh0Peri Gunes1Asgarali Bouyer2Farhad Soleimanian Gharehchopogh3Hamed Alipour Banaei4Reza Ghanbarzadeh5Department of Software EngineeringDepartment of Computer EngineeringDepartment of Software EngineeringDepartment of Computer EngineeringDepartment of ElectronicsFaculty of Science and EngineeringMaintenance is one of the costliest phases in the software development process. If architectural design models are accessible, software maintenance can be made more straightforward. When the software’s source code is the only available resource, comprehending the program profoundly impacts the costs associated with software maintenance. The primary objective of comprehending the source code is extracting information used during the software maintenance phase. Generating a structural model based on the program source code is an effective way of reducing overall software maintenance costs. Software module clustering is considered a tremendous reverse engineering technique for constructing structural design models from the program source code. The main objectives of clustering modules are to reduce the quantity of connections between clusters, increase connections within clusters, and improve the quality of clustering. Finding the perfect clustering model is considered an NP-complete problem, and many previous approaches had significant issues in addressing this problem, such as low success rates, instability, and poor modularization quality. This paper applied the horse herd optimization algorithm, a distinctive population-based and discrete metaheuristic technique, in clustering software modules. The proposed method’s effectiveness in addressing the module clustering problem was examined by ten real-world standard software test benchmarks. Based on the experimental data, the quality of the clustered models produced is approximately 3.219, with a standard deviation of 0.0718 across the ten benchmarks. The proposed method surpasses former methods in convergence, modularization quality, and result stability. Furthermore, the experimental results demonstrate the versatility of this approach in effectively addressing various real-world discrete optimization challenges.http://dx.doi.org/10.1155/2023/3988288
spellingShingle Bahman Arasteh
Peri Gunes
Asgarali Bouyer
Farhad Soleimanian Gharehchopogh
Hamed Alipour Banaei
Reza Ghanbarzadeh
A Modified Horse Herd Optimization Algorithm and Its Application in the Program Source Code Clustering
Complexity
title A Modified Horse Herd Optimization Algorithm and Its Application in the Program Source Code Clustering
title_full A Modified Horse Herd Optimization Algorithm and Its Application in the Program Source Code Clustering
title_fullStr A Modified Horse Herd Optimization Algorithm and Its Application in the Program Source Code Clustering
title_full_unstemmed A Modified Horse Herd Optimization Algorithm and Its Application in the Program Source Code Clustering
title_short A Modified Horse Herd Optimization Algorithm and Its Application in the Program Source Code Clustering
title_sort modified horse herd optimization algorithm and its application in the program source code clustering
url http://dx.doi.org/10.1155/2023/3988288
work_keys_str_mv AT bahmanarasteh amodifiedhorseherdoptimizationalgorithmanditsapplicationintheprogramsourcecodeclustering
AT perigunes amodifiedhorseherdoptimizationalgorithmanditsapplicationintheprogramsourcecodeclustering
AT asgaralibouyer amodifiedhorseherdoptimizationalgorithmanditsapplicationintheprogramsourcecodeclustering
AT farhadsoleimaniangharehchopogh amodifiedhorseherdoptimizationalgorithmanditsapplicationintheprogramsourcecodeclustering
AT hamedalipourbanaei amodifiedhorseherdoptimizationalgorithmanditsapplicationintheprogramsourcecodeclustering
AT rezaghanbarzadeh amodifiedhorseherdoptimizationalgorithmanditsapplicationintheprogramsourcecodeclustering
AT bahmanarasteh modifiedhorseherdoptimizationalgorithmanditsapplicationintheprogramsourcecodeclustering
AT perigunes modifiedhorseherdoptimizationalgorithmanditsapplicationintheprogramsourcecodeclustering
AT asgaralibouyer modifiedhorseherdoptimizationalgorithmanditsapplicationintheprogramsourcecodeclustering
AT farhadsoleimaniangharehchopogh modifiedhorseherdoptimizationalgorithmanditsapplicationintheprogramsourcecodeclustering
AT hamedalipourbanaei modifiedhorseherdoptimizationalgorithmanditsapplicationintheprogramsourcecodeclustering
AT rezaghanbarzadeh modifiedhorseherdoptimizationalgorithmanditsapplicationintheprogramsourcecodeclustering