## 3 Materials and Methods
### Problem Description and Formulation
Figures 6 and 7 show the successful solution obtained when the HHMO_CF_GDA approach was applied to the mutins dataset. Figure 6 shows the structure of the mutins software before the application of HHMO_CF_GDA, whereas Figure 7 shows the optimized mutins software result of the module clustering after the application of HHMO_CF_GDA. It was observed that the structure of the mutins software was more optimized after applying HHMO_CF_GDA. In addition, the nodes and clustering were more organized, cohesion of the software clusters was higher, and coupling between the nodes was lower. Similarly, HHMO_CF_GDA successfully achieved the objectives after it was applied to optimize the telnet2 software. Figure 8 shows the telnet2 dataset before the application of HHMO_CF_GDA, whereas Figure 9 shows the optimized telnet2 dataset results of the module clustering after the application of HHMO_CF_GDA. From the results, we made two observations: (a) HHMO_CF_GDA showed its applicability in a wide range of problems in different domains. In this study, HHMO_CF_GDA was applied to solve the multi-objective software module clustering problem, which is a real-world problem in discrete space. The algorithm effectively achieved the objectives of higher cohesion and lower coupling. Additionally, an increase in the generality of the HHMO_CF_GDA methodology, achieving diversity and convergence, was attainted. This observation supports HHMO_CF_GDA results when applied to solve the vehicle crashworthiness design problem, which is a real-world problem in continuous space [32]. (b) HHMO_CF_GDA can efficiently solve different optimization problems regardless of the kind of problem space, whether in discrete space, as in the case of multi-objective software module clustering, or in continuous space, as in the case of the vehicle crashworthiness design problem. Figure 4: Box plots of NSGAII, SPEA2, MOGA, and HHMO_CF_GDA of the size of space covered (SSC) on the mutins and telnet2 datasets: (a) mutins box plots; (b) telnet2 box plots. Figure 5: Box plots of NSGAII, SPEA2, MOGA, and HHMO_CF_GDA of uniform distribution (UD) on the mutins and telnet2 datasets: (a) mutins box plots; (b) telnet2 box plots. Figure 6: Mutins system before applying the HHMO_CF_GDA approach. Adapted from [31]. Figure 7: Mutins system after applying the HHMO_CF_GDA approach. Figure 8: Teheet2 system before applying the HHMO_CF_GDA approach. Figure 9: Telined2 system after applying the HHMO_CF_CDA approach. ## 6 Conclusions

The need for systems that can help software engineers in decision making to optimize SMC for their systems motivated us to develop a HHMO_CF_GDA approach to solve the multi-objective module clustering optimization problem. This approach can help software engineers to optimize module clustering to minimize coupling and maximize cohesion. We also introduced a multi-objective module clustering framework that comprises two phases: building the input matrix and running the optimization process. In the matrix-building phase, the software structure is obtained from the decision maker and then proceeds to the next phase to run the optimization framework (HHMO_CF_GDA). The optimizer minimizes coupling and maximizes cohesion by considering MQ objective, which is to balance coupling and cohesion. Subsequently, the proposed framework produces the optimized solution as a diagram to make it more understandable to the decision maker. We apply HHMO_CF_GDA to solve the multi-objective module clustering optimization problem. We also conducted several independent experiments on mutins and telnet2 datasets using HHMO_CF_GDA and the individual low-level heuristics of MOEA algorithms to determine the performance of HHMO_CF_GDA. The experimental results show that the HHMO_CF_GDA method outperformed the individual multi-objective evolutionary algorithms in solving the multi-objective software module clustering optimization problem.