Components Model

The AMALTHEA component model is central accessible through the ComponentsModel element.

It holds the following types:

Components Model Elements

The elements of the Components Model inherit several capabilities from common elements.

Ports, Components, Composites and ComponentInstances are referable by unique names.
A Connector also has a name but the name is optional and does not have to be unique.

Component

The ‘Component’ class represents a component. Components could be created directly within the ‘ComponentModel’ and are used as a type for a component instance.

It contains several ports of type ‘Port’. A component refers the classes ‘OsEvent’, ‘Label’, ‘Runnable’ and ‘AbstractProcess’ from the software model and the class ‘Semaphore’ from the OS model.

System and Composite

Systems are defined as top level elements within a component model. A system contains several Component- and
Connection-instances and is used to define the architecture of a technical system.

A ‘Composite’ is a special component type to aggregate Component- and Connection-instances compositely.
So it could be used to create hierarchical component structures.

System and Composite implement the interface ‘ISystem’.
The following diagram shows the main elements to represent the hierarchical structure.

In general each inner port should be connected. If a port is intentionally left unconnected it has to be added to the list of ‘groundedPorts’.

ComponentInstance and Connector

The ‘ComponentInstance’ and the ‘Connector’ can be created within a ‘System’ or a ‘Composite’. ‘ComponentInstances’ are used to represent instances of component- or composite-types. The ‘Connector’ class is used to connect the component instances to each other via their Ports. The connector contains a source and target ‘QualifiedPort’.

QualifiedPort

A ‘qualified’ port refers a ‘ComponentInstance’ and a ‘Port’.
If the ‘instance’ link is null then the QualifiedPort refers to a port of the enclosing composite.

InterfacePort

The ‘InterfacePort’ class contains the attribute ‘kind’ to set the port direction.
The attribute ‘interface name’ can be used to refer to an external definition, e.g. described in detail with the Franca IDL.

Example

Diagram

The diagram of the example shows a composite ‘A’ that contains two component instances ‘X’ and ‘Y’ of type ‘B’. The connections between the ports are named ‘c1’ to ‘c4’. The grounded port ‘in_3’ of instance ‘X’ (intentionally left unconnected) is marked green. The second unconnected port ‘in_2’ of instance ‘Y’ is unspecified. It is marked red and has to be changed, either declared as grounded or connected to another port.

Model Editor

The same example is shown in the standard AMALTHEA editor.

Franca IDL

Franca is a common interface definition language (IDL). The initial version has been developed by the GENIVI consortium as part of the standardization of an In-Vehicle Infotainment (IVI) platform. The first public version of Franca was released in 2012 under the Eclipse Public License. Franca is approved as official Eclipse project.

The Franca IDL files can be edited in a textual editor that is provided by Franca.

AMALTHEA ports can specify the ‘interface name’ to refer to interfaces.