The Feature Model is a simple UML Class model. The root of the Feature Model is a Class with the «RootFeatureGroup» stereotype applied.
You can use multiple independent feature models in one project. An example of a common use case would be using one feature model for expressing PLE variability and another for Data Markings. Another example would be using one feature model for expressing global enterprise-wide PLE variability and a smaller, local one that is project-specific.
When there are multiple independent feature models in a single project, defined variation points can refer to features in any of those feature models. This also means that a combination of the configurations defines the 100% model of the system. This combination needs to be selected during variant highlight and/or realization.
Each Yes/No feature (a feature that can be chosen or not) is modeled as a UML property with Boolean assigned as a type.
Each feature that has multiple alternative choices is modeled as a UML property with Enumeration assigned as a type. The alternatives are modeled as Enumeration literals.
All UML properties defined as features have the «Feature» stereotype applied.
To create a new feature
The composing properties must have the «Feature» stereotype applied as well. There can be multiple grouping levels (see the image below). Hereby, features are organized into a feature tree (starting from Root Feature Group).
Features can be placed either into a Root Feature Group (Class) (with the «RootFeatureGroup» stereotype applied) directly or a subgroup. A subgroup is modeled as a FeatureGroup (Class) with the «FeatureGroup» stereotype applied and then it is connected to the Root Feature Group using the Composition relationship.
To create a RootFeatureGroup/Feature Group element from the diagram palette