“…Variant annotations, e.g., using UML stereotypes [31,9], presence conditions [6], or separate variability representations, such as orthogonal variability models [23], define which parts of the model have to be removed to derive the model of a concrete product. Second, compositional approaches [2,30,21,1] associate product fragments with product features which are composed for particular feature configurations. Third, transformational approaches, such as [14], represent variability by rules determining how modelling elements of a base model have to be replaced for a particular product model.…”