# Software Product Line Maintenance Using Multi-Objective Optimization Techniques
## 4 Optimization for SPL Testing Using Multi-Objective Evolutionary Algorithms
### Method Description
#### 4.1.6 Definition 5 (Population)  
A Population is a set of individuals where a gene is shown by a valid configuration. The genetic algorithm (GA) deals with a set of individuals considered to be a population. Hence, a large search space of sets of valid configurations that exist in an SPL is obtained. The Materials and Methods should be described with sufficient details to allow others to replicate and build on the published results. An example of the cell phone feature model  
Figure 2: Cell phone feature model (adapted [45]). is described in Figure 2, which shows a total of 13 features represented by \(f_{1},\ f_{2},\ \ldots,\ f_{13}\). The above Figure 2 shows the cell phone as a root feature of the feature model and this root feature will be included in every product configuration. In this _FM_, the Accu_Cell, Display, and Games features are considered to be mandatory features. These three features would be present in each configuration. There exists an exclusive-or relationship between Accu_Cell and its child features. This means that there would be an explicit inclusion of one out of three features, i.e., Strong, Medium, or Weak. However, in the case of multi-player and single-player features forming an inclusive-or relationship, which means a valid configuration, there is a selection of at least one feature among two features. An Artificial Opponent is considered to be a mandatory child feature for the Single Player. For the main cell phone parent, the Wireless feature is taken as an optional child feature, therefore, its selection may be optional. The Wireless feature has Infrared and Bluetooth child features and makes an inclusive-or association. This means that, if any configuration contains a Wireless feature, then it must have at least one child feature to be included or selected. Three crosstree constraints persist in the cell phone product line. As long as there is an important selection for a Multi_Player feature that cannot be considered with the Weak feature, hence for this Wireless feature, the selection is mandatory. In the end, for the Bluetooth feature, the Strong feature selection is also compulsory. The set of n products represents the individual population, as exemplified in Figure 3. In that example, every single X contains three products, based on the integer numbers: (1, 4, and 9). A binary vector represents each product, and every element represents a feature of a feature model. The value (0) represents a feature that is not selected, and (1) represents the corresponding feature. In this example, product 1 does not contain the features of Infrared and Artificial Opponent. To achieve the optimization criteria, it is difficult to identify an SPL configuration that fulfills a number of potentially conflicting objectives. The issue becomes intensified when a configuration suite fulfilling testing goals comprising a set of configurations needs to be generated, which is assumed to be the actual issue that needs to be handled. Constraint-solving techniques and multi-objective evolutionary algorithms are parts of our approach, and to produce configuration suites, these approaches need to be applied in a balanced way so that the fulfillments of four testing objectives can be analyzed at the same time. For SPLs, the configuration generation problem is modeled as a search problem. In the proposed approach, sets of configurations are modeled as individuals and configurations as genes. It is also indicative of the likely operations on the individuals and the objective function. Hence, search-based approaches are enabled to fix the configuration generation problem. To eliminate invalid configurations from the search space, the constraint-solving technique is used. Figure 3: Individual Representation. To provide the maximum size of an individual, there is a need to specify the size of the population. A set of 1,..., m configurations randomly selected from all the valid configurations towards the feature model (_FM_) is represented by each individual.