The AMALTHEA component model is central accessible through the ComponentsModel element.
It holds the following types:
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.
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.
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’.
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’.
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.
The ‘FInterfacePort’ class contains the attribute ‘kind’ to set the port direction (‘provides’ or ‘requires’).
The attribute ‘interface name’ can be used to refer to an external definition, e.g. described in detail with the Franca IDL.
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.
The same example is shown in the standard AMALTHEA editor.
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. The future development of Franca will take place in an official Eclipse project under the Eclipse Modeling Top-level 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 in Franca.