![]() ![]() |
||||
|
||||
The abstract Connection class represents a connection
declaration of a connection between
features of subcomponents, and between features of subcomponents and features of the enclosing
component implementation. In the latter case, the connection may refer to a feature in the port
group type of a port group in the enclosing component implementation. These classes are shown
in Figure 23.
A connection has a source and a destination reference
to features. These references must
accommodate for the fact that the features of subcomponents, component implementations, and of
port groups are inherited. This is achieved by a reference association to the feature as it is
contained in the component type or port group type, and a reference association to the context in
which the feature is referenced. This context is represented by the FeatureContext class
- a super
class that has ComponentImpl, Subcomponent, and PortGroup as subclasses.
The concrete classes that are subclasses of the Connection
class represent the connection
declaration for each of the different feature types. The source and destination reference
associations are declared for each concrete class to reflect the fact that a connection of a certain
type can only connect features of the same type. For example, a data port connection can only
connect data ports. The concrete connection classes are DataAccessConnection,
BusAccessConnection, ParameterConnection, DataConnection, EventConnection,
EventDataConnection, and PortGroupConnection.
All connection classes are subclasses of ModeMember,
thus, have an inModes reference
association to Mode objects. The Connection class also has an inModeTransitions
reference
association to ModeTransition objects (see Figure 28) to reflect the fact that connections can
be
specified to be active during mode transitions.
The source and destination reference associations are
uni-directional, i.e., a connection refers to a
port, but a port does not persistently maintain a reference to its connections. Methods simply
determine the connections from and to subcomponent ports, i.e., connections to other
subcomponents or the enclosing component implementation, from the set of connections of the
enclosing component implementation. Similarly, the connections going from and to a port of a
component implementation to one of its subcomponents, is the subset of connections of the
component implementation that has the port as a source or destination reference.
A parameter connection cannot only refer to parameters,
but also to data and event data ports.
This is represented in the meta model by the ParameterEnd class with the Parameter class,
DataPort and EventDataPort class as subclasses.
Figure 25 Access Connections
Figure 25 shows the classes and associations for access
connections.
Bus and data access connections cannot only refer to
access features as well as to data or bus
subcomponent declarations. This is represented in the AADL meta model by the DataAccessEnd
and BusAccessEnd classes with the appropriate access feature and category-specific
subcomponent as subclasses.
The context of a connection source and destination reference
is represented the same way as for
port connections. Since at this time AADL does not support access features inside port groups,
only subcomponents and component implementations are referenced as context in the case of
parameter and access connections. |
||||