arrow
返回

An efficient heuristic algorithm for software module clustering optimization

delete2022-08-01
delete9
PRE
AI
J
Javier Yuste
A
Abraham Duarte
E
Eduardo G. Pardo *
DOI:10.1016/j.jss.2022.111349delete
delete原文链接
delete原文求助
delete分享
delete收藏
摘要

摘要

En 中文
In the lifecycle of software projects, maintenance tasks usually entail 75% of the total costs, where most efforts are spent in understanding the program. To improve the maintainability of software projects, the code is often divided into components, which are then grouped in different modules following good design principles, lowering coupling and increasing cohesion. The Software Module Clustering Problem (SMCP) is an optimization problem that looks for maximizing the modularity of software projects in the context of Search-Based Software Engineering. In the SMCP, projects are often modeled as graphs. Therefore, the SMCP can be interpreted as a graph partitioning problem, which is proved to be NP-hard. In this work, we propose a new heuristic algorithm for software modularization, based on a Greedy Randomized Adaptive Search Procedure with Variable Neighborhood Descent. We present a three-fold categorization of neighborhoods for the SMCP and leverage domain-specific information to filter unpromising solutions. Our proposal has been successfully tested over a dataset of real software projects, outperforming the previous state-of-the-art approach in terms of Modularization Quality in very short computing times. Therefore, it could be integrated in software development tools to improve the quality of software projects in real time. (C)& nbsp;2022 Elsevier Inc. All rights reserved.
Keyword:
Software Module Clustering
Search-Based Software Engineering
Heuristics
Modularization Quality
Maintainability

期刊

Journal of Systems and Software 封面图
Journal of Systems and Software
IF:
4.1
论文数:
5.4K
被引数:
8.4K

机构

U
Universidad Rey Juan Carlos
学者数:
6.2K
论文数: 6.1K
被引数: 6.7K