=Paper= {{Paper |id=Vol-1463/paper2 |storemode=property |title=Towards a Deep Metamodelling Based Formalization of Component Models |pdfUrl=https://ceur-ws.org/Vol-1463/paper2.pdf |volume=Vol-1463 |dblpUrl=https://dblp.org/rec/conf/models/Cicchetti15 }} ==Towards a Deep Metamodelling Based Formalization of Component Models== https://ceur-ws.org/Vol-1463/paper2.pdf
 Towards a deep metamodelling based formalization
              of component models
                                                          Antonio Cicchetti
                                       School of Innovation, Design and Engineering (IDT)
                                            Mälardalen University, Västerås, Sweden
                                                 email: antonio.cicchetti@mdh.se


    Abstract—Component-based software engineering (CBSE) is           and so forth. Usually, modelling languages support such hierar-
based on the fundamental concepts of components and bindings,         chical structure in terms of relationships between a component
i.e. units of decomposition and their interconnections. By adopt-     and its sub-components, or between a component and its
ing CBSE, a system is built-up by means of a set of re-usable
parts. This entails that system’s functionalities are appropriately   realisations, respectively. Despite this approach is powerful
identified so that implementing components can be accordingly         enough to represent complex CBSs from the expressiveness
selected. In turn, this means that each component-based design        point-of-view, it requires a careful management of system
is at least made-up of two different instantiation levels, i) one     validation. Notably, type correctness checking, that is verifying
for designing the system in terms of components and their             whether a component realisation is a valid instance of the
interconnections, ii) and one for linking possible implementation
alternatives for each of the existing components. In general, this    component specification, has to be hard-coded in the tool.
twofold instantiation is managed at the same metamodelling            Moreover, this check should be re-executed each time changes
level through the use of relationships. Despite such solutions        were performed in the component specification and/or in its
are expressive enough to model a component-based system, they         realisation. Besides, the relationship solution becomes quickly
cannot represent the instantiation relationship between, e.g., a      intricate with the growth of hierarchical decomposition levels.
component and its implementations. As a consequence, validity
checks have to be hard-coded in a tool, while the interconnection     Practically, supporting more than two levels of component
between component and implementation have to be managed by            nesting poses relevant representation issues, as distinguishing
the user.                                                             the quality attributes of a parent component from the ones of
    In this paper we propose to exploit deep metamodelling tech-      its nested children.
niques for implementing CBSE mechanisms. We revisit CBSE                 Deep metamodelling [3] is a recent technique introduced in
main concepts through this new vision by showing their counter-
parts in a deep metamodelling based environment. Interestingly,       the model-driven engineering (MDE) research field to cope
multiple instantiation levels enhance the expressive power of         with multiple instantiation levels. It enhances the usual 4-
CBSE approaches, thus enabling a more precise system design.          layered metamodelling architecture [4] (also known as two-
    Index Terms—model-driven engineering; component-based             level metamodelling) by providing a recursive language ex-
software engineering; component models; deep metamodeling;            tension/instantiation structure. In this respect, the deep meta-
instantiation level;
                                                                      modelling vision fits perfectly with CBSE methodology and
                                                                      its hierarchical decomposition of software systems [3]. In
                       I. I NTRODUCTION
                                                                      fact, deep metamodelling allows to represent a system and its
   The increasing complexity of contemporary software sys-            components by means of arbitrary decomposition/instantiation
tems and the growing pressures to deliver products faster while       levels.
still keeping high quality attributes demands appropriate de-            This paper investigates the implementation of a component
velopment solutions. Component-based software engineering             model by means of deep metamodelling mechanisms with
CBSE [1] is a well-established methodology that proposes              the aim of verifying the feasibility of such a solution. The
to alleviate software development intricacy by studying the           initial results illustrated in this work confirm the feasibility
target application as an assembly of composable units (indeed,        of the approach and meet the expectations of exploiting deep
software components), each one addressing a particular aspect         metamodelling mechanisms. Notably, hierarchical component
of the system. In this way, the complexity of the initial problem     structures can be represented in an easier way, while the
can be reduced through its partitioning into smaller sub-             conformance check of a component instance against a com-
problems. Moreover, time devoted to development and testing           ponent specification is obtained by-construction. Despite both
can be narrowed by promoting the reuse of already existing            the component model and the deep metamodelling solution
components across several software development projects [2].          are specific, the discussion is kept generic enough to be repro-
   Component-based system (CBS) specifications are intrinsi-          ducible with other component models and deep metamodelling
