9.1      Feature Connections

(1)   A feature connection can be declared between two abstract features of components.  If the features specify a direction, then the source of the connection is the feature with the out direction and the destination is the feature with the in direction.  Otherwise, the connection is considered to be bidirectional.

(2)   A feature connection can also be declared to refer to concrete features, i.e., ports, parameters, and access features.  In this case, the type of connection is inferred from the categories of the features involved in the connection.

Syntax

feature_connection ::=

    feature source_feature_reference connection_symbol
    destination_feature_reference
 
connection_symbol ::= 
    directional_connection_symbol | bidirectional_connection_symbol
 
directional_connection_symbol ::= ->
 
bidirectional_connection_symbol ::= <->
 
feature_reference ::=
    -- feature in the component type
    component_type_feature_identifier |
    -- feature in a feature group of the component type
    component_type_feature_group_identifier . feature_identifier |
    -- feature in a subcomponent
    subcomponent_identifier . feature_identifier
    -- feature in a call
    subprogram_call_identifier . feature_identifier

 

feature_connection_refinement ::=

    feature 

Naming Rules

(N1)     A source or destination reference in a feature connection or feature connection refinement declaration must reference a feature declared in the component type, a feature in a feature group of the component type, or a feature of one of the subcomponents. The source and destination features must be abstract features, ports, parameters, or access features.

(N2)     The subcomponent reference may refer to a subcomponent or a subcomponent array.

Legality Rules

(L1)     The feature identifier of a subcomponent reference may refer to a feature array, if the subcomponent is a thread, device, or processor.

The direction declared for the destination feature of a feature connection declaration must be compatible with the direction declared for the source feature as defined by the following rules: 

(L2)      If the feature connection declaration represents a connection between features of sibling components, then the source must be an outgoing feature and the destination must be an incoming feature.  An outgoing feature is an abstract feature with no direction or out direction, an outgoing port or parameter with an out or in out direction, or an access feature, in the case of data access with at least write access.  An incoming feature is an abstract feature with no direction or in direction, an incoming port or parameter with an in or in out direction, or an access feature, in the case of data access with at least read access.

(L3)      If the feature connection declaration represents a connection between features up the containment hierarchy, then the source and destination must both be outgoing features. 

(L4)      If the feature connection declaration represents a connection between features down the containment hierarchy, then the source and destination must both be incoming features.

(L5)      If the feature connection declaration specifies a directional connection, then the direction of the connection must be supported by the direction of the source and destination features.

(L6)      The individual connections of a semantic connection must be bidirectional or have the same direction.  The direction of the connection is determined by the direction of the source and destination feature and by the direction of the connection declarations.

Standard Properties

Required_Virtual_Bus_Class : inherit list of classifier (virtual bus)
Required_Connection_Quality_Of_Service : inherit list of Supported_Connection_QoS
Connection_Pattern: list of list of Supported_Connection_Patterns 
Connection_Set: list of Connection_Pair 
 

Semantics

(3)   Feature connections represent connections between abstract features, or between an abstract feature and a concrete feature.  Connection patterns are specified as described in Section 9.2.3.