Automatic clustering of software systems using a genetic algorithm

Author(s):  
D. Doval ◽  
S. Mancoridis ◽  
B.S. Mitchell
2020 ◽  
Vol 12 (6) ◽  
pp. 2177
Author(s):  
Jun-Ho Huh ◽  
Jimin Hwa ◽  
Yeong-Seok Seo

A Hierarchical Subsystem Decomposition (HSD) is of great help in understanding large-scale software systems from the software architecture level. However, due to the lack of software architecture management, HSD documentations are often outdated, or they disappear in the course of repeated changes of a software system. Thus, in this paper, we propose a new approach for recovering HSD according to the intended design criteria based on a genetic algorithm to find an optimal solution. Experiments are performed to evaluate the proposed approach using two open source software systems with the 14 fitness functions of the genetic algorithm (GA). The HSDs recovered by our approach have different structural characteristics according to objectives. In the analysis on our GA operators, crossover contributes to a relatively large improvement in the early phase of a search. Mutation renders small-scale improvement in the whole search. Our GA is compared with a Hill-Climbing algorithm (HC) implemented by our GA operators. Although it is still in the primitive stage, our GA leads to higher-quality HSDs than HC. The experimental results indicate that the proposed approach delivers better performance than the existing approach.


Proceedings ◽  
2019 ◽  
Vol 46 (1) ◽  
pp. 18
Author(s):  
Habib Izadkhah ◽  
Mahjoubeh Tajgardan

Software clustering is usually used for program comprehension. Since it is considered to be the most crucial NP-complete problem, several genetic algorithms have been proposed to solve this problem. In the literature, there exist some objective functions (i.e., fitness functions) which are used by genetic algorithms for clustering. These objective functions determine the quality of each clustering obtained in the evolutionary process of the genetic algorithm in terms of cohesion and coupling. The major drawbacks of these objective functions are the inability to (1) consider utility artifacts, and (2) to apply to another software graph such as artifact feature dependency graph. To overcome the existing objective functions’ limitations, this paper presents a new objective function. The new objective function is based on information theory, aiming to produce a clustering in which information loss is minimized. For applying the new proposed objective function, we have developed a genetic algorithm aiming to maximize the proposed objective function. The proposed genetic algorithm, named ILOF, has been compared to that of some other well-known genetic algorithms. The results obtained confirm the high performance of the proposed algorithm in solving nine software systems. The performance achieved is quite satisfactory and promising for the tested benchmarks.


Author(s):  
P. K. KAPUR ◽  
ANU. G. AGGARWAL ◽  
KANICA KAPOOR ◽  
GURJEET KAUR

The demand for complex and large-scale software systems is increasing rapidly. Therefore, the development of high-quality, reliable and low cost computer software has become critical issue in the enormous worldwide computer technology market. For developing these large and complex software small and independent modules are integrated which are tested independently during module testing phase of software development. In the process, testing resources such as time, testing personnel etc. are used. These resources are not infinitely large. Consequently, it is an important matter for the project manager to allocate these limited resources among the modules optimally during the testing process. Another major concern in software development is the cost. It is in fact, profit to the management if the cost of the software is less while meeting the costumer requirements. In this paper, we investigate an optimal resource allocation problem of minimizing the cost of software testing under limited amount of available resources, given a reliability constraint. To solve the optimization problem we present genetic algorithm which stands up as a powerful tool for solving search and optimization problems. The key objective of using genetic algorithm in the field of software reliability is its capability to give optimal results through learning from historical data. One numerical example has been discussed to illustrate the applicability of the approach.


Author(s):  
Le Trong Nghia ◽  
Quyen Huy Anh ◽  
Phung Trieu Tan ◽  
N Thai An

This paper proposes the method of applying Artificial Neural Network (ANN) with Back Propagation (BP) algorithm in combination or hybrid with Genetic Algorithm (GA) to propose load shedding strategies in the power system. The Genetic Algorithm is used to support the training of Back Propagation Neural Networks (BPNN) to improve regression ability, minimize errors and reduce the training time. Besides, the Relief algorithm is used to reduce the number of input variables of the neural network. The minimum load shedding with consideration of the primary and secondary control is calculated to restore the frequency of the electrical system. The distribution of power load shedding at each load bus of the system based on the phase electrical distance between the outage generator and the load buses. The simulation results have been verified through using MATLAB and PowerWorld software systems. The results show that the Hybrid Gen-Bayesian algorithm (GA-Trainbr) has a remarkable superiority in accuracy as well as training time. The effectiveness of the proposed method is tested on the IEEE 37 bus 9 generators standard system diagram showing the effectiveness of the proposed method.


2004 ◽  
Vol 25 (2) ◽  
pp. 173-187 ◽  
Author(s):  
Gautam Garai ◽  
B.B Chaudhuri

Sign in / Sign up

Export Citation Format

Share Document