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...
Main Authors: | , , , , , |
---|---|
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 |