Litcius/Paper detail

Savalan: Multi objective and homogeneous method for software modules clustering

Bahman Arasteh, Ahmad Fatolahzadeh, Farzad Kiani

2021Journal of Software Evolution and Process29 citationsDOI

Abstract

Abstract 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.

Topics & Concepts

Computer scienceCohesion (chemistry)Cluster analysisSoftware sizingModular programmingSoftware qualityData miningSoftwareSoftware constructionSoftware developmentProgramming languageArtificial intelligenceOrganic chemistryChemistrySoftware Engineering ResearchSoftware Engineering Techniques and PracticesSoftware Reliability and Analysis Research
Savalan: Multi objective and homogeneous method for software modules clustering | Litcius