Extends variability

Extends associations provide a mechanism for method plug-ins to reuse elements from a base plug-in through a kind of inheritance. Attribute values and associations are inherited from the "based-on" element to the extending element. The result is that the extending element has the same properties as the "based-on" element, but might define its own additions.

Extends is not used to modify content of the base plug-in, but to provide the ability for the extending plug-in to define its own content, which is a variant of content already defined. An example of this is a special version of a generic Review Record for a specific type of review. The effect of this is that the base element and any number of extending elements can be used side-by-side, but refer to each other through the extends relationship.

Extends also provides the key mechanism for binding capability patterns to processes. A pattern is applied by defining an extends relationship from an activity of the applying processes to the capability pattern. The activity inherits association instances from the pattern and the pattern seems to be part of the resulting process after publication or by using the Browsing perspective.

Relevant information in the extending element is added to the base element in creating an additional element. Text fields in the extending element are appended at the end of the respective text fields in the base element.

Extends only defines inheritance for the extending element. The base element remains untouched. If the extending element is allowed an association to only one other element and has such an element defined already, inheritance will not override this existing association.

Extends association rules

Exceptions

All extending associations are "many to many" except for the following association:

A complete list of supported associations for each type of element is provided on the Associations impacted by variability page.

Adding an extends association

  1. To make an element extend another element, on the Description page use the Content Variability section.
  2. Select Extends as the Variability type, then select the base element that this element extends. Note that the base element must be the same type of element as the extending element.