<!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>Challenges for Model-Integrating Components</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Mahdi Derakhshanmanesh</string-name>
          <email>manesh@uni-koblenz.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ju¨ rgen Ebert</string-name>
          <email>ebert@uni-koblenz.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Marvin Grieger</string-name>
          <email>marvin.grieger@uni-paderborn.de</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>University of Koblenz-Landau, Institute for Software Technology</institution>
          ,
          <addr-line>Koblenz</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>University of Paderborn, Department of Computer Science</institution>
          ,
          <addr-line>Paderborn</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>-Model-Integrating Software Components (MoCos) use models at runtime as first class entities within components to build flexible and adaptive software systems. Building such systems requires to design and implement the required domainspecific modeling languages. Insufficient design and realization of modeling languages raises the risk that they may not be optimized for their later use. Although various works on the use of models at runtime exist, they do not address the engineering of modeling languages to be used in software components at runtime. In this paper, we introduce the idea of Comprehensive Language Models (CLMs) which explicitly considers modeling language engineering as a part of the development of component based software systems. This is achieved by extending the modeling language specification, e.g., by a set of interfaces for models which are used for accessing models at runtime. We illustrate an initial solution concept along an insurance sales app case study on Android based on which we derive a set of key challenges for the community.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>I. INTRODUCTION</title>
      <p>
        Models are no longer just used to design software but can
become an integrated part of it, i.e., (executable) models and
code coexist at runtime with equal rights. In previous works
[
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], we proposed Model-Integrating Software Components
(MoCos) as a concept for the design and development of such
model-integrating software systems. Software engineers can
choose to realize some parts of a system programmatically
in code, while other parts are kept as models. No code is
generated from the models but they are used at runtime. This
concept yields flexible well-performing software that can be
easily and systematically monitored, analyzed and modified.
      </p>
      <p>The MoCo-approach combines models described using
arbitrary Domain-Specific Modeling Languages (DSMLs) and
embeds them within software components following a tailorable
component design pattern that guides software engineers:
the MoCo Template. It is depicted in Figure 1 and briefly
introduced, next.</p>
      <p>Each MoCo can have ports (PFunction, PManage) that
are wired to the internal implementation, which is either
encoded by a programming language (MoCoCode) or by a
modeling language (MoCoModel). Conceptually, there may
be sets of languages used on either side. In practice, a base
technology such as the Java Virtual Machine (JVM) and its
byte code format acts as a unifier. Programming languages
«module»
MoCoCode
«module»</p>
      <p>MoCoModel
«component»</p>
      <p>MoCo
IModelState</p>
      <p>IModelState
ICodeState
IInterpret
IAction
«l»euodm itraeodM ICIInotdeerpSrteatte</p>
      <p>IAction
«delegate»
«delegate»
are used on the code side, e.g., Java, and different –
potentially integrated – DSMLs are used on the model side. Both
constituents of a MoCo are encapsulated using interfaces.
Optionally, a smart Mediator can manage any redirection
from and to the MoCo’s ports as well as communication
between the model and code parts.</p>
      <p>
        The expected advantages of the MoCo approach are: (i)
enhanced flexibility because the system and its individual
components can be observed using model queries, can be modified by
adapting models using an editor or model transformations and
can be executed using model interpreters [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], (ii) support of
separation of concerns because each model targets a concern,
(iii) understandability and maintainability because models are
assumed to be easier to understand and easier to handle
than code, (iv) self-documentation because a well designed
modeling language is assumed to be a documentation and
(v) no synchronization problem because there is no redundancy
between model and code unless it is introduced willfully, e.g.,
to realize reflection.
      </p>
      <sec id="sec-1-1">
        <title>B. Research Problem</title>
        <p>
          An essential difference between component-based and
model-integrating software is the use of various models at
runtime (not just reflective models@run.time [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ]).
Therefore, developing model-integrating software systems includes
choosing existing modeling languages or designing and
implementing adequate DSMLs. In fact, it must be possible to
introduce new DSMLs easily and quickly to realize certain
parts of a system as a model. In turn, the use of models of a
given DSML requires support for the following core activities:
(i) building models, e.g., using an application programming
interface or an editor, (ii) binding models into components
as building blocks, e.g., following the MoCo Template and
(iii) using models, e.g., querying, transforming and interpreting
them. These activities can only be supported if there is a
powerful technological space [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ] for modeling languages and
models, which provides all relevant capabilities needed. In the
context of MoCos, such a technological space needs to work
together with the respective component execution platform [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ]
or even be part of it.
        </p>
        <p>
          There are examples for such technological spaces like the
