11.02.2014 Views

UML PROFILE FOR SAVECCM - Research

UML PROFILE FOR SAVECCM - Research

UML PROFILE FOR SAVECCM - Research

SHOW MORE
SHOW LESS

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

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

Saved successfully!

Ooh no, something went wrong!