An Agent-based Hyper-heuristic for Software Systems Modularization

Document Type : Original Article

Authors

1 Department of Computer Science, Faculty of Mathematics, Statistics, and Computer Science, University of Tabriz, Tabriz, Iran,

2 Department of Computer Science, Faculty of Mathematics, Statistics, and Computer Science, University of Tabriz

Abstract

Modularization algorithms are used to recover the software architecture. These algorithms divide the source code of the software system into smaller and more understandable modules. Since software modularization is an NP-hard problem, search-based methods are usually used to solve it. In recent years, the use of hyper-heuristics with intelligent search approaches has increased to achieve a higher level of generality. In this paper, a general agent-based hyper-heuristic, using the concept of multi-agent systems, is presented for software modularization. In the proposed algorithm, agents with diversification and intensification search perspectives are used, and agents with the same perspective are placed in a coalition. In each step of the search, the most appropriate coalition is automatically selected using reinforcement learning, and its agents are executed in parallel. Also, in the design of some agents, chaos theory is used to maintain diversity. To demonstrate the applicability of the proposed algorithm, eleven real-world software systems with small and medium sizes, along with ten folders of Mozilla Firefox with different functionalities and sizes are selected. The results of the experiments show that the proposed hyper-heuristic, in most cases, produces higher-quality modularizations in less time than the compared algorithms. The proposed algorithm's average numerical improvement in modularization quality and execution time on ten folders of Mozilla Firefox is 77.607 and 59.448%, respectively.

Keywords

Main Subjects



Articles in Press, Accepted Manuscript
Available Online from 23 July 2024
  • Receive Date: 21 October 2022
  • Revise Date: 12 September 2023
  • Accept Date: 12 October 2023