Eclipse Modeling Framework (EMF) [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ] or JGraLab [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] that
deliver acceptable support for language design, especially for
syntax and constraints. Additionally, many research works use
models at runtime in various ways and this specific topic is
still a very relevant research area [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ].
        </p>
        <p>While different approaches and solutions for modeling and
models at runtime already exist in isolation, we observe that
they do not comprehensively address the required capabilities
for designing new modeling languages that shall be an
integrated part of a software system. Moreover, the challenges
associated with designing DSMLs that support the symbiosis
of models at runtime and code within software components
have to be inspected.</p>
        <p>This paper tackles the following research problems and their
associated challenges:
(Q1) How to specify modeling languages comprehensively for
generating adequate runtime support for them?
(Q2) What are challenges for modeling languages in the
context of MoCos?</p>
      </sec>
      <sec id="sec-1-2">
        <title>C. Contributions</title>
        <p>In answering Q1, we propose that the introduction of a new</p>
      </sec>
      <sec id="sec-1-3">
        <title>DSML requires a Comprehensive Language Model (CLM),</title>
        <p>
          i.e., a specification of a modeling language to such an extent
that all required activities on models are supported. We claim
that each CLM should at least specify the following parts of
DSML: (i) syntax (metamodel and constraints), (ii) semantics
(dynamic state, constraints, state transitions) and (iii)
pragmatics (at least facades [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]). We assume that a realization of
a modeling language Li will be derived from a CLMi.
        </p>
        <p>
          In answering Q2, we provide a description of selected
challenges related to the seamless integration of models and
code in software components, based on the Insurance Sales
App (ISA) case study [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ]. All in all, we aim to raise awareness
for this topic and to initiate a fruitful discussion.
        </p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>II. RUNNING EXAMPLE: INSURANCE SALES APP</title>
      <p>
        The Insurance Sales App (ISA) is a prototypical application
for Google’s Android mobile operating system. It has been
developed to evaluate the feasibility of MoCos [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. It
also serves as a running example throughout the rest of this
paper. From the user’s perspective, ISA’s primary purpose
is to support field staff in the insurance domain with their
daily sales tasks. The system is built with MoCos, thus it
      </p>
      <sec id="sec-2-1">
        <title>LComputation</title>
        <p>integrate
use
«moco»
IsaCarProduct1
«moco»</p>
        <p>IsaConfig
use</p>
      </sec>
      <sec id="sec-2-2">
        <title>LFeatureTrees LGUI</title>
        <p>use
Model-Integrating «moco»</p>
        <p>Component IsaCarProduct1</p>
        <p>integrate
Modeling
Language</p>
        <p>LComputation
use
is dynamically extensible at the component level and single
components’ internals can be also monitored and modified
at runtime. For example, insurance fee formulas are adapted,
based on the current physical location of a customer. A
screenshot of ISA is shown in Figure 2 (left), illustrating one
of the views of the Graphical User Interface (GUI) specific to
the car insurance product.</p>
        <p>ISA’s architecture consists of a mix of pure Java libraries
and MoCos, i.e., a certain part of the running software is
encoded in models that are used at runtime, e.g., by querying and
transforming them. An excerpt is depicted in Figure 2 (right).
The specific modeling languages used represent (i) feature
trees (Lf ) for architectural reconfiguration, (ii) computation
(Lc) for insurance fee formulas and (iii) graphical user
interfaces (Lg) for data presentation and user input capturing.</p>
        <p>
          Regarding implementation, all MoCos conform to the
structure proposed by the MoCo Template. For components, we
used OSGi’s [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ] dynamic component technology, code was
written in Java and models were developed in JGraLab [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ].
The base execution platform is the Java Virtual Machine.
        </p>
        <sec id="sec-2-2-1">
          <title>A. Comprehensive Language Model for Lc</title>
          <p>As a clarification for what exactly a Comprehensive
Language Model (CLM) is, we give an example in the context of
the ISA case study. More concretely, we describe the CLM
for Lc in the following and sketch how it relates to Lg. This
background knowledge is required to understand some of the
challenges described later in this paper.</p>
          <p>CLMc, i.e., the CLM that fully specifies the modeling
language Lc, is depicted in Figure 3. It consists of three major
parts: syntax, semantics and pragmatics.</p>
        </sec>
        <sec id="sec-2-2-2">
          <title>1) Syntax Specification: Lc’s syntax is specified using a</title>
          <p>UML-style metamodel and mostly represents the static
