A New Metaheuristic-Based Hierarchical Clustering Algorithm for Software Modularization

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 remodular...

Full description

Saved in:
Bibliographic Details
Main Authors: Masoud Aghdasifam, Habib Izadkhah, Ayaz Isazadeh
Format: Article
Language:English
Published: Wiley 2020-01-01
Series:Complexity
Online Access:http://dx.doi.org/10.1155/2020/1794947
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1832566547303890944
author Masoud Aghdasifam
Habib Izadkhah
Ayaz Isazadeh
author_facet Masoud Aghdasifam
Habib Izadkhah
Ayaz Isazadeh
author_sort Masoud Aghdasifam
collection DOAJ
description 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.
format Article
id doaj-art-77820907598540bdb19bdc1aed674669
institution Kabale University
issn 1076-2787
1099-0526
language English
publishDate 2020-01-01
publisher Wiley
record_format Article
series Complexity
spelling doaj-art-77820907598540bdb19bdc1aed6746692025-02-03T01:03:51ZengWileyComplexity1076-27871099-05262020-01-01202010.1155/2020/17949471794947A New Metaheuristic-Based Hierarchical Clustering Algorithm for Software ModularizationMasoud Aghdasifam0Habib Izadkhah1Ayaz Isazadeh2Department of Computer Science, Faculty of Mathematical Sciences, University of Tabriz, Tabriz, IranDepartment of Computer Science, Faculty of Mathematical Sciences, University of Tabriz, Tabriz, IranDepartment of Computer Science, Faculty of Mathematical Sciences, University of Tabriz, Tabriz, IranSoftware 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.http://dx.doi.org/10.1155/2020/1794947
spellingShingle Masoud Aghdasifam
Habib Izadkhah
Ayaz Isazadeh
A New Metaheuristic-Based Hierarchical Clustering Algorithm for Software Modularization
Complexity
title A New Metaheuristic-Based Hierarchical Clustering Algorithm for Software Modularization
title_full A New Metaheuristic-Based Hierarchical Clustering Algorithm for Software Modularization
title_fullStr A New Metaheuristic-Based Hierarchical Clustering Algorithm for Software Modularization
title_full_unstemmed A New Metaheuristic-Based Hierarchical Clustering Algorithm for Software Modularization
title_short A New Metaheuristic-Based Hierarchical Clustering Algorithm for Software Modularization
title_sort new metaheuristic based hierarchical clustering algorithm for software modularization
url http://dx.doi.org/10.1155/2020/1794947
work_keys_str_mv AT masoudaghdasifam anewmetaheuristicbasedhierarchicalclusteringalgorithmforsoftwaremodularization
AT habibizadkhah anewmetaheuristicbasedhierarchicalclusteringalgorithmforsoftwaremodularization
AT ayazisazadeh anewmetaheuristicbasedhierarchicalclusteringalgorithmforsoftwaremodularization
AT masoudaghdasifam newmetaheuristicbasedhierarchicalclusteringalgorithmforsoftwaremodularization
AT habibizadkhah newmetaheuristicbasedhierarchicalclusteringalgorithmforsoftwaremodularization
AT ayazisazadeh newmetaheuristicbasedhierarchicalclusteringalgorithmforsoftwaremodularization