3.3 Multi-level SUM-based modelling
4.1.1 Structure and functionality
Since nAOMi was built to support OSM SUM-based modelling, it adheres to the OSM principles. nAOMi uses a dimension based navigation system to show all the different available views. This dimension naviga- tion system consists of the following dimensions:
28 CHAPTER 4. AVAILABLE TOOL SUPPORT
• Version
The version indicates which version of the system is shown. It is possible to switch back to older versions of the system.
• Abstraction
The abstraction indicates whether the system is shown as a PIM (Platform-Independent Model) or as a PSM (Platform-Specific Model). The PIM is visualized in the standard concrete syntax, whereas the PSM is visualized in a DSL representation.
• Component
The component indicates which component of the system is shown. By selecting a different compo- nent, different parts of the system can be shown.
• Encapsulation
The encapsulation indicates whether to show the specification (black box) or the realization (white box) of the system.
• Projection
The projection indicates which view of the system should be shown. This can be, for example, a structural view.
• Granularity
The granularity indicates whether to show the services or the types of a system. • Operation
The operation allows us to select a certain operation of the selected component.
For all these dimensions there is at least one possible selection.Abstraction,encapsulationandgranularity
provide two options, whereas the other dimensions can provide one or more options. Thecomponent di-
mension usually provides most options, as this dimension enables to navigate through all the components present in the system. Depending on which options are selected, a view of the system can be generated. The
type of the view is specified by theprojectionand is currently fixed at a structural view.
All the views are based on the Kobra-oriented SUM metamodel, shown in Figure 4.1. This metamodel, represented in LML, defines all the concepts used in Kobra to create the structural or behavioural views of a system.
4.1. NAOMI 29
Views
The metamodel supports the structural and the behavioural view. Figure 4.1 shows that we can divide the
Kobra metamodel into two parts: one consisting of theComponentelement with the fourAssociations, and
another consisting of the elementsStatewith its sub-elementsStartandStop, andTransaction. The former
part is used to represent the structural view, and the latter part is used to represent the behavioural view. All the views are shown by using the Melanee plug-in. This plug-in allows the visualization of LML diagrams and allows these LML models to be edited.
Structural view The structural view is represented in LML. All elements created for the structural view
are instantiated fromComponent, and are connected with each other using one (or more) of theAssociations.
The potency values of theComponent andAssociationsdetermine thatComponent,AcquiresandCreates
can be instantiated over two levels, whereasContainsandImportscan only be instantiated once. This means
that the only associations available for relations between runtime elements areAcquiresandCreates, and
thatContainsandImportsare only used for the relation between the direct instances of theComponent.
Behavioural view The behavioural view represents the state/transition diagram of the model. This view is currently not integrated within the tool, but is expected to be added in the future. The elements are
instantiated from theStateand connected with each other byTransactions. All the behavioural models have
at least oneStart state and oneEnd state, to start and terminate the behaviours. The behavioural view is
always designed at a single level since these diagrams are type abstractions, and therefore they can not be instantiated. This view is also more likely to be shown in a DSL representation than in the standard LML representation.
Transformations
In order to generate these views, nAOMi uses ATL as transformation language. Since ATL has been orig- inally developed to support the native transformations, an adapter has been developed that implements the support for multi-level transformations [11]. This ATL adapter is used by nAOMi, such that both the onto- logical and the linguistic sides of the components can be transformed. Although this ATL adapter supports multi-level to multi-level, multi-level to two-level, and two-level to multi-level transformations, only the first is currently used in nAOMi. This means that the SUM and all its views are multi-level models. nAOMi supports two types of transformations, namely generation transformations, and merge transformations. Gen- eration transformations are used to generate views from the SUM model, whereas merge transformations are used to merge the edited views with the SUM model. Merging a view with the SUM is done in two steps, first the view is transformed to a temporary SUM model, after which this model is merged with the old SUM model. During the last transformation the components of the temporary SUM model are compared with the components of the old SUM model, and are added, removed or updated.
30 CHAPTER 4. AVAILABLE TOOL SUPPORT