09.08.2013 Views

Specification of an Architecture Meta-Model - SPES 2020

Specification of an Architecture Meta-Model - SPES 2020

Specification of an Architecture Meta-Model - SPES 2020

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Specification</strong> <strong>of</strong> <strong>an</strong> <strong>Architecture</strong> <strong>Meta</strong>-<strong>Model</strong><br />

points in the ports <strong>of</strong> the rich component.<br />

A rich component may optionally own <strong>an</strong> initializer. The purpose <strong>of</strong> the initializer<br />

is to assign initial values to the attributes <strong>of</strong> the inst<strong>an</strong>ces <strong>of</strong> the rich component.<br />

Moreover, if the rich component has nested sub-components, in the body <strong>of</strong> the initializer,<br />

the corresponding initializers <strong>of</strong> the rich components that type these nested<br />

sub-components c<strong>an</strong> also be invoked to initialize the sub-inst<strong>an</strong>ces (see Initialization-<br />

Call).<br />

The inter-connection configuration <strong>of</strong> a rich component <strong>an</strong>d its sub-components are<br />

specified by its interconnections. Two kinds <strong>of</strong> interconnections c<strong>an</strong> be specified statically:<br />

the finer one — bindings (including both flow bindings <strong>an</strong>d service bindings),<br />

which bind the interaction points <strong>of</strong> the component or its sub-components; <strong>an</strong>d the<br />

coarser one — connectors among ports, which serve as a short-cut to bind all the<br />

interconnection points in each connected ports with the same names. All these interconnections<br />

are owned by the rich component. In addition, a rich component may also<br />

specify its inter-connection configuration dynamically in terms <strong>of</strong> “elaboration codes”.<br />

The dynamics <strong>of</strong> a rich component is depicted by its contracts <strong>an</strong>d its behavior.<br />

Contracts are fulfilled by the rich component <strong>an</strong>d expressed in terms <strong>of</strong> assumptions<br />

<strong>an</strong>d promises, requiring the environment to behave as assumed, <strong>an</strong>d guar<strong>an</strong>teeing the<br />

rich component to behave as promised. There are two kinds <strong>of</strong> contracts: <strong>an</strong> atomic<br />

contract that owns a pair <strong>of</strong> assertions for the assumption <strong>an</strong>d promise respectively, <strong>an</strong>d<br />

a composite contract that is a composition <strong>of</strong> contracts using a number <strong>of</strong> operators<br />

such as: glb, parallel, <strong>an</strong>d fusion. Please refer to ContractCompositionOperator for<br />

details. Finally, according to the perspective from which a contract talks about the<br />

specification <strong>of</strong> the component, contracts are categorized into viewpoints.<br />

In contrast to contracts, the behavior <strong>of</strong> a rich component defines the inherent dynamics<br />

<strong>of</strong> the rich component, where the behavior is specified by a block occurrence<br />

to describe the dynamics at <strong>an</strong> abstracted level.<br />

An HRC block exposes dynamics on its owned pins. Then <strong>an</strong> inst<strong>an</strong>ce <strong>of</strong> such a<br />

pin, which is owned by block occurrences <strong>of</strong> this HRC block, will be linked to either a<br />

flow, a service, or <strong>an</strong> attribute <strong>of</strong> the rich component that owns this block occurrence,<br />

to state that the dynamics <strong>of</strong> the component on the flow, the service, or the attribute is<br />

as specified by the HRC block on the linked pin. Such links are owned by the same<br />

rich component.<br />

Generalizations: TemplatableElement, ReusableElement<br />

Aggregations<br />

• attribute : Variable [0..*] The set <strong>of</strong> attributes owned by the rich component.<br />

• part : RichComponentProperty [0..*] The set <strong>of</strong> sub-components owned by<br />

the rich component.<br />

• port : Port [0..*] The set <strong>of</strong> ports owned by the rich component.<br />

30/135

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

Saved successfully!

Ooh no, something went wrong!