Year:2024   Volume: 6   Issue: 1   Area:

  1. Home
  2. Article List
  3. ID: 341

Ali Hussein ALI, Dujan B. TAHA


Maintenance takes the largest cost within software engineering processes. Because understanding the software code is complex and requires a deep understanding of the structure of building the code. To face Such a problem and other problems such as research purposes, or retrieval, restructuring, and understanding the behavior of software entities, today the software component, such as objects, classes, or files that have similarity in feature can be grouped together using unsupervised learning method called software module clustering. This method gives a clear picture of the components of the program and the details of the dependencies between these components, and thus it gives a structure that can be relied upon effectively. This research paper will present a compilation of studies published in this field over the past 23 years. We review 36 well-known research papers in the literature that examines software module clustering techniques and obtain useful results and data. Research containing duplicate ideas was excluded. We will attempt to answer the following questions: What are the modern methods used in the concept of clustering? What are the applications of clustering in software engineering? What are various clustering algorithms? What evaluation methods are available for assessing the quality of clustering techniques

Keywords: Software Modules Clustering, Clustering Algorithms, Clustering Applications, Software Clustering.