Search-based software module clustering techniques: A review article

Fatemeh Morsali, Mohammad Reza Keyvanpour · 2017

A software module clustering is a technique of organizing software entities into clusters to enhance the quality of a software system. It provides easier navigation and easier tracking among software parts and enhances comprehension. Therefore, a good distribution of the module facilitates the development and maintenance of a software system. The software module clustering problem is often solved using the traditional analytical methods. These methods are useful for small size of software problems. When the size of the problem grows, these methods become infeasible as they cannot solve the problem within reasonable amount of time. To overcome these difficulties, the software module clustering problem for large software systems is formulated as search-based optimization problem. In this regard, many techniques have been proposed. Since it is very important and helpful to have an overall view to all of aspects in every research field, the existence of classified documents of different techniques in every aspect of a research filed is necessary. Therefore, this paper provides a classification for analyzing each of the approaches presented in this area. Utilizing from proposed classification can be effective in analyzing and evaluation of different methods as well as deal with different challenges. Software module clustering techniques classified into three main classes: mono-objective, multi-objective, and many-objective which every class have several subclasses. All in all, software module clustering techniques classified into some classes, namely, Single-Factor Module Clustering (SFMC), Multi-Factor Module Clustering (MFMC), Single-View Software Module Clustering, Multi-View Software Module Clustering.

Read the paper · More papers on PaperTik