Software restructuring is a crucial problem in software engineering. Improving the package structure of a large and complex object-oriented software system with minimum possible modification is an emerging software restructuring problem.… Click to show full abstract
Software restructuring is a crucial problem in software engineering. Improving the package structure of a large and complex object-oriented software system with minimum possible modification is an emerging software restructuring problem. To address the different aspects of software restructuring problems, many approaches based on deterministic and search-based optimization algorithms have been proposed. The inability of deterministic algorithms in addressing large and complex software restructuring problems encourages the researchers and practitioners to apply the search-based optimization algorithms. Most of the existing search-based software restructuring approaches mainly focus on improving the quality of existing package structure from various quality metrics perspectives. So, restructuring solution produced by such approaches can be better from the software quality metrics perspective and may not be better from the developers’ perspective. To improve the software package structure that can be accepted from the quality metrics perspective and the developers’ perspective, we propose a search-based software restructuring approach. To this contribution, we incorporate various favorable strategies corresponding to the nature of the software package restructuring problem in the framework of the harmony search algorithm. To guide the optimization process toward an expected software restructuring solution, we also redefine the objective functions. To validate the performance of our proposed approach, we apply it over eight object-oriented software projects. The obtained results show that the proposed approach does improve not only the quality of the package structure from the quality metrics perspective but also the developers’ perspective. Additionally, it also maintains the minimum possible modifications per improvement of package quality.
               
Click one of the above tabs to view related content.