학술논문

Software Module Clustering: An In-Depth Literature Analysis
Document Type
Periodical
Source
IEEE Transactions on Software Engineering IIEEE Trans. Software Eng. Software Engineering, IEEE Transactions on. 48(6):1905-1928 Jun, 2022
Subject
Computing and Processing
Software
Search problems
Data mining
Software engineering
Software algorithms
Clustering algorithms
Systematics
Systematic literature study
software module clustering
clustering applications
clustering algorithms
clustering evaluation
clustering challenges
Language
ISSN
0098-5589
1939-3520
2326-3881
Abstract
Software module clustering is an unsupervised learning method used to cluster software entities (e.g., classes, modules, or files) with similar features. The obtained clusters may be used to study, analyze, and understand the software entities’ structure and behavior. Implementing software module clustering with optimal results is challenging. Accordingly, researchers have addressed many aspects of software module clustering in the past decade. Thus, it is essential to present the research evidence that has been published in this area. In this study, 143 research papers from well-known literature databases that examined software module clustering were reviewed to extract useful data. The obtained data were then used to answer several research questions regarding state-of-the-art clustering approaches, applications of clustering in software engineering, clustering processes, clustering algorithms, and evaluation methods. Several research gaps and challenges in software module clustering are discussed in this paper to provide a useful reference for researchers in this field.