ConfigurationDecision represents a single, atomized rule on how to configure the target feature model(s) of the containing ConfigurationDecisionModel, depending on a given configuration of the source feature model(s). Two examples are: "all North American (USA+Canada) cars except A-Class have cruise control" (one ConfigurationDecision) or "all Canadian cars have adaptive cruise control" (another ConfigurationDecision). All ConfigurationDecisions within a single ConfigurationDecisionModel then specify how the target feature model(s) are to be configured depending on the configuration of the source feature model(s).<br/><br/>Example: <br/>Let's assume we have two FeatureModels: FM1 and FM2. FM1 has possible end-customer decisions like USA, Canada, EU, Japan and A-Class, C-Class, etc. FM2 has another possible end-customer decision such as CruiseControl, AdaptiveCruiseControl, RearWiper, RainSensor. End-customer decisions in FM2 describe possible technical features of the delivered products. By way of a set of ConfigurationDecisions it is now possible to define the configuration of FM2 (i.e. if there is a RainSensor, etc.) dependent on a configuration of FM1. In other words, with a ConfigurationDecision we can express something like: "If USA is selected in FM1 AND A-Class is not selected in FM1, then CruiseControl will be selected in FM2".<br/><br/>The two most important constituents of a ConfigurationDecision are the SelectionCriterion and the target. The target is a list of things to select and deselect in the target configuration(s), whereas the SelectionCriterion formulates a condition on the source configuration(s) under which this ConfigurationDecision's target elements will be selected.<br/><br/><br/>Semantics:<br/>There are two alternative semantics:<br/>a) Entities referenced by "Target" Association are included only if SelectionCriterion evaluates to "True".<br/>b) Entities that are FeatureParameters referenced by "Target" are assigned the value of the SelectionCriterion.<br/><br/>Constraints:<br/>No additional constraints.<br/><br/><br/>Extension:<br/>Class<br/>
Setting the attribute isEquivalence to true means that the features referred to in the ConfigurationDecision's effect are exclusively configured by this ConfigurationDecision (i.e. no other ConfigurationDecision in the same ConfigurationDecisionModel may refer to these features). This means that this ConfigurationDecision is the ONLY way in which these features can be selected and therefore the usual logical implication that a ConfigurationDecision represents is turned into a logical equivalence, hence the name: the effect is applied to the target configurations if and only if the specified criterion holds.<br/><br/>When setting this attribute to true, the modeler can state that the target-side features in this ConfigurationDecision's effect are exclusively configured by this ConfigurationDecision, i.e. no other ConfigurationDecision may influence these target-side features.<br/>
Name: selectionCriterion
The selectionCriterion is a logical expression on the source configuration(s) that states under which condition the 'effect' will be applied to the target configuration(s). It is defined as a mixed string expression.
Note that attribute “criterion” provides an alternative means for defining such an expression in the form of a VSL expression. If both “criterion” and “selectionCriterion” are defined, they are assumed to be semantically equivalent and a tool may choose which one to use for variability and configuration management.