NUK - logo
E-resources
Peer reviewed Open access
  • Software Module Clustering:...
    Alsarhan, Qusay; Ahmed, Bestoun S.; Bures, Miroslav; Zamli, Kamal Zuhairi

    IEEE transactions on software engineering, 06/2022, Volume: 48, Issue: 6
    Journal Article

    Software module clustering is an unsupervised learning method used to cluster software entities (e.g., classes, modules, or files) of similar features. The obtained clusters may be used to study, analyze, and understand the structure and behavior of the software entities. Implementing software module clustering with optimal results is challenging. Accordingly, researchers have addressed many aspects of software module clustering in the last decade. Thus, it is essential to present research evidence that has been published in this area. In this study, 143 research papers that examined software module clustering from well-known literature databases were extensively 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 process, 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.