Space of software alternatives Each alternative is a different combination of features (configuration) We define a feature as a triples (R,I,C) [CIHe08] [GL07] where: R is a functional, performance or quality requirement (context independent) I is the code implementation (e.g., Java) C: constraint requirement (context dependent) A configuration is obtained by combining a subset of features F We assume to have an abstract union operator to combine features, which is expressed in terms of union operator for R, I and C Given two features and their union is defined as:
{}