Specification of an Architecture Meta-Model - SPES 2020
Specification of an Architecture Meta-Model - SPES 2020
Specification of an Architecture Meta-Model - 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.
<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