The RobMoSys composition structures is a bottom abstraction layer on Tier 1 (see figure below). This layer defines all the robotics meta-structures that are required to consistently model robotic systems throughout several development phases and thereby supporting different developer roles. The meta-structures follow a general composition-oriented approach where systems can be constructed out of reusable building blocks with explicated properties. In other words, RobMoSys enables the composition of robotics applications with managed, assured and maintained system-level properties via model-driven techniques. This enables communication of design intent, analysis of system design before it is being built and understanding of design change impacts. Therefore, the RobMoSys composition structures adhere to the general block-port-connector meta-structures and can be considered as a further specialization thereof.
The figure (above) shows an exemplary list of possible composition structures (highlighted with the yellow background color), which can be clustered into (a) specializations of blocks and (b) specializations of relations. One of the central structures defined by RobMoSys is a consistent and rich enough component model that considers the interaction with related structures around the component model (such as e.g. the definition of communication services and the binding to different middlewares). These structures are described below in separate pages. An interesting point is that RobMoSys by purpose does not aim at one huge meta-model that covers all robotics aspects at once. Instead, RobMoSys foresees the definition of modeling views that cluster related modeling concerns in dedicated views, while at the same time connecting several views in order to be able to define model-driven tooling that supports the design of consistent overall models and to communicate the design intents to successive developer roles and successive development phases. In this sense, composition does not only apply to designing robotics software but is also applied to designing the modeling tools, thus making them easily extensible and composable.
Are you new to model-driven engineering? Find introduction literature in the FAQ.
The figure below provided an overview of the RobMoSys composition structures (i.e. the RobMoSys Metamodels). Each block in the figure represents a separate Metamodel that is individually described in a separate page (see below). There are high-level relations between the metamodels that are depicted with the uses keyword.
The next pages individually describe the RobMoSys metamodels in a human-readable notation using the general definitions of block-port-connector. There is a straightforward way to transform this representations using a dedicated modeling technology as described here.
Each metamodel (presented next) addresses two main modeling needs namely structure and interaction. Structure defines the structural relations (such as has-a and contains) between the individual model elements. Structure can often be directly translated into a modeling technology such as Ecore. Interactions define the important interaction relations (using port, connector and connects) between specific model elements. In contrast to structure, interactions are often transformed into software APIs (e.g. through code generation) and must not always be visible on model level.