<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Towards a deep metamodelling based formalization of component models</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Antonio Cicchetti School of Innovation, Design and Engineering (IDT) Ma ̈lardalen University</institution>
          ,
          <addr-line>Va ̈stera ̊s</addr-line>
          ,
          <country country="SE">Sweden</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>-Component-based software engineering (CBSE) is based on the fundamental concepts of components and bindings, i.e. units of decomposition and their interconnections. By adopting CBSE, a system is built-up by means of a set of re-usable parts. This entails that system's functionalities are appropriately identified so that implementing components can be accordingly selected. In turn, this means that each component-based design is at least made-up of two different instantiation levels, i) one for designing the system in terms of components and their interconnections, ii) and one for linking possible implementation alternatives for each of the existing components. In general, this twofold instantiation is managed at the same metamodelling level through the use of relationships. Despite such solutions are expressive enough to model a component-based system, they cannot represent the instantiation relationship between, e.g., a component and its implementations. As a consequence, validity checks have to be hard-coded in a tool, while the interconnection between component and implementation have to be managed by the user. In this paper we propose to exploit deep metamodelling techniques for implementing CBSE mechanisms. We revisit CBSE main concepts through this new vision by showing their counterparts in a deep metamodelling based environment. Interestingly, multiple instantiation levels enhance the expressive power of CBSE approaches, thus enabling a more precise system design. Index Terms-model-driven engineering; component-based software engineering; component models; deep metamodeling; instantiation level;</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>I. INTRODUCTION</title>
      <p>
        The increasing complexity of contemporary software
systems and the growing pressures to deliver products faster while
still keeping high quality attributes demands appropriate
development solutions. Component-based software engineering
CBSE [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] is a well-established methodology that proposes
to alleviate software development intricacy by studying the
target application as an assembly of composable units (indeed,
software components), each one addressing a particular aspect
of the system. In this way, the complexity of the initial problem
can be reduced through its partitioning into smaller
subproblems. Moreover, time devoted to development and testing
can be narrowed by promoting the reuse of already existing
components across several software development projects [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
      </p>
      <p>Component-based system (CBS) specifications are
intrinsically hierarchical: i) on the one hand, a component might be
realised as the composition of several nested components; ii)
on the other hand, a component might have multiple
implementations distinguished by quality attributes, target platform,
and so forth. Usually, modelling languages support such
hierarchical structure in terms of relationships between a component
and its sub-components, or between a component and its
realisations, respectively. Despite this approach is powerful
enough to represent complex CBSs from the expressiveness
point-of-view, it requires a careful management of system
validation. Notably, type correctness checking, that is verifying
whether a component realisation is a valid instance of the
component specification, has to be hard-coded in the tool.
Moreover, this check should be re-executed each time changes
were performed in the component specification and/or in its
realisation. Besides, the relationship solution becomes quickly
intricate with the growth of hierarchical decomposition levels.
Practically, supporting more than two levels of component
nesting poses relevant representation issues, as distinguishing
the quality attributes of a parent component from the ones of
its nested children.</p>
      <p>
        Deep metamodelling [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] is a recent technique introduced in
