Yazar "Sadegi, Razieh" seçeneğine göre listele
Listeleniyor 1 - 3 / 3
Sayfa Başına Sonuç
Sıralama seçenekleri
Öğe A bioinspired discrete heuristic algorithm to generate the effective structural model of a program source code(Elsevier, 2023) Arasteh, Bahman; Sadegi, Razieh; Arasteh, Keyvan; Gunes, Peri; Kiani, Farzad; Torkamanian-Afshar, MahsaWhen 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. (c) 2023 The Author(s). Published by Elsevier B.V. on behalf of King Saud University. This is an open access article under the CC BY-NC-ND license (http://creativecommons.org/licenses/by-nc-nd/4.0/).Öğe Duzen: generating the structural model from the software source code using shuffled frog leaping algorithm(SPRINGER LONDON, 2022) Arasteh, Bahman; Karimi, Mohammad Bagher; Sadegi, RaziehThe cost of software maintenance is heavily influenced by program understanding. When the source code is the only product accessible, maintainers spend a significant amount of effort trying to understand the structure and behavior of the software. Program module clustering is a useful reverse-engineering technique for obtaining the software structural model from source code. Finding the best clustering is regarded as an NP-hard optimization problem, and several meta-heuristic methods have been employed to solve it. The fundamental flaws of the prior approaches were their insufficient performance and effectiveness. The major goals of this research are to achieve improved software clustering quality and stability. A new method (Duzen) is proposed in this research for improving software module clustering. As a meta-heuristic memetic algorithm, this technique employs the shuffled frog-leaping algorithm. The Duzen results were investigated and compared to those produced using earlier approaches. In terms of obtaining the best clustering quality, the proposed method was shown to be better and more successful than the others; it also had higher data stability and data convergence to optimal replies in a fewer number of repetitions. Furthermore, it acquired a higher data mean and a faster clustering execution time.Öğe Single and multi-objective metaheuristic algorithms and their applications in software maintenance(Elsevier, 2024) Arasteh, Bahman; Sadegi, Razieh; Aghaei, Babak; Ghanbarzadeh, RezaThe comprehension of software structure plays a significant role in efficiently maintaining software. Clustering software modules has been regarded as a successful method for extracting understandable structural models from source code, among other reverse engineering techniques. However, the problem of achieving the optimal model for clustering is considered NP-complete. The primary objective of Software Module Clustering (SMC) is minimizing inter-cluster connections, maximizing intra-cluster connections, and improving clustering quality. Different optimization algorithms (Seyyedabbasi, 2023) have been used to sort out the optimization problems. The majority of proposed methods to address SMC problem have shown some drawbacks, such as a lower rate of success, stability, and quality of modularization. This chapter reviews and compares seven heuristic algorithms that can be employed to solve software module clustering, namely PSO, GA, PSO-GA, COA, GWO, SCSO and OOA, in terms of achieving optimal clustering of software modules. Through experiments conducted on 10 real-world standard applications, the findings demonstrate that OOA, GWO, and SCSO perform better than the other methods in handling SMC. Notably, when the initial population of these methods is generated by the use of the logistic chaos technique instead of the random technique, these algorithms perform much better compared to others. The average quality of the modularity of the clusters created by OOA, GWO, and SCSO for the selected benchmark set is 3.937, 3.120, 3.107, respectively. The findings present an exploration of heuristic algorithms for optimal SMC; therefore, the positive impact of chaos theory is highlighted. OOA, GWO, SCSO, and COA demonstrate promising results, indicating their potential for practical application in the field of software maintenance and comprehension. By addressing the drawbacks of the evaluated methods, this chapter contributes to the advancement of software clustering techniques and facilitates the creation of more maintainable and efficient software systems.