FeatureModeling::FeatureLink

Header Image
Content:
FeatureLink : Public Class FeatureModeling
A FeatureLink resembles a Relationship between two Features referred to as 'start' and 'end' feature (such as "feature S requires feature E" or "S excludes E").<br/><br/>The type of the FeatureLink specifies the precise semantics of the relationship. There are several predefined types, for example "needs" states that S requires E. In addition, user-defined types are allowed as well. For user-defined types, attribute 'customType' provides a unique identifier of the custom link type and attribute 'isBidirectional' states whether the link is uni- or bidirectional.<br/><br/>FeatureLinks are similar to FeatureConstraints but much more restricted. The rationale for having FeatureLinks in addition to FeatureConstraints is that in many cases FeatureLinks are sufficient and tools can deal with them more easily and appropriately (e.g. they can easily be presented visually as arrows in a diagram).<br/><br/><br/>Semantics:<br/>The FeatureLink is a relationship between Features that may constrain the selection of Features involved in the relationship.<br/><br/><br/>Constraints:<br/>[1] The start and end Features of a FeatureLink must be contained in the FeatureModel that contains the FeatureLink.<br/><br/>Extension:<br/>AssociationClass<br/>
  • Attributes
  • Associations
  • Advanced
  • Other Links
Attribute Scope Type
customType Public String
Notes: The custom type of this FeatureLink identified by a String value. This attribute's value is ignored if attribute 'kind' is set to some other value than 'custom'.<br/><br/>Each company or project can decide to use additional link types by defining unique key-words for them. In cases where FeatureModels are shared with third parties (other departments, companies, etc.) a globally unique type string must be used. Follow the instructions for finding globally unique keys for user attributes (cf. documentation of metaclass UserAttributeValue).<br/>
isBidirectional Public Boolean
Notes: Tells whether the FeatureLink is bidirectional or unidirectional. For predefined kinds, such as "needs", "mandatoryAlternative", etc., this attribute will be ignored and the kind determines whether the link is bidirectional or not (as defined in the documentation of attribute 'type', below). For custom kinds, this attribute may be provided to explicitly state the link's direction. If this attribute is not provided in case of a custom link type, then the link is assumed to be unidirectional.<br/>
kind Public VariabilityDependencyKind
Notes: The kind determines the precise semantics of the relation between the FeatureLink's start and end feature. There are 5 predefined kinds as defined by enumeration VariabilityDependencyKind and in the case of kind 'custom' the attribute customType can be used to define a custom feature link type.<br/>
Element Source Role Target Role
«atpStructureElement» FeatureModel
Class  
Name: featureLink
The FeatureLinks owned by the FeatureModel.
Name:  
 
Details:
 
«atpStructureElement» Feature
Class  
Name:  
The client Feature of a FeatureLink.
Name: end
The target [client] Feature of the dependency.
Details:
 
«atpStructureElement» Feature
Class  
Name:  
The supplier Feature of a FeatureLink.
Name: start
The source [supplier] Feature of the relationship.
Details:
 
Property Value
isFinalSpecialization: 0
Object Type Connection Direction Notes
Relationship Class Generalization To  
«atpStructureElement» FeatureModel Class Strong To