Architecture Modeling - SPES 2020
Architecture Modeling - SPES 2020
Architecture Modeling - SPES 2020
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
MultiplicityElement<br />
+part 0..*<br />
RichComponentProperty<br />
+component<br />
1<br />
+type 1<br />
<strong>Architecture</strong> <strong>Modeling</strong><br />
«isOfType»<br />
RichComponent<br />
+component<br />
1<br />
+component<br />
0..1<br />
Port<br />
+ isConjugated: Boolean<br />
+attribute<br />
+port<br />
Figure 3.29: Meta-model integration of hierarchy concepts<br />
0..*<br />
0..*<br />
Variable<br />
In the meta-model there is no distinction between the two kinds because it can be deduced<br />
from the context the kind of the connection. Both kinds of connections between Ports is captured<br />
by the concept Connector (cf. Figure 3.31). In most other languages (also UML) the<br />
interconnection of components in compositions is done by binding of ports. Since the architecture<br />
meta-model allows to declare multiple InteractionPoints per Port the concept<br />
FlowBinding, resp. ServiceBinding, allows to only bind a subset of the flows or services<br />
defining a port. Thus, linking Ports by means of Connectors is semantically just a<br />
short-cut to bind all interaction points of the Ports. Note that a PortSpecification may<br />
either contain multiple Flows or multiple Services, but not both.<br />
Directions are defined by the InteractionPoints themselves. in, out or<br />
bidirectional are possible directions of Flows and provided or required are possible<br />
directions of Services. Ports typed by a PortSpecification carry an attribute<br />
isConjugated. If this attribute is set to true the directions of all InteractionPoints<br />
in the corresponding PortSpecification are treated as if reversed. By default the value<br />
of the attribute is false. This facility allows to specify peer ports, i. e. with the same flows or<br />
services, but complementary directions.<br />
CompC<br />
part1:CompA pA pB part2:CompB<br />
(a) assembly connection<br />
pC<br />
CompC<br />
pA<br />
part1:CompA<br />
(b) delegation connection<br />
Figure 3.30: Example for assembly- and delegation connections<br />
FlowBinding and compatibility of Flows There are two case distinctions for binding<br />
Flows by means of FlowBinding. If flows of different ports shall be bound establishing an<br />
assembly connection like illustrated in Figure 3.30a, then the directions of both flows need to be<br />
complementary (in for out, out for in, bidirectional for bidirectional). In the<br />
case of delegation connections like depicted in Figure 3.30b, the directions must be the same.<br />
Further the flows must be compatible. Two flows are compatible if they associate the same<br />
DataType and their kind is the same.<br />
41/ 156