# A Model-Driven Approach for Solving the Software Component Allocation Problem
## 6 Results and Discussion
Although our framework may not find all non-dominated solutions, it finds a good mix of non-dominated solutions that are distributed across the objective space of feasible solutions. \begin{table}
\begin{tabular}{c c c c c c c} \hline \hline  & \multicolumn{2}{c}{**Our Framework**} & \multicolumn{2}{c}{**GA**} & \multicolumn{2}{c}{**ACO**} \\ \cline{2-7}  & **Mean** & **SD** & **Mean** & **SD** & **Mean** & **SD** \\ \hline _System_ **0** & 20.94 & 3.51 & 158.71 & 5.79 & 6949.38 & 190.36 \\ _System_ **1** & 33.72 & 2.57 & 1092.26 & 88.62 & 7196.58 & 196.00 \\ _System_ **2** & 35.25 & 4.10 & 1278.01 & 164.76 & 6820.97 & 201.67 \\ _System_ **3** & 23.95 & 2.67 & 2962.68 & 307.75 & 6832.64 & 366.73 \\ _System_ **4** & 21.72 & 2.33 & 7999.42 & 874.65 & 7137.78 & 364.83 \\ _System_ **5** & 27.49 & 4.20 & 216.13 & 10.28 & 13,539.28 & 162.85 \\ _System_ **6** & 27.93 & 2.70 & 213.58 & 16.48 & 13,740.06 & 279.69 \\ _System_ **7** & 66.45 & 3.81 & 937.94 & 76.35 & 80,872.42 & 1598.87 \\ _System_ **8** & 73.39 & 17.29 & 2133.85 & 240.11 & 84,292.41 & 2502.88 \\ _System_ **9** & 165.63 & 14.09 & 1883.04 & 186.61 & 401,164.30 & 2986.01 \\ \hline \hline \end{tabular}
\end{table} 
Table 4: The execution time results for our Framework, GA, and ACO (the unit is in seconds). SD stands for standard deviation. \begin{table}
\begin{tabular}{c c c c} \hline \hline  & **Our Framework** & **GA** & **ACO** \\ \hline _System_ **0** & 141.01 & 141.01 & 141.01 \\ _System_ **1** & 176.62 & 176.62 & 176.62 \\ _System_ **2** & 159.78 & 159.78 & 159.78 \\ _System_ **3** & 186.16 & 186.16 & 186.16 \\ _System_ **4** & 196.31 & 196.31 & 196.31 \\ _System_ **5** & 108.10 & 122.09 & 108.27 \\ _System_ **6** & 143.84 & 160.31 & 147.25 \\ _System_ **7** & 202.28 & 285.57 & 273.38 \\ _System_ **8** & 245.24 & 325.29 & 342.62 \\ _System_ **9** & 263.38 & 452.82 & 452.66 \\ \hline \hline \end{tabular}
\end{table} 
Table 3: Optimal cost results for our framework, GA, and ACO. For _System 9_, the exhaustive search method becomes infeasible. Instead, we used Pymoo [37] to solve the multi-objective optimization problem. In particular, we applied the NSGA-II [38]. The algorithm follows the general outline of a genetic algorithm with a modified mating and survival selection. The non-dominated solutions found by Pymoo are colored in orange. The Pareto fronts for _System 9_ are shown in Figure 7(b). The figure shows that some of the non-dominated solutions found by applying our framework are also found by using Pymoo. However, several of the non-dominated solutions found by applying our framework differ from those found by using Pymoo. Considering the execution times for _System 9_, the 95% confidence interval (based on a sample of 10 runs) for the execution times was 3.4076 \(\pm\) 0.052464 (the unit is in seconds) in the case of using Pymoo and 17.47997 \(\pm\) 0.16062 in the case of using our framework. Note that for the NSGA-II, the population size was set to 100, and the number of generations was set to 100. The crossover rate was set to 0.90, and the mutation rate was set to 0.05. In the second set of experiments, we apply our framework in solving allocation problems represented as models conforming to the meta-model of the SCALL tool [18]. This tool consists of two main parts: an editor that is used to create the models and a Python script, called _PyAllocator_, which is used to solve the allocation problem by employing a multi-objective heuristic allocation method. SCALL is implemented as an Eclipse plug-in and has been used in solving allocation problems in the research literature (for example, see the work of [PERSON] et al. [39]). Figure 9 shows the SCALL meta-model, which was adapted from [18]. The details of the meta-model can be found in [18]. We note that the meta-model does neither include elements for defining the weights nor the architectural constraints in a CAP. To compare our framework against the SCALL tool, we instantiated two models conforming to the SCALL meta-model with the same parameters as _Systems 0_ and 9.