3.1. The E³-Model

3.1.1. Overview

The E³-Model is a metamodel, which allows the standardized definition of methods. It can describe modeling languages as well as the procedure to execute these languages. Additionally, also specific models created in one language can be saved in the E³-Model. The following division in three sections results from these requirements:

Process layer

Includes the description of processes

Type layer

Includes the description of a modeling language

Instance layer

Includes specific models (instances) of a language that is defined in the type layer

The type and instance layers are subdivided horizontally in three more layers that dissociate the context of a model from the graphic representation. A further division into views that can be combined in any order (resulting in a hierarchy) help to organize the model. The vertical layers enable to specify model elements (objects) and their properties.

Horizontal division of the E³-Model

Figure 3.1. Horizontal division of the E³-Model

3.1.2. Concepts of the E³-Model

E³-elements result from the horizontal and vertical division of the E³-Model.

Concepts of the E³-Model

Figure 3.2. Concepts of the E³-Model

Model type

A model type allows to resume elements of the context layer.

Object type

The object type describes the elements of the model type.

Property type

The properties of an object type are defined by its property type. Furthermore, the property type is characterised by a range of values, a multiplicity and a structure type that determines, in which form (set, list or tree) the values of the range should be organized.

One distinguishes between the elementary range of values including for example character strings and fractional numbers, and the E3 range that can comprises every E3 element. Some of the possible connexions are thereby created. Addtionally, a dynamic range of values including one or several ranges for a single instance can be specified. The property type multiplicity indicates the maximum and minimum quantity of values that the range specific to the property type can have. Several property types can be assigned to each object type.

View type

A view type allows to create views, in other words to select the relevant sections of the metamodel. A view type can be assigned further view types.

Presentation type

A presentation type is used to graphically represent sections of the metamodel selected by means of the view type.

Presentation object type

Object types of the context layer are represented graphically by their subordinated presentation object type.

Presentation property type

Presentation property types enable to describe the object type properties and connections to other E³-elements.

The following figure clarifies the correlation between the concepts.

Ontology for object, view object and presentation object types in the E³-Model

Figure 3.3. Ontology for object, view object and presentation object types in the E³-Model

Trigger

A trigger reacts to occurences (after creating an item, before of after making a change, before deleting an item) and executes a script accordingly. There is also a trigger enabling Namensberechnung. Triggers are used for instance to ensure consistency when deleting an object or to adjust graphics by means of ECMA scripts. Triggers are compatible with every type.

Related help topics:

3.1.3. Connections and notation

E³-elements are described as followed.

Notation of E³-elements

Figure 3.4. Notation of E³-elements

In this representation, connections are kept minimal, as the example of a modeling language for nodes and edges points out.

Model type

The model type mentions no connections, it therefore "does not know" its subsequent or subordinated E³-elements, e.g. objects, views and presentation types.

Model type

Figure 3.5. Model type

Object type und property type

An object type is subordinated to its model type. For their superordinated object types, property types are described as followed: Structure type (minimum, maximum multiplicity) range of values.

Object type

Figure 3.6. Object type

Object types can be connected to each other by inheritance relations. Sub-object types thereby inherit the properties of their super-object type.

Inheritance relation

Figure 3.7. Inheritance relation

Direct relations between E³-elements are described through associations or aggregations that are created within the range of values E³ of a property type. Die Rolle bezeichnet den Propertytypen, der durch die Assoziation bzw. Aggregation ausgedrückt wird.

Aggregation and association

Figure 3.8. Aggregation and association

An association takes place between two object types. In the example above, the property type "nodes" is subordinated to the object type "edges". The multiplicity (2,2) means that an edge always features two nodes. The property type "edge" of the object type "nodes" with the multiplicity (0,*) indicates that a node can feature an unlimited number of edges. An aggregation is existing between an object type and an object type, a view type or a presentation type. The properties of the aggregation partner are aggregated in the object type (hash key ending). In this example the object type "type" is aggregated in the object type "nodes".

View type

A view type is subtype of its model type, which has to be specified.

View type

Figure 3.9. View type

Presentation type

A view type always features a presentation type. The indirect connection with the model type is made through the higher-ranked view type, and therefore does not appear at this level.

Presentation type

Figure 3.10. Presentation type

Presentation object type

The presentation object type is subordinated to its presentation type and object type. It is not only characterised by presentation properties, but also by a graphic.

Presentation object type

Figure 3.11. Presentation object type

Presentation properties are properties of the subordinated object type. They are assigned to a connector that links graphics to another. The assignments are specified in the ConnectorDefinition, which associates connector IDs to presentation property types. In the example below, connections between the graphics of the presentation object types "nodes" and "edges" are possible.

Presentation object type and ConnectorDefinition

Figure 3.12. Presentation object type and ConnectorDefinition

Model instance nodes and edges

Figure 3.13. Model instance nodes and edges

Related help topics:

3.1.4. Tables in Cubetto Toolset

From version 1.2.5 of Cubetto Toolset, model data can be displayed and edited in tables. The tables are anchored in the E³-Model, therefore they show connections with the above-mentioned concepts. Tables are defined on the type level by a table type that is, always linked to a view type, similarly to a presentation type. Consequently, tables are always created and edited within a view.

Cubetto Toolset distinguishes between basic tables and matrices. Basic tables show the properties of several objects of a specific type, whereas matrices display complex connections between two object types. The figure below shows a basic table. The object type vehicle was chosen as row group, thereby specifying that only objects belonging to this type can be inserted into the table. The same object type was chosen as column group type and describes the properties of a vehicle. The column group type is then assigned to two column types. A column type is connected to the colour property, the other with the mileage property. The column and row group type designations are hidden, as only one type can exist at a time.

Representation of basic tables

Figure 3.14. Representation of basic tables

As opposed to basic tables, matrices represent complex tables, which row and column group types do not refer to a single object type. In the figure below, the object type vehicle was again defined in the row group type. The column group type was assigned the object type person. Furthermore, the third object type hired car connects both other types. The object type vehicle features the property type hire contract that is used as row type in the table. The object type person also features a property type hire contract that makes the connection with the hire contract, that was used as column type. The matrix shows which hire contract connects which person with which vehicle. Also in this example the designation of row and column group types are hidden, as only one type can exist at a type.

Representation of matrices

Figure 3.15. Representation of matrices

Related help topics: