A New Metaheuristic-Based Hierarchical Clustering Algorithm for Software Modularization. (30th September 2020)
- Record Type:
- Journal Article
- Title:
- A New Metaheuristic-Based Hierarchical Clustering Algorithm for Software Modularization. (30th September 2020)
- Main Title:
- A New Metaheuristic-Based Hierarchical Clustering Algorithm for Software Modularization
- Authors:
- Aghdasifam, Masoud
Izadkhah, Habib
Isazadeh, Ayaz - Other Names:
- Kumarappan Narayanan Guest Editor.
- Abstract:
- Abstract : Software refactoring is a software maintenance action to improve the software internal quality without changing its external behavior. During the maintenance process, structural refactoring is performed by remodularizing the source code. Software clustering is a modularization technique to remodularize artifacts of source code aiming to improve readability and reusability. Due to the NP hardness of the clustering problem, evolutionary approaches such as the genetic algorithm have been used to solve this problem. In the structural refactoring literature, there exists no search-based algorithm that employs a hierarchical approach for modularization. Utilizing global and local search strategies, in this paper, a new search-based top-down hierarchical clustering approach, named TDHC, is proposed that can be used to modularize the system. The output of the algorithm is a tree in which each node is an artifact composed of all artifacts in its subtrees and is a candidate to be a software module (i.e., cluster). This tree helps a software maintainer to have better vision on source code structure to decide appropriate composition points of artifacts aiming to create modules (i.e., files, packages, and components). Experimental results on seven folders of Mozilla Firefox with different functionalities and five other software systems show that the TDHC produces modularization closer to the human expert's decomposition (i.e., directory structure) than the other existingAbstract : Software refactoring is a software maintenance action to improve the software internal quality without changing its external behavior. During the maintenance process, structural refactoring is performed by remodularizing the source code. Software clustering is a modularization technique to remodularize artifacts of source code aiming to improve readability and reusability. Due to the NP hardness of the clustering problem, evolutionary approaches such as the genetic algorithm have been used to solve this problem. In the structural refactoring literature, there exists no search-based algorithm that employs a hierarchical approach for modularization. Utilizing global and local search strategies, in this paper, a new search-based top-down hierarchical clustering approach, named TDHC, is proposed that can be used to modularize the system. The output of the algorithm is a tree in which each node is an artifact composed of all artifacts in its subtrees and is a candidate to be a software module (i.e., cluster). This tree helps a software maintainer to have better vision on source code structure to decide appropriate composition points of artifacts aiming to create modules (i.e., files, packages, and components). Experimental results on seven folders of Mozilla Firefox with different functionalities and five other software systems show that the TDHC produces modularization closer to the human expert's decomposition (i.e., directory structure) than the other existing algorithms. The proposed algorithm is expected to help a software maintainer for better remodularization of a source code. The source codes and dataset related to this paper can be accessed at https://github.com/SoftwareMaintenanceLab . … (more)
- Is Part Of:
- Complexity. Volume 2020(2020)
- Journal:
- Complexity
- Issue:
- Volume 2020(2020)
- Issue Display:
- Volume 2020, Issue 2020 (2020)
- Year:
- 2020
- Volume:
- 2020
- Issue:
- 2020
- Issue Sort Value:
- 2020-2020-2020-0000
- Page Start:
- Page End:
- Publication Date:
- 2020-09-30
- Subjects:
- Chaotic behavior in systems -- Periodicals
Complexity (Philosophy) -- Periodicals
003 - Journal URLs:
- https://onlinelibrary.wiley.com/journal/10990526 ↗
http://onlinelibrary.wiley.com/ ↗
https://www.hindawi.com/journals/complexity/ ↗ - DOI:
- 10.1155/2020/1794947 ↗
- Languages:
- English
- ISSNs:
- 1076-2787
- Deposit Type:
- Legaldeposit
- View Content:
- Available online (eLD content is only available in our Reading Rooms) ↗
- Physical Locations:
- British Library DSC - 3364.585500
British Library HMNTS - ELD Digital store - Ingest File:
- 14508.xml