Enterprise-level search-based software remodularisation using domain knowledge

More Info
expand_more

Abstract

As software systems evolve over time, the quality of its structure and code degrade unless developers regularly maintain it, requiring significant effort. Automated tools to help developers maintain software have been well-studied in the past.
In particular, software remodularisation tools focus on improving the code structure quality with minimal effort by suggesting changes to the developers to obtain an improved modularisation.
While there has been considerable research on automated software remodularisation, it often faces one or more of the following three shortcomings.
First, the approach is applied to small or medium-size codebases, raising the question of whether it scales to large codebases. Second, the results are not validated by the developers of these codebases. Last, the algorithm optimises only from a code quality metrics point of view, not considering the perspective and knowledge of developers. In this thesis, we propose an approach to capture developers' domain knowledge of a large-scale object-oriented codebase, which uses an NSGA-III algorithm to suggest remodularisations that improve code structure quality and adhere to developer knowledge. Additionally, the results of the algorithm are validated by the developers. The results in this thesis show that with little effort, the domain knowledge of developers can be captured and used to improve the suggestions made by the algorithm.