cally hierarchical: i) on the one hand, a component might be          approaches.
realised as the composition of several nested components; ii)            The paper is organised as follows: next section introduces
on the other hand, a component might have multiple imple-             CBSE together with a running example, which will be ex-
mentations distinguished by quality attributes, target platform,      ploited in Section III to clarify the issues raising in considering
multiple instantiation levels. Section IV discusses the proposed
formalisation of CBSE concepts through a deep metamod-
elling framework. Eventually, related works are discussed and
conclusions are drawn in Sections VI and VII, respectively.

        II. I NSTANTIATION RELATIONSHIPS IN CBSE
   CBSE methodology relies on the notion of component, that
is “a unit of composition with contractually specified interfaces
and explicit context dependencies only. A software component
can be deployed independently and is subject to composition
by third party.” [5]. Depending on the application domain,
technological platform, and so on, the concept of component
might include disparate characteristics, which are typically                 Fig. 3. Two (excerpts of) possible implementations for the PNA system.
defined in a corresponding component model [6]. Therefore,
a CBS is specified by adhering to a well-defined component
model, that prescribes how components, their interconnections,                 In general, a component can include nested sub-
and their deployment, look like.                                            components, referred to as composite components [6]. This
   For example, let us consider a simple Personal Navigation                is the case of the GPS Receiver, which has a complex
Assistant (PNA)1 CBS as depicted in Figure 1: it includes                   internal structure. As shown in Figure 2, GPS antennas
GPS Receiver, Power Management, Navigation                                  (Parallel Receiver) have to coordinate their tasks with
System, and UI components (represented as boxes with                        Clock and Almanac Store. In particular, satellite avail-
names). For the purpose of this paper, it is sufficient to know             abilities depend on the current time and are stored in an
that the Navigation System retrieves geo-positioning                        almanac.
information from a GPS Receiver and delivers naviga-                           Eventually, components are attached with one or more
tion data to a user interface (UI component). These inter-                  implementations, which can be distinguished by quality at-
connections are represented by means of named relation-                     tributes, supported platforms, and so forth. Notably, for the
ships linking component ports. More precisely, a triangle                   PNA one might want to prioritise power consumption versus
shaped port represents an (provided) output of a certain                    precision in a mobile phone while doing the opposite for a
component, while a square represents an (required) input.                   rescue device. Figure 3 illustrates two implementation alter-
Therefore, Navigation System gets Position infor-                           natives for the PNA system: in the one shown on the top
mation from GPS Receiver and, after computing relevant                      half of the picture, a single Database is shared between the
Navigation Data, it delivers them to the UI.                                implementations of Almanac and UI components, whereas
   1 The example has been taken from [7] and readapted for the purpose of
                                                                            the realisation shown on the bottom half exploits separate
