## 5 Prototypical Validation and Case Study
### Variability4 TOSCA: An Extension of the TOSCA Standard
#### 5.1.2 Extending TOSCA for VDMM

Table 1: Benchmark results of the Variability Resolver prototype (Since tests 1–7 are in-memory, respective file measurements are not available). Figure 6: Benchmark results of the Variability Resolver prototype (on the left in-memory, on the right with filesystem interaction and YAML parsing). ## 6 Related Work

In the following, we discuss related work considering different research topics, such as product line engineering, context-aware deployment, optimization, and self-adaptation. ### Software Product Line Engineering

Software Product Line Engineering (SPLE) [19; 20; 21; 22] is an approach to manage and derive different variants of software, the product. There are two phases: domain engineering and application engineering. During domain engineering, a requirements analysis is conducted to create the product line along with a variability model, such as _feature models_[23] or _orthogonal variability models (OVM)_[19], which represent the problem space. A feature model describes in a single tree which common and variable features are available and which dependencies between them exist [23]. In comparison, an OVM consists of multiple variant points which represent variable features and, therefore, do not consider common features [19]. During application engineering, another requirements analysis is conducted to select the features and generate the desired product using artifacts from the product line, which represent the solution space. Compared to our work, we have a similar high-level process. The Variable Deployment Model and the corresponding algorithms can be seen as the solution space in SPLE terminology. Furthermore, we make use of conditional elements, which is an established technique for the solution space. In contrast, we focus on deploying composite multi-cloud applications and not on the generation of software. However, these concepts can be combined. For example, before a component is deployed, corresponding software can be generated based on information contained in the deployment model. Thus, our approach sits between the variability modeling and the generation of corresponding software and, therefore, bridges the gap between SPLE and deployment. [PERSON] and [PERSON] [24] presented a general method to integrate feature-based variability and structural models in the context of product line engineering. They differentiated between positive and negative variability. Based on a feature selection, positive variability extends a base model by optional elements, whereas negative variability removes optional elements from a base model. Our approach can be classified as negative variability. Similar, [PERSON] et al. [25] discussed the combination of SPLE and Model Driven Software Development (MDSD). However, deployment was not discussed. [PERSON] and [PERSON] [26] presented a general approach for integrating feature models for negative variability. They discussed how feature models and a model template can be used to generate a desired model. Thereby, elements of the model template were assigned with presence conditions, e.g., Boolean expressions over the feature selection. If an element is not present, its contained elements are also not present. They also propose different kind of default presence conditions. For example, if an element is removed, outgoing relations should also be removed, even if they have no presence conditions assigned. Furthermore, meta-expressions can be used to calculate, for example, properties, such as names. After evaluating the presence conditions, they further process the model to patch or simplify the model. They show their concept based on UML 2.0 class and activity diagrams. We also make use of the concept of presence conditions but explicitly in the context of deployment models, which was not focused on by [PERSON] and [PERSON] [26]. In contrast to their work, we provide a formal metamodel and corresponding algorithms. Extending UML with variability using stereotypes has been researched in several related work [27; 28; 29; 30; 31; 32].