the model-driven engineering (MDE) research field to cope
with multiple instantiation levels. It enhances the usual
4layered metamodelling architecture [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] (also known as
twolevel metamodelling) by providing a recursive language
extension/instantiation structure. In this respect, the deep
metamodelling vision fits perfectly with CBSE methodology and
its hierarchical decomposition of software systems [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. In
fact, deep metamodelling allows to represent a system and its
components by means of arbitrary decomposition/instantiation
levels.
      </p>
      <p>This paper investigates the implementation of a component
model by means of deep metamodelling mechanisms with
the aim of verifying the feasibility of such a solution. The
initial results illustrated in this work confirm the feasibility
of the approach and meet the expectations of exploiting deep
metamodelling mechanisms. Notably, hierarchical component
structures can be represented in an easier way, while the
conformance check of a component instance against a
component specification is obtained by-construction. Despite both
the component model and the deep metamodelling solution
are specific, the discussion is kept generic enough to be
reproducible with other component models and deep metamodelling
approaches.</p>
      <p>The paper is organised as follows: next section introduces
CBSE together with a running example, which will be
exploited 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
metamodelling framework. Eventually, related works are discussed and
conclusions are drawn in Sections VI and VII, respectively.</p>
    </sec>
    <sec id="sec-2">
      <title>II. INSTANTIATION RELATIONSHIPS IN CBSE</title>
      <p>
        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.” [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. Depending on the application domain,
technological platform, and so on, the concept of component
might include disparate characteristics, which are typically
defined in a corresponding component model [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. Therefore,
a CBS is specified by adhering to a well-defined component
model, that prescribes how components, their interconnections,
and their deployment, look like.
      </p>
      <p>For example, let us consider a simple Personal Navigation
Assistant (PNA)1 CBS as depicted in Figure 1: it includes
GPS Receiver, Power Management, Navigation
System, and UI components (represented as boxes with
names). For the purpose of this paper, it is sufficient to know
that the Navigation System retrieves geo-positioning
information from a GPS Receiver and delivers
navigation data to a user interface (UI component). These
interconnections are represented by means of named
relationships linking component ports. More precisely, a triangle
shaped port represents an (provided) output of a certain
component, while a square represents an (required) input.</p>
      <p>Therefore, Navigation System gets Position
information from GPS Receiver and, after computing relevant
Navigation Data, it delivers them to the UI.</p>
      <p>
        1The example has been taken from [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] and readapted for the purpose of
this paper.
      </p>
      <p>
        In general, a component can include nested
subcomponents, referred to as composite components [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. This
is the case of the GPS Receiver, which has a complex
internal structure. As shown in Figure 2, GPS antennas
(Parallel Receiver) have to coordinate their tasks with
Clock and Almanac Store. In particular, satellite
availabilities depend on the current time and are stored in an
almanac.
      </p>
      <p>Eventually, components are attached with one or more
implementations, which can be distinguished by quality
attributes, supported platforms, and so forth. Notably, for the
PNA one might want to prioritise power consumption versus
precision in a mobile phone while doing the opposite for a
rescue device. Figure 3 illustrates two implementation
alternatives for the PNA system: in the one shown on the top
half of the picture, a single Database is shared between the
implementations of Almanac and UI components, whereas
the realisation shown on the bottom half exploits separate
databases.</p>
      <p>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).</p>
      <p>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
instances for the component model, the components defined
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).</p>
      <p>
        A number of instantiation relationships however have to be
checked case-by-case, and this validation step has to be
addressed either by the designer, through appropriate constraints
at modelling level (e.g. by means of OCL [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]), or hardcoded
into the tool. For example, when specifying that the GPS
Receiver composite component in Figure 1 is decomposed
as in Figure 2, the tool should at least verify that input and
output ports of the latter component specification are compatible
with input and output ports of the former composite
component (e.g., matching types). A similar reasoning has to be done
when considering the interconnection between components
and corresponding implementations. More specifically, every
implementation of GPS Receiver should be compatible
with every implementation of Navigation System when
considering the exchange of Position and Output Mode
data (e.g., the implemented setter and getter methods should
match with their types). Regardless whether specified by the
designer or if hardcoded in the tool, keeping consistent and
up-to-date validity checks can be time-consuming and
errorprone, especially when considering complex CBSs. Notably,
if the system needed a more precise tracking of power status,
the Power Management component could be refined as
providing more details. In turn, these refinements should be
propagated at implementation level by choosing appropriate
component implementations for both Power Management
and Navigation System.
component implementations, would all be represented at the
modelling level (i.e., M).
      </p>
      <p>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
conformance (i.e., they cannot impose type instantiation constraints).</p>
      <p>
        Technically, these relationships link concepts pertaining to
different metamodelling layers that however cannot be
represented in the typical 4-layered metamodelling architecture [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
      </p>
      <p>More specifically, the PNA system in Figure 1 is an instance
of a certain component model, and at the same time the
implementations in Figure 3 are instances of PNA components.</p>
      <p>In other words, a certain entity should play the role of a
concept definition (MM level in Figure 4) and instance (M level
in Figure 4) at the same time.</p>
      <p>Multiple metamodelling layers allow to appropriately
represent instantiation hierarchies, as depicted on the right side
of Figure 4: a model can be equally considered as an instance
conforming to the metamodel on the layer above and as
a language definition (i.e. as a metamodel itself), for the
layer below. In this way, it is be possible to define a
component model as a metamodel a certain CBS specification
conforms to, like it happens for CM and ProCom levels. In
turn, the CBS specification would constitute a metamodel
for which (sub-)component instances could be created (see
ProCom and PNASystem levels, respectively). Eventually,
implementations would be represented in a model conforming
to a metamodel including simple component definitions (i.e.,
PNAImpl).</p>
      <p>IV. A DEEP METAMODELLING FORMALISATION FOR CBSE</p>
      <p>This section illustrates the proposed formalisation of CBSE
methodologies into a deep metamodelling framework. The
formalisation proceeds step-by-step, from higher abstraction level
concepts towards more and more concrete instantiations of
III. ON THE NEED OF A DEEP METAMODELLING SOLUTION them. In particular, we leverage a specific component model,</p>
      <p>
        Current modelling techniques are usually based on a 4- namely ProCom [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], to implement the example presented in
layered metamodelling architecture [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]: a software system is Section II. Moreover, we exploit MetaDepth [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] 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 [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. 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
idenwhile the PNA system, its (sub-)components, bindings, and tified through attributes bindingOut, bindingIn,
respectively). A similar reasoning can be done for the Deployment 21 Deployment ProComDeployment(ProComComponent.deployment,
relationship between Component and Platform nodes. 22 } ProComPlatform.in) {}
      </p>
      <p>It is worth noting that, already at this stage it is possible to
put modelling constraints: the noSelfBinding expression
at line 18 prescribes that a component cannot be bound to
itself. Moreover, child multiplicity at line 9 establishes that
a Composite must have at list one nested component.
1 Model ComponentModel@*{
2 ext Node Component@*{
3 bindingIn: Component[*];
4 bindingOut: Component[*];
5 deployment: Platform[0..1];
6 }
7
8 ext Node Composite@*: Component{
9 child: Component[1..*];
10 }
11
12 ext Node Platform{
13 in: Component[*];
14 }
15
16 Edge Binding(Component.bindingOut,Component.bindingIn) {}
17 Edge Deployment(Component.deployment,Platform.in) {}
18 noSelfBinding@* : $Component.allInstances()-&gt;forAll(src,tgt
| Binding(src.bindingOut,tgt.bindingIn) implies src!=
tgt)$
19 }</p>
      <p>Listing 1. Encoding of a generic component model.</p>
      <p>The generic definition given in Listing 1 introduces the
necessary CBSE concepts to create a specific component model.</p>
      <p>Notably, if we would like to define the ProCom component
model, we would need to refine the generic bindings as
ports, since ProCom adopts port-based interfaces. In particular, 12 PPrrooCCoommCPoNmApMoosdietle{ 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 4 }
5
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 name = "UI";</p>
      <p>11 }
correctly binds a pair of ProComComponents through their 12 ProComComponent PM{
in_dataPort and out_dataPort, respectively. Other 13 name = "Power Management";</p>
      <p>14 }
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";}
18 DataConnection(PM.out_dataPort,NS.in_dataPort){name="</p>
      <p>PowerStatus";}
19 DataConnection(UI.out_dataPort,NS.in_dataPort){name="</p>
      <p>UserInputs";}
20 DataConnection(NS.out_dataPort,UI.in_dataPort){name="</p>
      <p>NavigationData";}
21 DataConnection(NS.out_dataPort,UI.in_dataPort){name="</p>
      <p>Tracks";}
1 ComponentModel ProCom{
2 Component ProComComponent{
3 name: String {id};
4 in_dataPort: ProComComponent[*] {bindingIn};
5 out_dataPort: ProComComponent[*] {bindingOut};
6 in_triggerPort: ProComComponent[*] {bindingIn};
7 out_triggerPort: ProComComponent[*] {bindingOut};
8 parent: ProComComposite[0..1];
9 }
10
11 Composite ProComComposite: ProComComponent{
12 child: ProComComponent[1..*];
13 }
14
15 Platform ProComPlatform{
16 }
17
18 Binding DataConnection(ProComComponent.out_dataPort,</p>
      <p>ProComComponent.in_dataPort) { name: String {id}; }
19 Binding TriggerConnection(ProComComponent.out_triggerPort,</p>
      <p>ProComComponent.in_triggerPort) { name: String {id};
}
20 Edge isChildOf(ProComComponent.parent, ProComComposite.</p>
      <p>child) {}</p>
      <p>Once the component model has been defined, it is
possible to model a CBS. In our case, we specify the PNA
system introduced in Section II through ProCom, as shown
in Listing 32. In particular, the Navigation System, Power
Management, and UI components in Figure 1 are
modelled as ProComComponents, while the GPS receiver
as a ProComComposite (see lines 2–13). Moreover,
DataConnections are specified to bind the components
appropriately, and implicitly define data ports for the
corresponding components (lines 16–21).</p>
      <p>Since GPS is defined as a composite, it is possible to define
it as an assembly of sub-components. In this respect, Listing 3
shows the definition of Almanac Store at lines 23–25
according to the description of the GPS receiver depicted
in Figure 2. Furthermore, by choosing the implementation
alternative at the bottom of Figure 3, the almanac is defined as
composite, thus allowing the introduction of a nested database
component together with its quality attributes (lines 29–34).</p>
      <p>The nesting specification is completed with the definition
of isChildOf relationships, as visualised at lines 36–38.</p>
      <p>Eventually, a platform is introduced to allow the deployment
of the PNA system, and component deployments are specified
accordingly (lines 41–47).
22
23 ProComComposite AS{
24 name = "Almanac Store";
25 }
26
27 ...
28
29 ProComComponent DB{
30 name = "DB";
31 encryption: String = "NotDefined";
32 queryLanguage: String = SQL;</p>
      <p>2Due to space limitations, some portions of the specification are omitted.</p>
      <p>The interested reader can download the full specification at http://www.es.
mdh.se/ acicchetti/PNASystem.php .</p>
      <p>An excerpt of the implementation of the PNA system is
specified as shown in Listing 4. In particular, it illustrates the
details for GPS, almanac, and database components (lines 2–
18), together with the ones for UI and its nested database (lines
20–21), consistently to the implementation choice depicted at
the bottom of Figure 3. Moreover, it shows the declaration of
a platform and corresponding deployments at lines 33–34.
1 PNAModel pna{
2 GPS gpsImplementation{
3 name = "GPS1";
4 }
5
6 AS asImplementation{
7 name = "AS1";
8 }
9
10 DB dbImplementation1{
11 name = "DB1";
12 encryption = "none";
13 queryLanguage = "SQL";
14 WCET = 13;
15 }
16
17 innerDBAS(dbImplementation1,asImplementation);
18 innerAlmanac(asImplementation,gpsImplementation);
19
20 UI uiImplementation{
21 name = "UI1";
22 }
23
24 DB dbImplementation2{
25 name = "DB2";
26 encryption = "none";
27 queryLanguage = "SQL";
28 WCET = 22;
29 }
30
31 innerDBUI(dbImplementation2,uiImplementation);
32
33 PNAPlatform platform {}
34 GPSDeployment(gpsImplementation.deployment, platform.in);
35 ...
36 }</p>
      <p>Listing 4. An excerpt of the specification of the PNA system implementation.</p>
    </sec>
    <sec id="sec-3">
      <title>V. DISCUSSION</title>
      <p>At this point it is important to remark several relevant
aspects related to the PNA system specification. From an
instantiation procedure point-of-view, the deep metamodelling
framework introduces correctness by-construction. Notably,
once a system is defined as shown in Listing 3, it will
be only possible to introduce component implementations as
instances of the defined types (as in Listing 4). Even more
important, the implementations have to obey the constraints
set in the specification: innerAlmanac can only connect
an implementation for the almanac with an implementation of
a GPS (see line 18), while GPSDeployment can only be
instantiated with an implementation for the GPS (see line 34).
The check of such constraints comes “for free” by the system
specification itself, which acts as a metamodel for the system
implementation; on the contrary, the 4-layered metamodelling
techniques would require additional coding and/or correctness
rule definitions to check relationships consistency.</p>
      <p>Another relevant aspect to notice is the ease of
identification of type instances, which allows to set properties by
component implementation, and link each of them to the
appropriate component types. In particular, the two different
implementations for the database are equipped with different
quality attributes and can be included into different composites
accordingly. Moreover, the deep metamodelling framework
naturally supports the extension of attributes, making it
possible to provide additional implementation details for component
implementations (e.g. cost, size, and so forth) depending on
target platform sensitiveness.</p>
      <p>From a higher level of abstraction perspective, the deep
metamodelling approach enables the definition of advanced
modelling constraints. Notably, the component model might
define modelling patterns/styles that later on will have to be
preserved by system specifications in order to be successfully
validated. This could include the number of components,
the kind/number of allowed bindings, and so on. It is
important to notice, once again, that similar constraints could
be implemented also in the usual 4-layered metamodelling
architectures. However, such a need would require implicit
checks that in the long run can become time-consuming and
error-prone.</p>
      <p>
        As a drawback, the hierarchical arrangement of CBSs
specification over multiple metamodelling levels could result
as less intuitive and become less usable when dealing with
complex systems. In this respect, it is very important to notice
that the formalisation is intended to be transparent to the
CBS designer, and should be considered as the underlying
infrastructure over which a CBS tool would be implemented.
MetaDepth is a text-based deep metamodelling environment,
and as a consequence this work adopts the same approach.
Nonetheless, other existing deep metamodelling tools have
already demonstrated the implementability of diagrammatic
layers over a base deep metamodelling technology (notably
Melanee [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] and the DPF [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]).
      </p>
      <p>
        The current description of this formalisation in inherently
top-down, whereas an ideal CBSE approach would promote
a bottom-up development, where useful pre-existing
components are identified and picked-up from a repository [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. In
this respect, the component model can be still described as
including a repository, and a valid CBS as being a collection of
component repository elements. In this case, it would be up to
the CBSE tool to create an appropriate instantiation hierarchy
based on the selected components.
      </p>
      <p>VI. RELATED WORKS</p>
      <p>
        A preliminary choice in adopting a modelling language is
deciding whether opting for a general purpose or a
domainspecific language [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. In general, the former solutions have
embedded extension mechanisms (like the prototyping
mechanisms for the UML [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]), while the latter demand proper
language extensions through metamodelling activities. With
respect to this paper, the former mechanisms provide more
expressiveness through model instances (by inheritance), while
the latter ones act on the metamodel to provide appropriate
refinements. In both cases, the extensions are limited to the
4-layered metamodelling architecture that does not allow to
introduce multiple instantiation levels.
      </p>
      <p>
        The general need for better addressing multiple
instantiation levels has been recognised in the last decade and
corresponding solutions have been identified under the name
of multilevel (or deep) modelling [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ], [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]. In
some cases, multilevel modelling techniques have been even
used to implement domain-specific component-based systems,
notably robots [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] and cloud services [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]. Nonetheless, to
the best of our knowledge this is the first work that proposes a
general formalisation of CBSE concepts, and in particular of
component models, with the aim of enhancing current CBSE
techniques.
      </p>
      <p>
        The problem of managing multiple instantiation levels in
CBSE has been already tackled by several works, as [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ],
[
        <xref ref-type="bibr" rid="ref21">21</xref>
        ]. In general these works adopt a 4-layered metamodelling
solution, that is, they typically exploit inheritance or other
recursive relationships to provide support for
containment/refinement modelling [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. Therefore, they leave open the
instantiation problems described throughout the paper.
      </p>
    </sec>
    <sec id="sec-4">
      <title>VII. CONCLUSION AND FUTURE WORKS</title>
      <p>
        This paper presents the first steps towards the
formalisation of CBSE concepts in a deep metamodelling framework.
Component-based systems have an intrinsic hierarchical
structure and frequently exploit the “type-instance” pattern [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
These characteristics have been identified as problematic to
be implemented in the usual 4-layered metamodelling
architecture and require better support. In this respect, the
formalisation illustrated in this work shows promising improvements
and gains with regard to both expressiveness and correctness
checking.
      </p>
      <p>
        Future investigation directions will include a more extensive
experimentation of deep metamodelling techniques, especially
focusing on the adoption of different component models, in
order to verify the malleability of deep metamodelling in
component adaptation/reconfiguration scenarios [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. Moreover,
the formalisation will have to be embedded in a CBSE tool to
better evaluate the usability/scalability aspects related to both
modelling and analysis tasks.
      </p>
    </sec>
    <sec id="sec-5">
      <title>ACKNOWLEDGEMENTS The author would like to thank Jan Carlson and Severine Sentilles for the interesting preliminary discussions around the topic covered in this paper.</title>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>I. Crnkovic</surname>
          </string-name>
          , “
          <article-title>Component-Based Software Engineering for Embedded Systems</article-title>
          ,” in LMO,
          <year>2006</year>
          , p.
          <fpage>13</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>I.</given-names>
            <surname>Crnkovic</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Larsson</surname>
          </string-name>
          ,
          <source>Building Reliable Component-Based Software Systems. Artech House</source>
          , Inc.,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>J. D.</given-names>
            <surname>Lara</surname>
          </string-name>
          , E. Guerra, and
          <string-name>
            <given-names>J. S.</given-names>
            <surname>Cuadrado</surname>
          </string-name>
          , “
          <article-title>When and how to use multilevel modelling</article-title>
          ,
          <source>” ACM Trans. Softw. Eng. Methodol.</source>
          , vol.
          <volume>24</volume>
          , no.
          <issue>2</issue>
          , pp.
          <volume>12</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>12</lpage>
          :
          <fpage>46</fpage>
          ,
          <string-name>
            <surname>Dec</surname>
          </string-name>
          .
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>J.</given-names>
            <surname>Be</surname>
          </string-name>
          ´zivin, “
          <source>On the Unification Power of Models,” Software and System Modeling</source>
          , vol.
          <volume>4</volume>
          , pp.
          <fpage>171</fpage>
          -
          <lpage>188</lpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>C.</given-names>
            <surname>Szyperski</surname>
          </string-name>
          , Component Software: Beyond
          <string-name>
            <surname>Object-Oriented</surname>
            <given-names>Programming</given-names>
          </string-name>
          , 2nd ed. Boston, MA, USA:
          <string-name>
            <surname>Addison-Wesley Longman</surname>
          </string-name>
          Publishing Co., Inc.,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>I.</given-names>
            <surname>Crnkovic</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Sentilles</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Aneta</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M. R. V.</given-names>
            <surname>Chaudron</surname>
          </string-name>
          , “
          <article-title>A classification framework for software component models</article-title>
          ,
          <source>” IEEE Trans. Softw</source>
          . Eng., vol.
          <volume>37</volume>
          , no.
          <issue>5</issue>
          , pp.
          <fpage>593</fpage>
          -
          <lpage>615</lpage>
          , Sep.
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>T.</given-names>
            <surname>Le</surname>
          </string-name>
          <article-title>´veˆque and S</article-title>
          . Sentilles, “
          <article-title>Refining extra-functional property values in hierarchical component models</article-title>
          ,”
          <source>in Proceedings of the 14th International ACM Sigsoft Symposium on Component Based Software Engineering</source>
          , ser.
          <source>CBSE '11</source>
          . New York, NY, USA: ACM,
          <year>2011</year>
          , pp.
          <fpage>83</fpage>
          -
          <lpage>92</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>Object</given-names>
            <surname>Management Group</surname>
          </string-name>
          (OMG), http://www.omg.org/spec/OCL/2.0/ PDF.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>S.</given-names>
            <surname>Sentilles</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Vulgarakis</surname>
          </string-name>
          , T. Buresˇ, J. Carlson,
          <string-name>
            <surname>and I.</surname>
          </string-name>
          <article-title>Crnkovic´, “A Component Model for Control-Intensive Distributed Embedded Systems</article-title>
          ,” in
          <source>Proceedings of CBSE</source>
          . Springer Berlin,
          <year>2008</year>
          , pp.
          <fpage>310</fpage>
          -
          <lpage>317</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>J. de Lara</surname>
          </string-name>
          and E. Guerra, “
          <article-title>Deep meta-modelling with metadepth</article-title>
          ,
          <source>” in Proceedings of the 48th International Conference on Objects, Models</source>
          , Components, Patterns, ser.
          <source>TOOLS'10</source>
          . Berlin, Heidelberg: SpringerVerlag,
          <year>2010</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>20</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>C.</given-names>
            <surname>Atkinson</surname>
          </string-name>
          and
          <string-name>
            <given-names>R.</given-names>
            <surname>Gerbig</surname>
          </string-name>
          , “
          <article-title>Melanie: Multi-level modeling and ontology engineering environment,” in Proceedings of the 2Nd International Master Class on Model-Driven Engineering: Modeling Wizards, ser</article-title>
          .
          <source>MW '12</source>
          . New York, NY, USA: ACM,
          <year>2012</year>
          , pp.
          <volume>7</volume>
          :
          <fpage>1</fpage>
          -
          <issue>7</issue>
          :
          <fpage>2</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Lamo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Mantz</surname>
          </string-name>
          ,
          <string-name>
            <surname>W.</surname>
          </string-name>
          <article-title>MacCaull, and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Rutle</surname>
          </string-name>
          , “
          <article-title>Dpf workbench: A diagrammatic multi-layer domain specific (meta-)modelling environment</article-title>
          ,” in
          <source>Computer and Information Science</source>
          <year>2012</year>
          ,
          <article-title>ser</article-title>
          .
          <source>Studies in Computational Intelligence</source>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Lee</surname>
          </string-name>
          , Ed. Springer Berlin Heidelberg,
          <year>2012</year>
          , vol.
          <volume>429</volume>
          , pp.
          <fpage>37</fpage>
          -
          <lpage>52</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>S.</given-names>
            <surname>Becker</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Koziolek</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Reussner</surname>
          </string-name>
          , “
          <article-title>The palladio component model for model-driven performance prediction,”</article-title>
          <string-name>
            <given-names>J.</given-names>
            <surname>Syst</surname>
          </string-name>
          . Softw., vol.
          <volume>82</volume>
          , no.
          <issue>1</issue>
          , pp.
          <fpage>3</fpage>
          -
          <lpage>22</lpage>
          , Jan.
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>T.</given-names>
            <surname>Kosar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Oliveira</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Mernik</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. M.</given-names>
            <surname>Pereira Varanda</surname>
          </string-name>
          , M. Cˇ repinsˇek, D. Da Cruz, and
          <string-name>
            <given-names>P.</given-names>
            <surname>Henriques</surname>
          </string-name>
          <string-name>
            <surname>Rangel</surname>
          </string-name>
          , “
          <article-title>Comparing general-purpose and domain-specific languages: An empirical study</article-title>
          ,
          <source>” Computer Science and Information Systems</source>
          , vol.
          <volume>7</volume>
          , pp.
          <fpage>247</fpage>
          -
          <lpage>264</lpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <surname>Object</surname>
            <given-names>Management Group</given-names>
          </string-name>
          (OMG),
          <source>“UML Superstructure Specification V2</source>
          .3,” http://www.omg.org/spec/UML/2.3/Superstructure/PDF/,
          <year>2011</year>
          , [Online. Last access:
          <volume>11</volume>
          /04/2012].
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>C.</given-names>
            <surname>Atkinson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Gutheil</surname>
          </string-name>
          , and
          <string-name>
            <given-names>B.</given-names>
            <surname>Kennel</surname>
          </string-name>
          , “
          <article-title>A flexible infrastructure for multilevel language engineering,”</article-title>
          <source>IEEE Trans. Softw</source>
          . Eng., vol.
          <volume>35</volume>
          , no.
          <issue>6</issue>
          , pp.
          <fpage>742</fpage>
          -
          <lpage>755</lpage>
          , Nov.
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>B.</given-names>
            <surname>Neumayr</surname>
          </string-name>
          ,
          <string-name>
            <surname>K.</surname>
          </string-name>
          <article-title>Gru¨n, and M. Schrefl, “Multi-level domain modeling with m-objects and m-relationships,”</article-title>
          <source>in Proceedings of the Sixth AsiaPacific Conference on Conceptual Modeling -</source>
          Volume
          <volume>96</volume>
          ,
          <article-title>ser</article-title>
          .
          <source>APCCM '09</source>
          .
          <string-name>
            <surname>Darlinghurst</surname>
          </string-name>
          , Australia, Australia: Australian Computer Society, Inc.,
          <year>2009</year>
          , pp.
          <fpage>107</fpage>
          -
          <lpage>116</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>C.</given-names>
            <surname>Atkinson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Gerbig</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Markert</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Zrianina</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Egurnov</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Kajzar</surname>
          </string-name>
          , “
          <article-title>Towards a deep, domain specific modeling framework for robot applications</article-title>
          ,”
          <source>in Proceedings of the First Workshop on Model-Driven Robot Software Engineering (MORSE)</source>
          .
          <source>CEUR-WS</source>
          ,
          <year>2014</year>
          . [Online]. Available: http://ceur-ws.
          <source>org/</source>
          Vol-
          <volume>1319</volume>
          /
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>A.</given-names>
            <surname>Rossini</surname>
          </string-name>
          , J. de Lara, E. Guerra, and
          <string-name>
            <given-names>N.</given-names>
            <surname>Nikolov</surname>
          </string-name>
          , “
          <article-title>A comparison of twolevel and multi-level modelling for cloud-based applications,” in Modelling Foundations and Applications, ser</article-title>
          . Lecture Notes in Computer Science, G. Taentzer and
          <string-name>
            <given-names>F.</given-names>
            <surname>Bordeleau</surname>
          </string-name>
          , Eds. Springer International Publishing,
          <year>2015</year>
          , vol.
          <volume>9153</volume>
          , pp.
          <fpage>18</fpage>
          -
          <lpage>32</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>J.</given-names>
            <surname>Odell</surname>
          </string-name>
          , “Power types,
          <source>” JOOP</source>
          , vol.
          <volume>7</volume>
          , no.
          <issue>2</issue>
          , pp.
          <fpage>8</fpage>
          -
          <lpage>12</lpage>
          ,
          <year>1994</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>R. C.</given-names>
            <surname>Goldstein</surname>
          </string-name>
          and
          <string-name>
            <given-names>V. C.</given-names>
            <surname>Storey</surname>
          </string-name>
          , “Materialization,”
          <source>IEEE Trans. on Knowl. and Data Eng.</source>
          , vol.
          <volume>6</volume>
          , no.
          <issue>5</issue>
          , pp.
          <fpage>835</fpage>
          -
          <lpage>842</lpage>
          , Oct.
          <year>1994</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>