this paper.
                                                                            databases.
                                                                               It becomes quickly evident that CBSE methodologies are
                                                                            intrinsically hierarchical: the generic notion of component
                                                                            assembly is instantiated by means of a specific component
                                                                            model (e.g., the simple one used in the example), which in
                                                                            turn is instantiated into a particular CBS (the PNA system).
                                                                            Even further, components can be realised in terms of other
                                                                            components and/or through implementations (as shown in
                                                                            Figure 2 and 3, respectively). In this respect, it is expectable
                                                                            that each CBS specification is made-up of only valid in-
                                                                            stances for the component model, the components defined
              Fig. 1. A simple Personal Navigation System.                  in the system together with their implementations. Some of
                                                                            these instantiation relationships are managed by-construction:
                                                                            notably, a CBSE tool is built-up on a well-defined component
                                                                            model, hence the tool will support the design of CBSs by
                                                                            means of all and only the concepts offered by the selected
                                                                            component model (i.e. there is no need to verify that a CBS
                                                                            specification conforms to the component model).
                                                                               A number of instantiation relationships however have to be
                                                                            checked case-by-case, and this validation step has to be ad-
                                                                            dressed either by the designer, through appropriate constraints
               Fig. 2. A simple GPS receiver component.                     at modelling level (e.g. by means of OCL [8]), or hardcoded
                                                                          component implementations, would all be represented at the
                                                                          modelling level (i.e., M).
                                                                             The conformance validity issues mentioned in Section II
                                                                          are due to the fact that a certain entity either pertains to the
                                                                          metamodel or to one of the models conforming to it. Moreover,
                                                                          at language level, realisation links defined between composite
                                                                          components and sub-components, and analogously between
                                                                          components and implementations, cannot guarantee confor-
                                                                          mance (i.e., they cannot impose type instantiation constraints).
                                                                          Technically, these relationships link concepts pertaining to
                                                                          different metamodelling layers that however cannot be repre-
                                                                          sented in the typical 4-layered metamodelling architecture [3].
Fig. 4. A comparison between 4-layered and deep metamodelling architec-
                                                                          More specifically, the PNA system in Figure 1 is an instance
tures.                                                                    of a certain component model, and at the same time the
                                                                          implementations in Figure 3 are instances of PNA components.
                                                                          In other words, a certain entity should play the role of a
into the tool. For example, when specifying that the GPS                  concept definition (MM level in Figure 4) and instance (M level
Receiver composite component in Figure 1 is decomposed                    in Figure 4) at the same time.
as in Figure 2, the tool should at least verify that input and out-          Multiple metamodelling layers allow to appropriately rep-
put ports of the latter component specification are compatible            resent instantiation hierarchies, as depicted on the right side
with input and output ports of the former composite compo-                of Figure 4: a model can be equally considered as an instance
nent (e.g., matching types). A similar reasoning has to be done           conforming to the metamodel on the layer above and as
when considering the interconnection between components                   a language definition (i.e. as a metamodel itself), for the
and corresponding implementations. More specifically, every               layer below. In this way, it is be possible to define a com-
implementation of GPS Receiver should be compatible                       ponent model as a metamodel a certain CBS specification
with every implementation of Navigation System when                       conforms to, like it happens for CM and ProCom levels. In
considering the exchange of Position and Output Mode                      turn, the CBS specification would constitute a metamodel
data (e.g., the implemented setter and getter methods should              for which (sub-)component instances could be created (see
match with their types). Regardless whether specified by the              ProCom and PNASystem levels, respectively). Eventually,
designer or if hardcoded in the tool, keeping consistent and              implementations would be represented in a model conforming
up-to-date validity checks can be time-consuming and error-               to a metamodel including simple component definitions (i.e.,
prone, especially when considering complex CBSs. Notably,                 PNAImpl).
if the system needed a more precise tracking of power status,
the Power Management component could be refined as
                                                                          IV. A DEEP METAMODELLING FORMALISATION FOR CBSE
providing more details. In turn, these refinements should be
propagated at implementation level by choosing appropriate                    This section illustrates the proposed formalisation of CBSE
component implementations for both Power Management                       methodologies into a deep metamodelling framework. The for-
and Navigation System.                                                    malisation proceeds step-by-step, from higher abstraction level
                                                                          concepts towards more and more concrete instantiations of
III. O N THE NEED OF A DEEP METAMODELLING SOLUTION                        them. In particular, we leverage a specific component model,
   Current modelling techniques are usually based on a 4-                 namely ProCom [9], to implement the example presented in
