A bioinspired discrete heuristic algorithm to generate the effective structural model of a program source code

When the source code of a software is the only product available, program understanding has a substantial influence on software maintenance costs. The main goal in code comprehension is to extract information that is used in the software maintenance stage. Generating the structural model from the so...

Full description

Bibliographic Details
Main Authors: Bahman Arasteh, Razieh Sadegi, Keyvan Arasteh, Peri Gunes, Farzad Kiani, Mahsa Torkamanian-Afshar
Format: Article
Language:English
Published: Elsevier 2023-09-01
Series:Journal of King Saud University: Computer and Information Sciences
Subjects:
Online Access:http://www.sciencedirect.com/science/article/pii/S1319157823002094
_version_ 1797663848080080896
author Bahman Arasteh
Razieh Sadegi
Keyvan Arasteh
Peri Gunes
Farzad Kiani
Mahsa Torkamanian-Afshar
author_facet Bahman Arasteh
Razieh Sadegi
Keyvan Arasteh
Peri Gunes
Farzad Kiani
Mahsa Torkamanian-Afshar
author_sort Bahman Arasteh
collection DOAJ
description When the source code of a software is the only product available, program understanding has a substantial influence on software maintenance costs. The main goal in code comprehension is to extract information that is used in the software maintenance stage. Generating the structural model from the source code helps to alleviate the software maintenance cost. Software module clustering is thought to be a viable reverse engineering approach for building structural design models from source code. Finding the optimal clustering model is an NP-complete problem. The primary goals of this study are to minimize the number of connections between created clusters, enhance internal connections inside clusters, and enhance clustering quality. The previous approaches' main flaws were their poor success rates, instability, and inadequate modularization quality. The Olympiad optimization algorithm was introduced in this paper as a novel population-based and discrete heuristic algorithm for solving the software module clustering problem. This algorithm was inspired by the competition of a group of students to increase their knowledge and prepare for an Olympiad exam. The suggested algorithm employs a divide-and-conquer strategy, as well as local and global search methodologies. The effectiveness of the suggested Olympiad algorithm to solve the module clustering problem was evaluated using ten real-world and standard software benchmarks. According to the experimental results, on average, the modularization quality of the generated clustered models for the ten benchmarks is about 3.94 with 0.067 standard deviations. The proposed algorithm is superior to the prior algorithms in terms of modularization quality, convergence, and stability of results. Furthermore, the results of the experiments indicate that the proposed algorithm can be used to solve other discrete optimization problems efficiently.
first_indexed 2024-03-11T19:20:43Z
format Article
id doaj.art-02d9b71c806544dab28febbf69b92627
institution Directory Open Access Journal
issn 1319-1578
language English
last_indexed 2024-03-11T19:20:43Z
publishDate 2023-09-01
publisher Elsevier
record_format Article
series Journal of King Saud University: Computer and Information Sciences
spelling doaj.art-02d9b71c806544dab28febbf69b926272023-10-07T04:33:58ZengElsevierJournal of King Saud University: Computer and Information Sciences1319-15782023-09-01358101655A bioinspired discrete heuristic algorithm to generate the effective structural model of a program source codeBahman Arasteh0Razieh Sadegi1Keyvan Arasteh2Peri Gunes3Farzad Kiani4Mahsa Torkamanian-Afshar5Department of Software Engineering, Faculty of Engineering and Natural Science, Istinye University, Istanbul, Turkey; Corresponding author.Department of Computer Engineering, Tabriz Branch, Islamic Azad University, Tabriz, IranDepartment of Software Engineering, Faculty of Engineering and Natural Science, Istinye University, Istanbul, TurkeyDepartment of Software Engineering, Faculty of Engineering, Yıldız Technical University, Istanbul, TurkeyComputer Engineering Dept., Faculty of Engineering, Fatih Sultan Mehmet Vakif University, 34445 Istanbul, TurkeyComputer Engineering Department, Faculty of Engineering and Architecture, Nisantasi University, 34398, Istanbul, TurkeyWhen the source code of a software is the only product available, program understanding has a substantial influence on software maintenance costs. The main goal in code comprehension is to extract information that is used in the software maintenance stage. Generating the structural model from the source code helps to alleviate the software maintenance cost. Software module clustering is thought to be a viable reverse engineering approach for building structural design models from source code. Finding the optimal clustering model is an NP-complete problem. The primary goals of this study are to minimize the number of connections between created clusters, enhance internal connections inside clusters, and enhance clustering quality. The previous approaches' main flaws were their poor success rates, instability, and inadequate modularization quality. The Olympiad optimization algorithm was introduced in this paper as a novel population-based and discrete heuristic algorithm for solving the software module clustering problem. This algorithm was inspired by the competition of a group of students to increase their knowledge and prepare for an Olympiad exam. The suggested algorithm employs a divide-and-conquer strategy, as well as local and global search methodologies. The effectiveness of the suggested Olympiad algorithm to solve the module clustering problem was evaluated using ten real-world and standard software benchmarks. According to the experimental results, on average, the modularization quality of the generated clustered models for the ten benchmarks is about 3.94 with 0.067 standard deviations. The proposed algorithm is superior to the prior algorithms in terms of modularization quality, convergence, and stability of results. Furthermore, the results of the experiments indicate that the proposed algorithm can be used to solve other discrete optimization problems efficiently.http://www.sciencedirect.com/science/article/pii/S1319157823002094Olympiad optimization algorithmSoftware module clusteringCohesionModularization quality
spellingShingle Bahman Arasteh
Razieh Sadegi
Keyvan Arasteh
Peri Gunes
Farzad Kiani
Mahsa Torkamanian-Afshar
A bioinspired discrete heuristic algorithm to generate the effective structural model of a program source code
Journal of King Saud University: Computer and Information Sciences
Olympiad optimization algorithm
Software module clustering
Cohesion
Modularization quality
title A bioinspired discrete heuristic algorithm to generate the effective structural model of a program source code
title_full A bioinspired discrete heuristic algorithm to generate the effective structural model of a program source code
title_fullStr A bioinspired discrete heuristic algorithm to generate the effective structural model of a program source code
title_full_unstemmed A bioinspired discrete heuristic algorithm to generate the effective structural model of a program source code
title_short A bioinspired discrete heuristic algorithm to generate the effective structural model of a program source code
title_sort bioinspired discrete heuristic algorithm to generate the effective structural model of a program source code
topic Olympiad optimization algorithm
Software module clustering
Cohesion
Modularization quality
url http://www.sciencedirect.com/science/article/pii/S1319157823002094
work_keys_str_mv AT bahmanarasteh abioinspireddiscreteheuristicalgorithmtogeneratetheeffectivestructuralmodelofaprogramsourcecode
AT raziehsadegi abioinspireddiscreteheuristicalgorithmtogeneratetheeffectivestructuralmodelofaprogramsourcecode
AT keyvanarasteh abioinspireddiscreteheuristicalgorithmtogeneratetheeffectivestructuralmodelofaprogramsourcecode
AT perigunes abioinspireddiscreteheuristicalgorithmtogeneratetheeffectivestructuralmodelofaprogramsourcecode
AT farzadkiani abioinspireddiscreteheuristicalgorithmtogeneratetheeffectivestructuralmodelofaprogramsourcecode
AT mahsatorkamanianafshar abioinspireddiscreteheuristicalgorithmtogeneratetheeffectivestructuralmodelofaprogramsourcecode
AT bahmanarasteh bioinspireddiscreteheuristicalgorithmtogeneratetheeffectivestructuralmodelofaprogramsourcecode
AT raziehsadegi bioinspireddiscreteheuristicalgorithmtogeneratetheeffectivestructuralmodelofaprogramsourcecode
AT keyvanarasteh bioinspireddiscreteheuristicalgorithmtogeneratetheeffectivestructuralmodelofaprogramsourcecode
AT perigunes bioinspireddiscreteheuristicalgorithmtogeneratetheeffectivestructuralmodelofaprogramsourcecode
AT farzadkiani bioinspireddiscreteheuristicalgorithmtogeneratetheeffectivestructuralmodelofaprogramsourcecode
AT mahsatorkamanianafshar bioinspireddiscreteheuristicalgorithmtogeneratetheeffectivestructuralmodelofaprogramsourcecode