SAVALAN: Multi Objective and Homogeneous Method for Software Modules Clustering
Reverse engineering is used for extracting and understanding software architecture models from source code when the source code is the only available software product. Software module clustering is a reverse engineering method which decomposes software modules into several clusters (subsystems) by using module dependency graph. Finding the best clusters for the modules of software is a multi-objective and NP-hard problem; maximizing the cohesion among the modules, minimizing the coupling among different clusters, and maximizing the software modularization quality are considered as the main objectives of software module clustering. Some of these objectives, such as cohesion and coupling, are in contradiction with each other. Simultaneous improvement of all clustering objectives (cohesion, coupling, modularization quality, size, and number of clusters) is the main goal of this study. In this paper, by capitalizing on multi objective genetic algorithm and a new combination of objective functions, we proposed a homogeneous method, namely, Savalan, for clustering software modules. The proposed method generates high-quality clusters with strong cohesion within clusters and weak connections between clusters for the input source code. The results of conducted experiments on the 14 benchmark programs indicate that simultaneous improvement of all clustering objectives is the main merit of this method. According to the experimental results, the proposed algorithm was able to outperform the previous multi objective methods.