structure. The language represents programs (Prog) consisting
of statements (Stmt). There are special statements such as
conditional (If), an assignment (Ass) and further specific
then
else
statements for loading (Load) and saving (Store)
variables (Var). Variables and constants (Const) are expressions
(Expr). Expressions have a value (val) as well as a left and
right side of a specified binary operator (Bin).</p>
        </sec>
        <sec id="sec-2-2-3">
          <title>2) Semantics Specification: Lc’s semantics is specified</title>
          <p>
            (i) by extending the metamodel with information about the
dynamic state and (ii) by adding a description of state
transitions by following Plotkin’s Structured Operational Semantics
(SOS) approach [
            <xref ref-type="bibr" rid="ref12">12</xref>
            ]. This was an ad-hoc, pragmatic choice.
          </p>
          <p>
            Like in Dynamic Metamodeling [
            <xref ref-type="bibr" rid="ref13">13</xref>
            ], Lc’s metamodel
elements depicted in Figure 3 also cover the dynamic state of its
set of conforming models. The dynamic state is part of the
semantics specification of Lc which is an essential part of any
CLM. The attribute val belonging to the dynamic state can
be changed during model execution.
          </p>
          <p>In terms of encoding the allowed state transitions in the
dynamic state, we chose Plotkin’s approach as a
technologyindependent precise and comprehensible formalism. For
example, as shown in Figure 3, the semantics of a Stmt in
Lc is that a given variable’s value is replaced with another
(potentially the same) value.</p>
          <p>3) Pragmatics Specification: Lc’s pragmatics is specified
using a facade, e.g., using a notation similar to Java classes
as illustrated in Figure 3. This approach facilitates the use of
models similar to code objects. Moreover, the specification of
available services on models of a given language, here Lc,
supports communication between modeling language designers,
software architects and software engineers. We use the term
services on models to denote capabilities and functionalities
specific to a modeling language that facilitate the use of
models. These services are realized as facades.</p>
          <p>For example, the ComputationModel facade allows to
load a model from a file, to get and set a value for a variable
and, importantly, to evaluate a model (e.g., representing an
insurance fee formula in ISA) by starting model execution at
a certain Prog element.</p>
        </sec>
        <sec id="sec-2-2-4">
          <title>B. Integration of Lc and Lg</title>
          <p>Besides the use of single modeling languages, it is
particularly interesting when multiple languages are used together.1 In
the context of ISA, each insurance product MoCo carries the
insurance fee formula (an instance of Lc) and its
corresponding representation of the graphical user interface (an instance
of Lg). The two modeling languages had to be integrated.
For this purpose, additional associations (loadValFrom and
storeValIn roles) were introduceAd Nanodte tohne Ssepmecainfitcicasti,oVnersion 0.1
of state transitions in CLMc was extended to encode the
semantics of loading values from the GUI (Load) Jau¨rngedn Esbtoerrting
values from a formula in the GUI’s TextView (Load). In
[Stmt] : (Var !Double) ! (Var ! Double)
Figure 4, the corresponding i n8tae:gArsastio[na](vs)i=a sadda.iletfitv7!e ae.rxigthet.nvasl}ion
of two CLMs is given. 8 i : If [i](s) = if isT{rue(i.cond.val) then [i.then](s) else [i.els
CLMGUI</p>
          <p>Syntax</p>
          <p>loadValFrom</p>
          <p>Textview
value : String
storeValIn</p>
          <p>Load
Store
[Expr] : Expr ! Double
8 c : Const [c] = c.val
8 v : Var [v] = v.val
CLMComputati8obn: Bin [b] = cas’+e’b:.bop.leoftf.val + b.right.val;</p>
          <p>Syntax Sem’’-*’’:a:bnb..tlleiecfftts..vvaall ⇤ bb..rriigghhtt..vvaall;;
’/’: b.left.val/b.right.val;
end
8 l : Load
[l](sc,sg) : (sc {l.var !l.loadValFrom.value}, sg)
8 st : Store
[st](sc,sg) : (sc, sg {st.storeValIn !st.var.val})</p>
          <p>CLMs support the specification and design of modeling
languages to be used within model-integrating software
components as described. However, there are still many open
challenges that need to be tackled.</p>
          <p>1The GEMOC initiative (http://gemoc.org/) provides related work on the
coordinated use of heterogeneous modeling languages.</p>
          <p>Building on the use of CLMs, we elaborate on an initial list
of challenges for modeling languages in the context of MoCos
using the ISA running example. For readability, we formulate
each challenge as a question and cluster them according to
(i) syntax, (ii) semantics and (iii) pragmatics as summarized
in Table I. A detailed description follows subsequently.</p>
        </sec>
        <sec id="sec-2-2-5">
          <title>A. Syntax Challenges</title>
        </sec>
        <sec id="sec-2-2-6">
          <title>1) Modularization of Metamodels: Software architects fol</title>
          <p>low a divide-and-conquer approach and split larger systems
in smaller pieces, e.g., into software components and
connectors. A standardized approach for the modularization of
modeling languages is missing, though. A main part of any
DSML’s definition is the specification of its syntax with a
metamodel. While package-structures and import mechanisms
are available, depending on the concrete modeling technology,
the modeling language designer cannot orchestrate modeling
languages and their metamodels in a black-box fashion (C1).
In ISA for example, feature models (Lf ) are managed and used
by a MoCo called IsaConfig and insurance fees models
(Lc) as well as GUI models (Lg) are managed and used by
insurance products like the IsaCarProduct1 MoCo.</p>
          <p>2) Integration of Metamodels: Integration means that at
least two existing modeling languages shall be merged. In
contrast to distributed, potentially not connected models
conforming to different metamodels, this approach conveniently
enables full access, e.g., via model queries, to the conforming
models of this integrated modeling language (C2). In ISA
for example, insurance fee models and GUI models are
used tightly together within the IsaCarProduct1 MoCo,
e.g., values from computed fees are directly associated with
elements of the user interface.</p>
          <p>3) Links between Different Models: In a MoCo-based
