# Input models

The set of input models contains three sub-models that are shortly described in the sequel:

- 1 the software component model,
- 2 the hardware platform and
- 3 the deployment model.

In the context of this page, the input models are discussed without referring to a specific example. Sample models are available via the Qompass online help or via the "create-new example" dialog of Eclipse.

## Component model

We use the UML MARTE component model that describes components (with their internal behavior), and the interaction points (ports) characterized by the transferred data or by the provided/required services. Interactions are realized by the design patterns described in section <a href="connector-container.html">Connector/Container</a>. The concurrent behavior is specified via the HLAM (High Level Application Modeling) sub-profile of MARTE. This concurrency model identifies the components that possesses execution resources (RtUnit) and the shared ones (PpUnit) which do not have execution resources, but resources that manage the concurrent access.

## Platform model

A hardware architecture is described in a similar way as the logical architecture by composition of elements. A class called "HWArchitecture" represents the complete platform. The attributes of this class represent nodes. Each node is typed with a class that captures the properties of this node. Each node can have a further internal structure, a hierarchical structure can thus be modeled.

## Deployment model

The deployment of an application consists to define the component instance, their configuration and their allocation to an execution node. The UML composite structure defines the roles that are played by each component of the system. The deployed component is always an instance of a component that has a specfied allocation to an execution resource (node or thread) and a specific configuration. In UML, an instance is defined by an "InstanceSpecification", the values of properties are given via "slots". In case that the property represents a sub-component, the associated value is a further instance specification. The resulting hierarchical structure is quite difficult to maintain and is automatically generated and maintained by tools.

A component-based system requires a configuration. The configuration attribute of a timer for instance define its frequency. The values of this configuration attribute can be defined at two different levels.

- on declaration level by associating a default value with an attribute
- on instance level, by specify a corresponding slot value

Once all component are instantiated and configured, they can be allocated.

The allocation phase consists of defining the relation between the the instances of software components and those of the platform elements. The Figure below describes the deployment of the component DeviceControlMonitor and PGController on the hardware platform. The MARTE "Allocate" relationship is used to describe the allocation model.

The allocation can be refined by introducing local resources of the platform between the application the hardware platforms -- in MARTE via the concept of a "SwSchedulableResource".