Architecture Modeling - SPES 2020
Architecture Modeling - SPES 2020
Architecture Modeling - SPES 2020
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>Architecture</strong> <strong>Modeling</strong><br />
F1 whenever event occurs event [does not] occur[s] [during interval]<br />
Phrases in square brackets are optional, bold elements are static keywords of the pattern, and<br />
elements printed in italics represent attributes that have to be instantiated by the requirements<br />
engineer. So a valid instance of the pattern F1 is:<br />
whenever p1.f1 occurs p2.f1 occurs during [8ms,10ms]<br />
The RSL provides patterns that have been categorized according to aspects they address. Despite<br />
that categorization they may also be used for the specification of other aspects. For example<br />
a Probability Pattern can be useful when specifying a failure hypothesis of components,<br />
which clearly is a Safety aspect.<br />
While the concept Contract (resp. SystemRequirement) and BlockOccurrence<br />
is directly expressed in the meta-model, this is not true for the syntax and semantics of<br />
RSL patterns. Figure 3.27 shows that an Assertion referenced in any of the three<br />
roles strongAssumption, weakAssumption or guarantee is a specialization of<br />
TextuallyRepresentedElement. The attribute textualRepresentation contains<br />
that text. Multiple instances of RSL patterns would then be entered in that text field.<br />
Thus, a set of pattern instances specifies a FormalAssertion of a contract, i. e. its strong<br />
and weak assumptions and its guarantee. See Section 6.1.1 for a formal definition of RSL.<br />
3.3.2 Hierarchy and Composition<br />
Once components are defined by means of the RichComponent concept and their syntactical<br />
interface has been specified by Ports, components can be instantiated in the context of<br />
other components as parts forming a composition of components. That composition is again a<br />
component, whose behavior is given by the behavior of its constituting parts.<br />
3.3.2.1 Hierarchy<br />
The instantiation of components in the context of other components is represented in the<br />
meta-model by the RichComponentProperty concept (see Figure 3.29). A component<br />
with its ports and contained behavior is referenced in the role of type by a<br />
RichComponentProperty. That RichComponentProperty is in turn aggregated by<br />
another RichComponent as one of its parts. The behavioral specifications characterized by<br />
contracts that are linked to a RichComponent and corresponding realizations are also instantiated<br />
in any RichComponentProperty typed by the RichComponent. It is allowed to<br />
have multiple instances of the same component in the context of a composition. As this concept<br />
can be applied recursively, it allows to construct deeply nested hierarchies of components. Note<br />
that this is consistent with type/part concepts found in e. g. UML [41] and SysML [39].<br />
3.3.2.2 Composition<br />
When components are used as parts in another component, they have to be interconnected by<br />
binding the flows and services contained in the ports. The concept of Interconnection<br />
is owned by the same component which also owns the parts. An interconnection is either a<br />
delegation connection or an assembly connection. The former links the interaction points of the<br />
outer component, i. e. the composition, with interaction points of its constituting parts. So the<br />
interaction points need to have the same direction. Assembly connections link the interaction<br />
points of parts of a composition to each other. So their directions must be reversed.<br />
40/ 156