UML PROFILE FOR SAVECCM - Research
UML PROFILE FOR SAVECCM - Research
UML PROFILE FOR SAVECCM - Research
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
SaveCCM<br />
Quality attributes<br />
In addition to ports, the interface of an element may contain quality attributes<br />
each associated with a value and possibly a confidence measure. These attributes<br />
hold the information about the (worst case) execution time, reliability estimates,<br />
safety models etc. The quality attributes are used for analysis, model extraction<br />
and for synthesis. A list of quality attributes is included in the definition of<br />
components.<br />
5.3.1 Components<br />
Components are the main architectural element in SaveCCM, it is the basic unit<br />
of encapsulated behaviour. The functionality of a component is usually<br />
implemented by a single entry function in C, but it is also possible to have more<br />
complex components that consist of a number of possibly communicating tasks.<br />
Component is defined by an entry function, associated ports and optional quality<br />
attributes. The only allowed dependencies between components are the ones<br />
explicitly captured through component ports.<br />
Each port providing data that is used as a parameter of the entry function is<br />
marked as a bind port.<br />
Execution model<br />
On a high level, a component is either waiting to be activated (triggered) or is<br />
executing. Initially, component is inactive. When all trigger input ports are<br />
activated, component has been triggered and it changes its state from inactive to<br />
executing state. The first phase of execution is read phase – the current value at<br />
each input data port is stored internally to ensure consistent computation. Then<br />
component performs its computations based on this inputs and possibly an<br />
internal state. After a computation (execute) phase is finished (the function has<br />
been computed, or in case of a complex component – when all tasks have<br />
finished), starts the write phase where the output is written to the output data<br />
ports. Finally, the component activates the outgoing trigger ports and returns to<br />
idle state by resetting input trigger ports.<br />
This execution model, with "read – execute – write" semantics ensures that<br />
when a component is activated (triggered), the execution is independent of any<br />
concurrent activities.<br />
Component realization<br />
Each component can have any number of models associated to it. A model is<br />
an element which implements component’s behaviour. It presents an instance of a<br />
component. A model can be an external file, or embedded as text within the<br />
element.<br />
37