software system, the architectural decomposition based on
functionality dictates a clean separation of concerns between
the various MoCos. As in any other component-based software
systems, MoCos are connected with each other via provided
and required interfaces. While separation of concerns has
many well-known advantages, it has one major disadvantage
in the context of MoCos: the flexibility that comes with
the ability to query and transform a single (possibly large)
interconnected model can no longer be leveraged if single
models are distributed and encapsulated across individual
MoCos (C3). There are no associations between them on the
model-level. The ability to establish links and to access these
distributed models is especially helpful to debug MoCos and
their interdependencies. In ISA for example, it is interesting
to know the available insurance fee formulas (contained in
IsaCarProduct1) for a specific feature configuration
(contained in IsaConfig).</p>
          <p>4) Context-Dependent Views on Models: Modeling
languages and their metamodels are only partly used, i.e., the
available expressiveness is not required and a restricted
metamodel will be sufficient. Moreover, only some data may be
relevant for a certain use case and MoCo. The ability to
define an adequate and context-specific view on sets of models
(C4) helps to reduce complexity and supports ease of use of
DSMLs. In fact, a view can be seen as a specification for the
model parts that can be used by another MoCo. In ISA for
example, an adaptation manager MoCo may need to control
certain location-dependent variables of the insurance fees and
their associated GUI elements. These parts could be encoded
by a special adaptation view.</p>
          <p>B. Semantics Challenges</p>
        </sec>
        <sec id="sec-2-2-7">
          <title>1) Specification of Model Semantics: The models in MoCos</title>
          <p>
            are not only used as pure data (similar to databases) but
some are also executed. Therefore, the semantics of modeling
languages needs to be precisely specified (C5). There is a
multitude of options available and one can choose between a
spectrum of rather informal and very formal approaches [
            <xref ref-type="bibr" rid="ref14">14</xref>
            ].
It is important to choose a formalism that is both sufficiently
formal but also adequately practical for software engineers
and modeling language designers. In ISA for example, all
three modeling languages are executable: Lf is interpreted for
architectural reconfiguration, Lc is interpreted to compute an
insurance fee and Lg is interpreted to create and synchronize
an Android-specific graphical user interface for each insurance
product represented by a single MoCo.
          </p>
          <p>2) Realization of Model Execution: Given a specification of
semantics for a modeling language, this specification needs to
be implemented (C6) and related decisions need to be taken
carefully. In general, there has been no commonly accepted
proposal for the realization of model semantics/model
interpreters, yet. Besides the development of stand-alone
interpreters and model interpreters embedded into the metamodel,
code generation is another option. Each approach has its
advantages and disadvantages, e.g., with regards to performance,
complexity and reusability. In ISA for example, there is at least
one model interpreter for each modeling language.</p>
          <p>One sub-challenge that is critical in the case of interpretation
is the way to deal with the parts of a model that may change
during interpretation (C6.1). We refer to them as the model’s
dynamic state, in contrast to the rest of the model, the static
structure. While these parts can be regarded as the execution
context of a stand-alone model interpreter, it can be also seen
as a part of the actual model. In ISA for example, models
of the kind of Lf , i.e., feature configurations, are used for
runtime reconfiguration. This implies that the state of a feature
(selected or not selected) varies. This information can be
stored separately by the model interpreter (e.g., technically as a
hashmap) or it can be a Boolean attribute in the Lf metamodel.</p>
          <p>A second sub-challenge is related to the reuse of model