layered metamodelling architecture [4]: a software system is              Section II. Moreover, we exploit MetaDepth [10] as support
represented by means of a model, that is an abstraction of                for concretising the formalisation proposal on a specific deep
reality for a given purpose. The model is created by following            metamodelling environment. It is worth noting that, despite
a set of well-formedness rules stated in a language definition,           the component model and deep metamodelling solution are
referred to as the metamodel. In other words, a metamodel                 specific, the discussion is kept generic to be extensible to
defines the set of legal abstractions for a certain system. A             arbitrary component models and other deep metamodelling
model is said to conform to a metamodel if it adheres to                  solutions.
the defined well-formedness rules. At the top of the 4-layered                In order to develop a system through CBSE methodologies,
architecture there is the meta-metamodel, i.e. a unique minimal           it is necessary to preliminarily adopt a specific component
set of concepts needed to create all the possible languages. In           model [6]. In the most generic terms, a component model is
this respect, the specification for the example introduced in             made-up of components, bindings, and a platform. By adopting
Section II would be supported as shown on the left side of                MetaDepth syntax, these concepts are specified as shown in
Figure 4: the MMM layer would be exploited to define a CBSE               Listing 1. In particular, Component nodes are bound by
language based on a specific component model (at level MM),               means of directional Binding edges (the direction is iden-
while the PNA system, its (sub-)components, bindings, and                 tified through attributes bindingOut, bindingIn, respec-
   tively). A similar reasoning can be done for the Deployment 21 Deployment ProComDeployment(ProComComponent.deployment,
                                                                                  ProComPlatform.in) {}
   relationship between Component and Platform nodes.                  22 }
      It is worth noting that, already at this stage it is possible to
                                                                              Listing 2. Encoding of (a subset of) the ProCom component model.
   put modelling constraints: the noSelfBinding expression
   at line 18 prescribes that a component cannot be bound to Once the component model has been defined, it is possi-
   itself. Moreover, child multiplicity at line 9 establishes that ble to model a CBS. In our case, we specify the PNA
   a Composite must have at list one nested component.                    system introduced in Section II through ProCom, as shown
 1 Model ComponentModel@*{                                                in Listing 32 . In particular, the Navigation System, Power
 2 ext Node Component@*{                                                  Management, and UI components in Figure 1 are mod-
 3 bindingIn: Component[*];
 4 bindingOut: Component[*];                                              elled as ProComComponents, while the GPS receiver
 5 deployment: Platform[0..1];                                            as a ProComComposite (see lines 2–13). Moreover,
 6 }
 7                                                                        DataConnections            are specified to bind the components
 8 ext Node Composite@*: Component{                                       appropriately, and implicitly define data ports for the corre-
 9 child: Component[1..*];
10 }                                                                      sponding components (lines 16–21).
11                                                                           Since GPS is defined as a composite, it is possible to define
12 ext Node Platform{
13 in: Component[*];                                                      it as an assembly of sub-components. In this respect, Listing 3
14 }                                                                      shows the definition of Almanac Store at lines 23–25
15
16 Edge Binding(Component.bindingOut,Component.bindingIn) {}              according to the description of the GPS receiver depicted
17 Edge Deployment(Component.deployment,Platform.in) {}                   in Figure 2. Furthermore, by choosing the implementation
18 noSelfBinding@* : $Component.allInstances()->forAll(src,tgt
            | Binding(src.bindingOut,tgt.bindingIn) implies src!=         alternative at the bottom of Figure 3, the almanac is defined as
           tgt)$                                                          composite, thus allowing the introduction of a nested database
19 }
                                                                          component together with its quality attributes (lines 29–34).
               Listing 1. Encoding of a generic component model.          The nesting specification is completed with the definition
   The generic definition given in Listing 1 introduces the nec- of isChildOf relationships, as visualised at lines 36–38.
   essary CBSE concepts to create a specific component model. Eventually, a platform is introduced to allow the deployment
   Notably, if we would like to define the ProCom component of the PNA system, and component deployments are specified
   model, we would need to refine the generic bindings as accordingly (lines 41–47).
  ports, since ProCom adopts port-based interfaces. In particular, 12 ProCom PNAModel{
                                                                       ProComComposite GPS{
  we introduce data ports and trigger ports, as illustrated in 3 name = "GPS Receiver";
  Listing 2, lines 4–7. Moreover, bindings have to be refined 45 }
  correspondingly (lines 18–19). It is important to notice that 6 ProComComponent NS{
  ProCom component model is defined in terms of, or better 78 }name = "Navigation System";
  instantiates, the generic component model defined in List- 9 ProComComponent UI{
  ing 1. This ensures, for instance, that DataConnection 10        11 }
                                                                        name = "UI";

  correctly binds a pair of ProComComponents through their 12 ProComComponent PM{
  in_dataPort and out_dataPort, respectively. Other 13             14 }
                                                                        name = "Power Management";

  alternatives, e.g. connecting a port with a child, would have 15
  raised type mismatch issues at validation time due to the type 16 DataConnection(GPS.out_dataPort,NS.in_dataPort){name="
                                                                            Position";}
  relationships defined before.                                    17 DataConnection(NS.out_dataPort,GPS.in_dataPort){name="
                                                                               OutputMode";}
 1 ComponentModel ProCom{                                              18 DataConnection(PM.out_dataPort,NS.in_dataPort){name="
 2 Component ProComComponent{                                                  PowerStatus";}
 3 name: String {id};                                                  19 DataConnection(UI.out_dataPort,NS.in_dataPort){name="
 4 in_dataPort: ProComComponent[*] {bindingIn};                                UserInputs";}
 5 out_dataPort: ProComComponent[*] {bindingOut};                      20 DataConnection(NS.out_dataPort,UI.in_dataPort){name="
 6 in_triggerPort: ProComComponent[*] {bindingIn};                             NavigationData";}
 7 out_triggerPort: ProComComponent[*] {bindingOut};                   21 DataConnection(NS.out_dataPort,UI.in_dataPort){name="
 8 parent: ProComComposite[0..1];                                              Tracks";}
 9 }                                                                   22
10                                                                     23 ProComComposite AS{
11 Composite ProComComposite: ProComComponent{                         24 name = "Almanac Store";
12 child: ProComComponent[1..*];                                       25 }
13 }                                                                   26
14                                                                     27    ...
15 Platform ProComPlatform{                                            28
16 }                                                                   29 ProComComponent DB{
17                                                                     30 name = "DB";
18 Binding DataConnection(ProComComponent.out_dataPort,                31 encryption: String = "NotDefined";
         ProComComponent.in_dataPort) { name: String {id}; }           32 queryLanguage: String = SQL;
19 Binding TriggerConnection(ProComComponent.out_triggerPort,
          ProComComponent.in_triggerPort) { name: String {id};             2 Due to space limitations, some portions of the specification are omitted.
         }
20 Edge isChildOf(ProComComponent.parent, ProComComposite.               The interested reader can download the full specification at http://www.es.
         child) {}                                                       mdh.se/∼acicchetti/PNASystem.php .
33        WCET: int = 22;                                                           important, the implementations have to obey the constraints
34    }
35
                                                                                    set in the specification: innerAlmanac can only connect
36    isChildOf innerASDB(DB.parent,AS.child);                                      an implementation for the almanac with an implementation of
37    isChildOf innerAlmanac(AS.parent,GPS.child);
38    isChildOf innerUIDB(DB.parent,UI.child);
                                                                                    a GPS (see line 18), while GPSDeployment can only be
39    ...                                                                           instantiated with an implementation for the GPS (see line 34).
40
41    ProComPlatform PNAPlatform{
                                                                                    The check of such constraints comes “for free” by the system
42      name: String = "PNAPlatform";                                               specification itself, which acts as a metamodel for the system
43      CPU: String = "FPGA";
44      BUS: String = "EtherNet";
                                                                                    implementation; on the contrary, the 4-layered metamodelling
45    }                                                                             techniques would require additional coding and/or correctness
46
47  ProComDeployment GPSDeployment(GPS.deployment, PNAPlatform
                                                                                    rule definitions to check relationships consistency.
         .in) {}                                                                       Another relevant aspect to notice is the ease of identifi-
48 ...
49 }                                                                                cation of type instances, which allows to set properties by
             Listing 3. Specification of the PNA system through ProCom.
                                                                                    component implementation, and link each of them to the
                                                                                    appropriate component types. In particular, the two different
     An excerpt of the implementation of the PNA system is                          implementations for the database are equipped with different
     specified as shown in Listing 4. In particular, it illustrates the             quality attributes and can be included into different composites
     details for GPS, almanac, and database components (lines 2–                    accordingly. Moreover, the deep metamodelling framework
     18), together with the ones for UI and its nested database (lines              naturally supports the extension of attributes, making it possi-
     20–21), consistently to the implementation choice depicted at                  ble to provide additional implementation details for component
     the bottom of Figure 3. Moreover, it shows the declaration of                  implementations (e.g. cost, size, and so forth) depending on
     a platform and corresponding deployments at lines 33–34.                       target platform sensitiveness.
 1 PNAModel pna{                                                                       From a higher level of abstraction perspective, the deep
 2 GPS gpsImplementation{
 3 name = "GPS1";                                                                   metamodelling approach enables the definition of advanced
 4 }                                                                                modelling constraints. Notably, the component model might
 5
 6 AS asImplementation{                                                             define modelling patterns/styles that later on will have to be
 7 name = "AS1";                                                                    preserved by system specifications in order to be successfully
 8 }
 9                                                                                  validated. This could include the number of components,
10 DB dbImplementation1{                                                            the kind/number of allowed bindings, and so on. It is im-
11 name = "DB1";
12 encryption = "none";                                                             portant to notice, once again, that similar constraints could
13 queryLanguage = "SQL";                                                           be implemented also in the usual 4-layered metamodelling
14 WCET = 13;
15 }                                                                                architectures. However, such a need would require implicit
16                                                                                  checks that in the long run can become time-consuming and
17 innerDBAS(dbImplementation1,asImplementation);
18 innerAlmanac(asImplementation,gpsImplementation);                                error-prone.
19
20 UI uiImplementation{                                                                As a drawback, the hierarchical arrangement of CBSs
21 name = "UI1";                                                                    specification over multiple metamodelling levels could result
22 }
23                                                                                  as less intuitive and become less usable when dealing with
24 DB dbImplementation2{                                                            complex systems. In this respect, it is very important to notice
25 name = "DB2";
26 encryption = "none";                                                             that the formalisation is intended to be transparent to the
27 queryLanguage = "SQL";                                                           CBS designer, and should be considered as the underlying
28 WCET = 22;
29 }                                                                                infrastructure over which a CBS tool would be implemented.
30                                                                                  MetaDepth is a text-based deep metamodelling environment,
31 innerDBUI(dbImplementation2,uiImplementation);
32                                                                                  and as a consequence this work adopts the same approach.
33 PNAPlatform platform {}                                                          Nonetheless, other existing deep metamodelling tools have
34 GPSDeployment(gpsImplementation.deployment, platform.in);
35 ...                                                                              already demonstrated the implementability of diagrammatic
36 }                                                                                layers over a base deep metamodelling technology (notably
     Listing 4. An excerpt of the specification of the PNA system implementation.   Melanee [11] and the DPF [12]).
                                                                                       The current description of this formalisation in inherently
                                V. D ISCUSSION                                      top-down, whereas an ideal CBSE approach would promote
        At this point it is important to remark several relevant                    a bottom-up development, where useful pre-existing compo-
     aspects related to the PNA system specification. From an                       nents are identified and picked-up from a repository [13]. In
     instantiation procedure point-of-view, the deep metamodelling                  this respect, the component model can be still described as
     framework introduces correctness by-construction. Notably,                     including a repository, and a valid CBS as being a collection of
     once a system is defined as shown in Listing 3, it will                        component repository elements. In this case, it would be up to
     be only possible to introduce component implementations as                     the CBSE tool to create an appropriate instantiation hierarchy
     instances of the defined types (as in Listing 4). Even more                    based on the selected components.
                    VI. R ELATED W ORKS                                                           R EFERENCES
   A preliminary choice in adopting a modelling language is          [1] I. Crnkovic, “Component-Based Software Engineering for Embedded
deciding whether opting for a general purpose or a domain-               Systems,” in LMO, 2006, p. 13.
                                                                     [2] I. Crnkovic and M. Larsson, Building Reliable Component-Based Soft-
specific language [14]. In general, the former solutions have            ware Systems. Artech House, Inc., 2002.
embedded extension mechanisms (like the prototyping mech-            [3] J. D. Lara, E. Guerra, and J. S. Cuadrado, “When and how to use
anisms for the UML [15]), while the latter demand proper                 multilevel modelling,” ACM Trans. Softw. Eng. Methodol., vol. 24, no. 2,
                                                                         pp. 12:1–12:46, Dec. 2014.
language extensions through metamodelling activities. With           [4] J. Bézivin, “On the Unification Power of Models,” Software and System
respect to this paper, the former mechanisms provide more                Modeling, vol. 4, pp. 171–188, 2005.
expressiveness through model instances (by inheritance), while       [5] C. Szyperski, Component Software: Beyond Object-Oriented Program-
                                                                         ming, 2nd ed. Boston, MA, USA: Addison-Wesley Longman Publishing
the latter ones act on the metamodel to provide appropriate              Co., Inc., 2002.
refinements. In both cases, the extensions are limited to the        [6] I. Crnkovic, S. Sentilles, V. Aneta, and M. R. V. Chaudron, “A classifi-
4-layered metamodelling architecture that does not allow to              cation framework for software component models,” IEEE Trans. Softw.
                                                                         Eng., vol. 37, no. 5, pp. 593–615, Sep. 2011.
introduce multiple instantiation levels.                             [7] T. Lévêque and S. Sentilles, “Refining extra-functional property val-
   The general need for better addressing multiple instan-               ues in hierarchical component models,” in Proceedings of the 14th
tiation levels has been recognised in the last decade and                International ACM Sigsoft Symposium on Component Based Software
                                                                         Engineering, ser. CBSE ’11. New York, NY, USA: ACM, 2011, pp.
corresponding solutions have been identified under the name              83–92.
of multilevel (or deep) modelling [10], [12], [16], [17]. In         [8] Object Management Group (OMG), http://www.omg.org/spec/OCL/2.0/
some cases, multilevel modelling techniques have been even               PDF.
                                                                     [9] S. Sentilles, A. Vulgarakis, T. Bureš, J. Carlson, and I. Crnković, “A
used to implement domain-specific component-based systems,               Component Model for Control-Intensive Distributed Embedded Sys-
notably robots [18] and cloud services [19]. Nonetheless, to             tems,” in Proceedings of CBSE. Springer Berlin, 2008, pp. 310–317.
the best of our knowledge this is the first work that proposes a    [10] J. de Lara and E. Guerra, “Deep meta-modelling with metadepth,” in
                                                                         Proceedings of the 48th International Conference on Objects, Models,
general formalisation of CBSE concepts, and in particular of             Components, Patterns, ser. TOOLS’10. Berlin, Heidelberg: Springer-
component models, with the aim of enhancing current CBSE                 Verlag, 2010, pp. 1–20.
techniques.                                                         [11] C. Atkinson and R. Gerbig, “Melanie: Multi-level modeling and ontol-
                                                                         ogy engineering environment,” in Proceedings of the 2Nd International
   The problem of managing multiple instantiation levels in              Master Class on Model-Driven Engineering: Modeling Wizards, ser.
CBSE has been already tackled by several works, as [7], [20],            MW ’12. New York, NY, USA: ACM, 2012, pp. 7:1–7:2.
[21]. In general these works adopt a 4-layered metamodelling        [12] Y. Lamo, X. Wang, F. Mantz, W. MacCaull, and A. Rutle, “Dpf work-
                                                                         bench: A diagrammatic multi-layer domain specific (meta-)modelling
solution, that is, they typically exploit inheritance or other           environment,” in Computer and Information Science 2012, ser. Studies
recursive relationships to provide support for containmen-               in Computational Intelligence, R. Lee, Ed. Springer Berlin Heidelberg,
t/refinement modelling [7]. Therefore, they leave open the               2012, vol. 429, pp. 37–52.
                                                                    [13] S. Becker, H. Koziolek, and R. Reussner, “The palladio component
instantiation problems described throughout the paper.                   model for model-driven performance prediction,” J. Syst. Softw., vol. 82,
                                                                         no. 1, pp. 3–22, Jan. 2009.
          VII. C ONCLUSION AND FUTURE WORKS                         [14] T. Kosar, N. Oliveira, M. Mernik, J. M. Pereira Varanda, M. Črepinšek,
                                                                         D. Da Cruz, and P. Henriques Rangel, “Comparing general-purpose and
   This paper presents the first steps towards the formalisa-            domain-specific languages: An empirical study,” Computer Science and
tion of CBSE concepts in a deep metamodelling framework.                 Information Systems, vol. 7, pp. 247–264, 2010.
Component-based systems have an intrinsic hierarchical struc-       [15] Object Management Group (OMG), “UML Superstructure Specifi-
                                                                         cation V2.3,” http://www.omg.org/spec/UML/2.3/Superstructure/PDF/,
ture and frequently exploit the “type-instance” pattern [3].             2011, [Online. Last access: 11/04/2012].
These characteristics have been identified as problematic to        [16] C. Atkinson, M. Gutheil, and B. Kennel, “A flexible infrastructure for
be implemented in the usual 4-layered metamodelling archi-               multilevel language engineering,” IEEE Trans. Softw. Eng., vol. 35, no. 6,
                                                                         pp. 742–755, Nov. 2009.
tecture and require better support. In this respect, the formali-   [17] B. Neumayr, K. Grün, and M. Schrefl, “Multi-level domain modeling
sation illustrated in this work shows promising improvements             with m-objects and m-relationships,” in Proceedings of the Sixth Asia-
and gains with regard to both expressiveness and correctness             Pacific Conference on Conceptual Modeling - Volume 96, ser. APCCM
                                                                         ’09. Darlinghurst, Australia, Australia: Australian Computer Society,
checking.                                                                Inc., 2009, pp. 107–116.
   Future investigation directions will include a more extensive    [18] C. Atkinson, R. Gerbig, K. Markert, M. Zrianina, A. Egurnov, and
experimentation of deep metamodelling techniques, especially             F. Kajzar, “Towards a deep, domain specific modeling framework
                                                                         for robot applications,” in Proceedings of the First Workshop on
focusing on the adoption of different component models, in               Model-Driven Robot Software Engineering (MORSE). CEUR-WS,
order to verify the malleability of deep metamodelling in com-           2014. [Online]. Available: http://ceur-ws.org/Vol-1319/
ponent adaptation/reconfiguration scenarios [13]. Moreover,         [19] A. Rossini, J. de Lara, E. Guerra, and N. Nikolov, “A comparison of two-
                                                                         level and multi-level modelling for cloud-based applications,” in Mod-
the formalisation will have to be embedded in a CBSE tool to             elling Foundations and Applications, ser. Lecture Notes in Computer
better evaluate the usability/scalability aspects related to both        Science, G. Taentzer and F. Bordeleau, Eds. Springer International
modelling and analysis tasks.                                            Publishing, 2015, vol. 9153, pp. 18–32.
                                                                    [20] J. Odell, “Power types,” JOOP, vol. 7, no. 2, pp. 8–12, 1994.
                   ACKNOWLEDGEMENTS                                 [21] R. C. Goldstein and V. C. Storey, “Materialization,” IEEE Trans. on
                                                                         Knowl. and Data Eng., vol. 6, no. 5, pp. 835–842, Oct. 1994.
  The author would like to thank Jan Carlson and Severine
Sentilles for the interesting preliminary discussions around the
topic covered in this paper.