Variability Modeling > Modeling variability in a model > Working with variability items and relationships on diagrams > Overview of variability items and relationships on diagrams > Overview of variability items and relationships on diagrams
  
Overview of variability items and relationships on diagrams
* 
When a model contains a Variant that model is a Product Line Model. You require a Product Line Model Access license to open a Product Line Model. In addition, you require a Product Line Engineering license to create and change variability items in a Product Line Model, and variant modeling must be enabled. For more information, see Enabling and disabling variability modeling in a model.
The following variability items are available on diagrams:
Variation Point - is a variable product line feature whose options are defined through Variants.
Variant - is an option that can be chosen for a Variation Point.
Alternative Choice - groups a set of Variability Dependencies and specifies the number of Variants that need to be included.
The following variability relationships are available on diagrams:
Artifact Dependency - specifies that an artifact (any base model item) is associated with a Variation Point or Variant.
Variability Dependency - specifies that a Variant is an option for a Variability Point.
Excludes Dependency - specifies that the inclusion of a Variant or Variation Point requires the exclusion of another Variant or Variation Point.
Requires Dependency - specifies that the inclusion of a Variant or Variation Point requires the inclusion of another Variant or Variation Point.
The Variant Diagram is specifically designed to model the preceding variability items and relationships, but you can also create and add the preceding items and relationships to any diagram through the Variability toolbar:
Create variability items and relationships on Variant Diagrams when you want to document variability in your models on separate diagrams that do not clutter your base model diagrams.
You can add model items to a Variant Diagram in order to create Artifact Dependencies between those items and the associated Variation Points and Variants.
Create variability items and relationships on base model diagrams when you want the variability information to appear next to the model items on UML, SysML, UPDM, etc. diagrams.
Alternatively you can use both approaches. For example, use Variant Diagrams to model relationships between Variation Points and Variants, and use base model diagrams to model Artifact Dependencies between model items and their associated Variation Points and Variants.
The following sections provide an overview of the variability items and relationships. Each section has a link to topics that provide more detailed information about the item or relationship.
Variation Point
A Variation Point is a variable product line feature whose options are defined through Variants.
In the preceding example, Guitar is a Variation Point.
The Modeler base model items that relate to a Variation Point can be linked to the Variation Point through Artifact Dependencies. You can drag model items on to a Variant Diagram.
The Variants of a Variation Point can be linked to the Variation Point through Variability Dependencies.
Through a Variation Point's Property Pages, you can specify whether a Variation Point is external or internal (visible or not visible to customers), and whether it is mandatory or optional (must or can be decided).
You can use Requires Dependencies and Excludes Dependencies to specify constraints between a Variation Point and other Variation Points and Variants.
For more information about Variation Points, see the following topics:
Adding an existing variation point to a diagram
Creating a variation point
Variation point (dictionary item)
Variant
A Variant is an option that can be chosen for a Variation Point.
In the preceding example, there are two Variants for the Guitar variation point, which are Acoustic or Electric.
The Modeler base model items that relate to a Variant can be linked to the Variant through Artifact Dependencies. You can drag model items to a Variant Diagram to create these links.
A Variant can be linked to one or more Variation Points through Variability Dependencies.
You can use Requires Dependencies and Excludes Dependencies to specify constraints between a Variant and other Variants and Variation Points.
A Variant can have a parameter, the value of which can be used to set a property of a linked artifact (base model item).
For more information about Variants, see the following topics:
Adding an existing variation point to a diagram
Creating a variant
Overview of variability parameters
Setting the value of an artifact property through an artifact dependency
Variation point (dictionary item)
Variability Dependency
A Variability Dependency specifies that a Variant is an option for a Variation Point.
In the preceding example, the two Variability Dependencies specify that the Acoustic or Electric variants are options for the Guitar variation point.
Through a Variability Dependency's Property Pages you can specify whether a Variant is mandatory or optional. A mandatory Variant must be included when its Variation Point is included.
For more information about Variability Dependencies, see the following topics:
Adding existing variability dependencies to a diagram
Creating a variability dependency
Including a variability dependency in an alternative choice
Removing a variability dependency from an alternative choice
Variability dependency
Alternative Choice
An Alternative Choice groups a set of Variability Dependencies and specifies their multiplicity, that is, the minimum and maximum number of Variants that must be selected for the Alternative Choice group.
In the preceding example, the Guitar must be either Acoustic or Electric.
An Alternative Choice is created as a child of a Variation Point, that is, if you delete a Variation Point, its child Alternative Choices are deleted as well. A Variant is included in an Alternative Choice group by linking the Variant to the Alternative Choice through a Variability Dependency.
For more information about Alternative Choices, see the following topics:
Adding an existing alternative choice to a diagram
Alternative choice (dictionary item)
Creating an alternative choice
Including a variability dependency in an alternative choice
Removing a variability dependency from an alternative choice
Artifact Dependency
An Artifact Dependency specifies that an artifact (any base model item) is associated with a Variation Point or Variant.
In the preceding example, the Adjust Amplification use case is associated with the Electric variant.
When linking a Variation Point or Variant to a model item, you can add the Variation Point or Variant to a diagram on which the model item appears, or you can drag the model item to the Variant Diagram on which the Variation Point or Variant appears.
An Artifact Dependency can use the parameter value of a source Variant to set the property value of a target artifact.
For more information about Artifact Dependencies, see the following topics:
Adding an existing artifact (any item) to a variant diagram
Artifact dependency
Creating an artifact dependency
Overview of variability parameters
Setting the value of an artifact property through an artifact dependency
Excludes Dependency
An Excludes Dependency specifies that a Variant or Variation Point excludes the selection of another Variation Point or Variant.
In the preceding example, if the Acoustic variant is chosen for the Guitar variation point, it excludes the Electric variant for the guitar. Likewise, if the Electric variant is chosen for the Guitar variation point, it excludes the Acoustic variant for the guitar
For more information about Excludes Dependencies, see the following topics:
Adding existing excludes dependencies to a diagram
Creating an excludes dependency
Excludes dependency
Requires Dependency
A Requires Dependency specifies that a Variant or Variation Point requires the selection of another Variation Point or Variant.
In the preceding example, if the Electric variant is chosen for the Guitar variation point, the Pickup variation point must be included.
Conversely, if the Pickup variation point is excluded, then the Electric variant must be excluded. The Electric variant must be excluded because if the Electric variant was included, it would require the Pickup variation point to be included.
A Requires Dependency can optionally be bidirectional, which means that the Requires Dependency relationship applies in both directions. When bidirectional, arrows appear at both ends of the relationship.
A Requires Dependency can have a parameter, which can be used to set the parameter value of a target Variant. A Requires Dependency can also propagate a parameter value from a source Variant to a target Variant.
For more information about Requires Dependencies, see the following topics:
Adding existing requires dependencies to a diagram
Creating a requires dependency
Overview of variability parameters
Propagating the value of a parameter through a requires dependency
Requires dependency