interpreters (C6.2). In this specific case, one needs to distinguish
between (i) reuse of model interpreter implementations and
(ii) their instances at runtime. Depending on the chosen type of
implementation, the reuse potential varies. In ISA for example,
the same feature model can be interpreted by different model
interpreters concurrently if the dynamic state, i.e., the feature
selection flag, is stored by the model interpreters themselves.
On the contrary, if the dynamic state is part of each model
but needs to be different per semantics, then the model needs
to be duplicated or an embedded model interpreter needs to
instantiate the dynamic state multiple times.</p>
          <p>A third sub-challenge is related to the interdependencies
of semantics and, hence, the interplay of model interpreters
(C6.3). Ideally, each modeling language comes with its own
set of model interpreters. In case that two modeling languages
need to be used together, it is required that not only their
metamodels are integrated (see C2) but it is also necessary
that their semantics fit. In the simplest form, one model
interpreter invokes another model interpreter, which asks for a
more sophisticated management of dependencies – especially
if these shall be dynamic. In ISA for example, each insurance
product MoCo encapsulates an insurance fee formula model
and a GUI model. Given that their metamodels were previously
integrated, the model interpreter of Lc (i) may access
metaclasses of Lg and operate on them (e.g., store a computed
insurance fee in a text field), or (ii) may invoke the model
interpreter of Lg to perform the task.</p>
          <p>3) Variants of Semantics: We experienced that while for
some modeling language (especially general-purpose
modeling languages) a single semantics specification is sufficient,
in the case of DSMLs, multiple semantics for the same
modeling language need to be supported (C7). Therefore, in
this context, a modeling language becomes a software product
line. Reuse is critical to deal with complexity and to avoid
redundancy and duplication. In ISA for example, there may
be behavioral semantics (dynamic reconfiguration), constraint
checking semantics and visualization semantics for Lf .</p>
        </sec>
        <sec id="sec-2-2-8">
          <title>C. Pragmatics Challenges</title>
        </sec>
        <sec id="sec-2-2-9">
          <title>1) Data and Control Flow between Model and Code: In</title>
          <p>
            MoCos, models and code coexist and realize the functionality
of the component together. It is important to be able to
invoke models from code and vice versa (C8). The MoCo
Template already defines a pattern with its Mediator and
sketched interfaces. We deem it important to further
standardize these interfaces and to provide realization guidelines,
e.g., in the scope of our reference implementation (MoCo
API) [
            <xref ref-type="bibr" rid="ref1">1</xref>
            ]. The design and development of language-specific
facades encapsulating required services as a part of a CLM
needs to be researched. In ISA for example, there is code
for sending an email report in the MoCoCode module of
the IsaCarProduct1 MoCo that receives data from the
MoCoModel module (insurance fee model, GUI model).
          </p>
          <p>2) Services on Models: When talking about services on
models, two categories need to be distinguished: (i) foreseen
services that are provided by the modeling language designer
and (ii) unforeseen services that are specific to a certain
user of a modeling language (e.g., a system or a
component). Moreover, modeling languages – especially DSMLs
as primarily used in MoCos – need to be compact and
adequately expressive. A strategy and a set of mechanisms is
required to specify context-specific services, realize them and
to manage the resulting variability (C9). In ISA for example,
different insurance products, i.e., different MoCos, require
similar special services, like email reporting. This particular
service was not initially foreseen when developing Lc and Lg.
Therefore, it was first developed as a part of the respective
MoCoCode module, resulting in clones across the different
insurance product MoCos. To solve such issues, often required
and DSML-specific services need to be offered by a facade as
a part of the CLM.</p>
        </sec>
        <sec id="sec-2-2-10">
          <title>3) Access Control for Models: Given the power of models</title>
          <p>in the MoCo concept, any kind of analysis or manipulation
needs to be controlled (C10). Models need to be accessible
only in predefined authorized, i.e., safe and secure, ways. It
needs to be decided whether models can be accessed using the
MoCos’ interfaces only or if there is a more powerful role that
can inspect everything, i.e., all models within all MoCos across
the system architecture. Indeed, there is a tradeoff between
flexibility and encapsulation. In ISA for example, obviously
insurance fee formulas should not be editable by anyone, even
though this is technically possible at any time using model
transformations. An adaptation manager MoCo that adjusts the
fee formulas according to the geolocation of the sales person
and potential customer requires exactly this ability, though.</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>IV. RELATED WORK</title>
      <p>
        While there are works that deal with individual challenges
