models Relationships between a parent feature and its child features (or sub-features) are categorized as: Mandatory – child feature must be selected. Optional – child feature can be selected or not selected. Or – at least one of the sub-features must be selected. Alternative (xor) – exactly one of the sub-features must be selected. In addition to the parental relationships between features, cross-tree constraints are allowed. The most common are: A requires B – The selection of A in a product implies the selection of B. A excludes B – A and B cannot be part of the same product. As an example, the figure to the right illustrates how feature models can be used to specify and build configurable on-line shopping systems. The software of each application is determined by the features that it provides. The root feature (i.e. E-Shop) identifies the SPL. Every shopping system implements a catalogue, payment modules, security policies and optionally a search tool. E-shops must implement a high or standard security policy (choose one), and can provide different payment modules: bank transfer, credit card or both of them. Additionally, a cross-tree constraint forces shopping systems including the credit card payment module to implement a high security policy. Cardinality-based feature models Some authors propose extending basic feature models with UML-like multiplicities of the form [n,m] with n being the lower bound and m the upper bound. These are used to limit the number of sub-features that can be part of a product whenever the parent is selected. If the upper bound is m the feature can be cloned as many times as we want (as long as the other constraints are respected). This notation is useful for products extensible with an arbitrary number of components. Extended feature models Others suggest adding extra-functional information to the features using "attributes". These are mainly composed of a name, a domain, and a value. Semantics The semantics of a feature model is the set of feature configurations that the feature model permits. The most common approach is to use mathematical logic to capture the semantics of a feature diagram. Each feature corresponds to a boolean variable and the semantics is captured as a propositional formula. The satisfying valuations of this formula correspond to the feature configurations permitted by the feature diagram. For instance, if is a mandatory sub-feature of , the formula will contain the constraint . The following