MOPISDE: A collaborative multi-objective information-sharing DE algorithm for software clustering - Kang, Yan; Xie, Wentao; Wang, Xiaopeng; Wang, Haining; Wang, Xinchao; Li, Jinyuan (Expert systems with applications, 2023)
The software module clustering problem (SMCP) aims to improve the internal quality of software while helping software engineers understand the system architecture and facilitating software system maintenance. However, most current methods ignore modular stability in software evolution and the topological properties of the software architecture and hence obtain decompositions much worse than the expert. Therefore, we propose a collaborative multi-objective information-sharing differential evolution (MOPISDE) algorithm for SMCP with global stability and path complexity as two new objective functions. Specifically, two new concepts are defined for SMCP as two objectives of populations and modular quality (MQ) as an objective of the third population. Population-sharing technology is designed to collaboratively exchange information among different populations to address the lack of diversity in a single population. An information-sharing three-stage differential evolution strategy is presented to reduce the search space and improve search performance by sharing good substructures among elite individuals. New mutation strategies are proposed to utilize the different substructures between two random individuals as a new community to further improve the search performance. Experiments on various projects demonstrate the superiority of the proposed algorithm. The proposed method not only has fast convergence but also provides stable and accurate modularity that is somewhat closer to expert decomposition than that of other methods. •We propose two key concepts in the software module clustering problem (SMCP).•We design a collaborative multi-objective information-sharing DE algorithm based on the new concepts for SMCP.•The experiment results of our method are significantly better than the SOTA methods.•We provide the source code of our proposed method and the datasets used.