described in this paper, we observe that a comprehensive
solution approach is missing. The work on Model-Integrated
Computing, initiated by Sztipanovits and Karsai [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ], targets
similar issues but lacks the runtime aspect. Due to limited
space, we can only hint at an excerpt of related work here.
      </p>
      <p>
        Regarding the topic of syntax, Heidenreich et al. [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]
present a generic approach for the composition of models that
is based on invasive software composition and the Reuseware
Composition Framework. Krahn et al. [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] use an extended
grammar format that supports language inheritance and
embedding for the modular development of textual
domainspecific languages. Bae et al. [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] propose to modularize a
large metamodel into a set of small metamodels and present
their idea of model slicing along the UML. In contrast to
modularization approaches, Atkinson et al. propose a
SingleUnderlying-Model (SUM) [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] that serves all users.
      </p>
      <p>
        Regarding the topic of semantics, Plotkin [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] proposes a
structural approach to operational semantics. Engels et al. [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]
describe dynamic metamodeling as a graph-based approach to
the specification of semantics for (behavioral) modeling
languages. The Object Management Group (OMG) [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ] provides
a specification of the semantics of a foundational subset for
executable UML models (fUML) using activity diagrams and a
dedicated action language. Mayerhofer [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] comprehensively
describes the state of the art in model execution.
      </p>
      <p>
        Regarding the topic of pragmatics, Balz et al. [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] discuss
the embedding of behavioral models (state machines) into
object-oriented source code. Ecore Facade [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ] is a textual
domain-specific language for annotating existing Ecore
metamodels. This mechanism can be used to define multiple views
for a single metamodel via Ecore facade models. The survey
by Szvetit and Zdun [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ] covers existing research on models
at runtime and software architecture in detail.
      </p>
    </sec>
    <sec id="sec-4">
      <title>V. CONCLUDING REMARKS</title>
      <sec id="sec-4-1">
        <title>In this paper, we introduced comprehensive language mod</title>
        <p>els as a way to specify modeling languages in the context of
model-integrating software components. Moreover, we gave
concrete examples along the insurance sales app study and
elaborated on a first set of challenges.</p>
        <p>We conclude that an infrastructure is needed that provides
all model-specific services in a light-weight, homogeneous,
formally founded, easily understandable, and efficient manner
using a comprehensive technological modeling space
supplying full modeling and metamodeling support, and coherent
interoperable services based on a powerful data structure.</p>
        <p>
          Regarding future work, we plan to carry out additional case
studies to identify further challenges for the infrastructure
needed to support model-integrating software components. In
the long run, we aim to manifest our lessons learned in a
systematically derived engineering method [
          <xref ref-type="bibr" rid="ref24">24</xref>
          ].
        </p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>ACKNOWLEDGMENT</title>
      <p>This work is supported by the Deutsche
