09.08.2013 Views

Architecture Modeling - SPES 2020

Architecture Modeling - SPES 2020

Architecture Modeling - SPES 2020

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!