Forschungsgemeinschaft (DFG) under grants EB 119/11-1 and EN 184/6-1. The
authors would like to thank Gregor Engels for his valuable
feedback and Thomas Iguchi for his implementation support.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>M.</given-names>
            <surname>Derakhshanmanesh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Ebert</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Iguchi</surname>
          </string-name>
          , and G. Engels, “ModelIntegrating Software Components,” in Model-Driven
          <source>Engineering Languages and Systems - 17th International Conference, MODELS</source>
          <year>2014</year>
          , Valencia, Spain,
          <source>September 28 - October 3</source>
          ,
          <year>2014</year>
          . Proceedings, ser. Lecture Notes in Computer Science, J. Dingel,
          <string-name>
            <given-names>W.</given-names>
            <surname>Schulte</surname>
          </string-name>
          , I. Ramos, S. Abraha˜o, and E. Insfra´n, Eds., vol.
          <volume>8767</volume>
          . Springer,
          <year>2014</year>
          , pp.
          <fpage>386</fpage>
          -
          <lpage>402</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>M.</given-names>
            <surname>Derakhshanmanesh</surname>
          </string-name>
          ,
          <string-name>
            <surname>Model-Integrating Software</surname>
          </string-name>
          Components - Engineering
          <source>Flexible Software Systems</source>
          . Springer,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>M.</given-names>
            <surname>Derakhshanmanesh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Amoui</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G. O</given-names>
            <surname>'Grady</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Ebert</surname>
          </string-name>
          , and L. Tahvildari, “GRAF:
          <article-title>Graph-based Runtime Adaptation Framework,” in Proceeding of the 6th international symposium on Software engineering for adaptive and self-managing systems</article-title>
          - SEAMS '
          <fpage>11</fpage>
          . New York, NY, USA: ACM Press,
          <year>May 2011</year>
          , pp.
          <fpage>128</fpage>
          -
          <lpage>137</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>G.</given-names>
            <surname>Blair</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Bencomo</surname>
          </string-name>
          , and R. B. France, “Models@run.time,” Computer, vol.
          <volume>42</volume>
          , no.
          <issue>10</issue>
          , pp.
          <fpage>22</fpage>
          -
          <lpage>27</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>I.</given-names>
            <surname>Kurtev</surname>
          </string-name>
          , J. Be´zivin, and M. Aksit, “
          <article-title>Technological Spaces: An Initial Appraisal,” in International Symposium on Distributed Objects and Applications</article-title>
          ,
          <string-name>
            <surname>DOA</surname>
          </string-name>
          <year>2002</year>
          ,
          <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>A.</given-names>
            <surname>Vulgarakis</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 Transactions on Software Engineering</source>
          , vol.
          <volume>37</volume>
          , no.
          <issue>5</issue>
          , pp.
          <fpage>593</fpage>
          -
          <lpage>615</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7] “Eclipse Modeling Framework Hompage,” https://eclipse.org/modeling/ emf/ (accessed July 16th,
          <year>2015</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8] “JGraLab Hompage,” http://jgralab.uni-koblenz.de (
          <issue>accessed July 15th</issue>
          ,
          <year>2015</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>S.</given-names>
            <surname>Go</surname>
          </string-name>
          ¨tz, N. Bencomo, and R. France, “
          <article-title>Devising the Future of the Models@Run</article-title>
          .Time Workshop,” SIGSOFT Softw.
          <source>Eng. Notes</source>
          , vol.
          <volume>40</volume>
          , no.
          <issue>1</issue>
          , pp.
          <fpage>26</fpage>
          -
          <lpage>29</lpage>
          , Feb.
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>E.</given-names>
            <surname>Gamma</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Helm</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Johnson</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Vlissides</surname>
          </string-name>
          , Design Patterns:
          <article-title>Elements of Reusable Object-Oriented Software</article-title>
          . Boston, MA, USA:
          <string-name>
            <surname>Addison-Wesley Longman</surname>
          </string-name>
          Publishing Co., Inc.,
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <article-title>The OSGi Alliance, “OSGi Core Release 5,” The OSGi Alliance</article-title>
          ,
          <source>Tech. Rep. March</source>
          ,
          <year>2012</year>
          , http://www.osgi.org/Download/File?url=/download/ r5/osgi.core-
          <volume>5</volume>
          .0.0.pdf (
          <issue>accessed July 15th</issue>
          ,
          <year>2015</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>G. D.</given-names>
            <surname>Plotkin</surname>
          </string-name>
          , “A Structural Approach to Operational Semantics,”
          <year>1981</year>
          . [Online]. Available: http://homepages.inf.ed.ac.uk/gdp/publications/
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>G.</given-names>
            <surname>Engels</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. H.</given-names>
            <surname>Hausmann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Heckel</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Sauer</surname>
          </string-name>
          , “
          <article-title>Dynamic MetaModeling: A Graphical Approach to the Operational Semantics of Behavioral Diagrams in UML,” in Proceedings of the 3rd international conference on the Unified Modeling Language (UML</article-title>
          <year>2000</year>
          ), York (UK),
          <article-title>ser</article-title>
          . LNCS,
          <string-name>
            <given-names>B. S. A.</given-names>
            <surname>Evans</surname>
          </string-name>
          , S. Kent, Ed., vol.
          <year>1939</year>
          . Berlin/Heidelberg: Springer,
          <year>2000</year>
          , pp.
          <fpage>323</fpage>
          -
          <lpage>337</lpage>
          , third International Conference.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>T.</given-names>
            <surname>Mayerhofer</surname>
          </string-name>
          , “
          <article-title>Defining Executable Modeling Languages with fUML,”</article-title>
          <source>Ph.D. dissertation, Institute of Software Technology and Interactive Systems</source>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>J.</given-names>
            <surname>Sztipanovits</surname>
          </string-name>
          and G. Karsai, “
          <string-name>
            <surname>Model-Integrated</surname>
            <given-names>Computing</given-names>
          </string-name>
          ,” Computer, vol.
          <volume>30</volume>
          , no.
          <issue>4</issue>
          , pp.
          <fpage>110</fpage>
          -
          <lpage>111</lpage>
          , Apr.
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>F.</given-names>
            <surname>Heidenreich</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Henriksson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Johannes</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Zschaler</surname>
          </string-name>
          , “
          <article-title>On Language-Independent Model Modularisation,” in Transactions on Aspect-Oriented Software Development VI, ser</article-title>
          . Lecture Notes in Computer Science, S. Katz,
          <string-name>
            <given-names>H.</given-names>
            <surname>Ossher</surname>
          </string-name>
          , R. France, and J.
          <string-name>
            <surname>-M. Je</surname>
          </string-name>
          ´ze´quel, Eds. Springer Berlin Heidelberg,
          <year>2009</year>
          , vol.
          <volume>5560</volume>
          , pp.
          <fpage>39</fpage>
          -
          <lpage>82</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>H.</given-names>
            <surname>Krahn</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Rumpe</surname>
          </string-name>
          , and S. Vo¨lkel, “
          <article-title>MontiCore: Modular Development of Textual Domain Specific Languages,” in Objects, Components, Models and Patterns, ser</article-title>
          .
          <source>Lecture Notes in Business Information Processing</source>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Paige</surname>
          </string-name>
          and B. Meyer, Eds. Springer Berlin Heidelberg,
          <year>2008</year>
          , vol.
          <volume>11</volume>
          , pp.
          <fpage>297</fpage>
          -
          <lpage>315</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>J. H.</given-names>
            <surname>Bae</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Lee</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H. S.</given-names>
            <surname>Chae</surname>
          </string-name>
          , “
          <article-title>Modularization of the UML Metamodel Using Model Slicing</article-title>
          ,” in Information Technology: New Generations,
          <year>2008</year>
          .
          <article-title>ITNG 2008</article-title>
          . Fifth International Conference on,
          <source>April</source>
          <year>2008</year>
          , pp.
          <fpage>1253</fpage>
          -
          <lpage>1254</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>C.</given-names>
            <surname>Atkinson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Gerbig</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C.</given-names>
            <surname>Tunjic</surname>
          </string-name>
          , “
          <article-title>A Multi-level Modeling Environment for SUM-based Software Engineering</article-title>
          ,”
          <source>in Proceedings of the 1st Workshop on View-Based</source>
          ,
          <article-title>Aspect-Oriented and Orthographic Software Modelling, ser</article-title>
          .
          <source>VAO '13</source>
          . New York, NY, USA: ACM,
          <year>2013</year>
          , pp.
          <volume>2</volume>
          :
          <fpage>1</fpage>
          --
          <lpage>2</lpage>
          :
          <fpage>9</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20] The Object Management Group, “
          <article-title>Semantics of a Foundational Subset for Executable UML Models (fUML</article-title>
          ),” p.
          <fpage>441</fpage>
          ,
          <year>2012</year>
          . [Online]. Available: http://www.omg.org/spec/FUML/
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>M.</given-names>
            <surname>Balz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Striewe</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Goedicke</surname>
          </string-name>
          , “
          <article-title>Embedding Behavioral Models into Object-Oriented Source Code,”</article-title>
          <source>Proceedings of ”Software Engineering</source>
          <year>2009</year>
          ”,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22] “Ecore Facade,”
          <year>2015</year>
          . [Online]. Available: http://www.emftext.org/ index.php/EMFText Concrete Syntax Zoo Ecore Facade
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>M.</given-names>
            <surname>Szvetits</surname>
          </string-name>
          and U. Zdun, “
          <article-title>Systematic literature review of the objectives, techniques, kinds, and architectures of models at runtime</article-title>
          ,
          <source>” Software &amp; Systems Modeling</source>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>39</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>G.</given-names>
            <surname>Engels</surname>
          </string-name>
          and
          <string-name>
            <given-names>S.</given-names>
            <surname>Sauer</surname>
          </string-name>
          , “
          <article-title>A Meta-Method for Defining Software Engineering Methods,” in Graph Transformations</article-title>
          and
          <string-name>
            <surname>Model-Driven</surname>
            <given-names>Engineering</given-names>
          </string-name>
          , ser. Lecture Notes in Computer Science, G. Engels,
          <string-name>
            <given-names>C.</given-names>
            <surname>Lewerentz</surname>
          </string-name>
          , W. Scha¨fer, A. Schu¨rr, and
          <string-name>
            <given-names>B.</given-names>
            <surname>Westfechtel</surname>
          </string-name>
          , Eds. Springer Berlin Heidelberg,
          <year>2010</year>
          , vol.
          <volume>5765</volume>
          , pp.
          <fpage>411</fpage>
          -
          <lpage>440</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>