=Paper= {{Paper |id=Vol-1463/paper1 |storemode=property |title=Challenges for Model-Integrating Components |pdfUrl=https://ceur-ws.org/Vol-1463/paper1.pdf |volume=Vol-1463 |dblpUrl=https://dblp.org/rec/conf/models/Derakhshanmanesh15a }} ==Challenges for Model-Integrating Components== https://ceur-ws.org/Vol-1463/paper1.pdf
       Challenges for Model-Integrating Components
       Mahdi Derakhshanmanesh                            Jürgen Ebert                                          Marvin Grieger
      University of Koblenz-Landau              University of Koblenz-Landau                    University of Paderborn
    Institute for Software Technology         Institute for Software Technology           Department of Computer Science
             Koblenz, Germany                          Koblenz, Germany                          Paderborn, Germany
     Email: manesh@uni-koblenz.de               Email: ebert@uni-koblenz.de             Email: marvin.grieger@uni-paderborn.de




   Abstract—Model-Integrating Software Components (MoCos)                                             «component»
                                                                                                         MoCo
use models at runtime as first class entities within components                                                                   «delegate»
to build flexible and adaptive software systems. Building such
systems requires to design and implement the required domain-                           IModelState                 IModelState




                                                                                                                                                   PFunction
specific modeling languages. Insufficient design and realization of




                                                                                                                                                    «port»
modeling languages raises the risk that they may not be optimized
                                                                                         ICodeState                 ICodeState
for their later use. Although various works on the use of models at




                                                                                                         «module»
                                                                                                         Mediator
                                                                             «module»                                                   «module»
runtime exist, they do not address the engineering of modeling               MoCoCode                                                  MoCoModel
                                                                                         IInterpret                  IInterpret
languages to be used in software components at runtime. In




                                                                                                                                                   PManage
                                                                                                                                                    «port»
this paper, we introduce the idea of Comprehensive Language
Models (CLMs) which explicitly considers modeling language                                IAction                     IAction
engineering as a part of the development of component based
software systems. This is achieved by extending the modeling                                                                      «delegate»
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              Fig. 1. Internal View on the MoCo Template (see [1])
on Android based on which we derive a set of key challenges for
the community.
                                                                      are used on the code side, e.g., Java, and different – poten-
                       I. I NTRODUCTION                               tially integrated – DSMLs are used on the model side. Both
   Models are no longer just used to design software but can          constituents of a MoCo are encapsulated using interfaces.
become an integrated part of it, i.e., (executable) models and        Optionally, a smart Mediator can manage any redirection
code coexist at runtime with equal rights. In previous works          from and to the MoCo’s ports as well as communication
[1], [2], we proposed Model-Integrating Software Components           between the model and code parts.
(MoCos) as a concept for the design and development of such              The expected advantages of the MoCo approach are: (i) en-
model-integrating software systems. Software engineers can            hanced flexibility because the system and its individual compo-
choose to realize some parts of a system programmatically             nents can be observed using model queries, can be modified by
in code, while other parts are kept as models. No code is             adapting models using an editor or model transformations and
generated from the models but they are used at runtime. This          can be executed using model interpreters [3], (ii) support of
concept yields flexible well-performing software that can be          separation of concerns because each model targets a concern,
easily and systematically monitored, analyzed and modified.           (iii) understandability and maintainability because models are
                                                                      assumed to be easier to understand and easier to handle
   The MoCo-approach combines models described using arbi-
                                                                      than code, (iv) self-documentation because a well designed
trary Domain-Specific Modeling Languages (DSMLs) and em-
                                                                      modeling language is assumed to be a documentation and
beds them within software components following a tailorable
                                                                      (v) no synchronization problem because there is no redundancy
component design pattern that guides software engineers:
                                                                      between model and code unless it is introduced willfully, e.g.,
the MoCo Template. It is depicted in Figure 1 and briefly
                                                                      to realize reflection.
introduced, next.
                                                                      B. Research Problem
A. Model-Integrating Software Components                                 An essential difference between component-based and
   Each MoCo can have ports (PFunction, PManage) that                 model-integrating software is the use of various models at
are wired to the internal implementation, which is either             runtime (not just reflective models@run.time [4]). There-
encoded by a programming language (MoCoCode) or by a                  fore, developing model-integrating software systems includes
modeling language (MoCoModel). Conceptually, there may                choosing existing modeling languages or designing and im-
be sets of languages used on either side. In practice, a base         plementing adequate DSMLs. In fact, it must be possible to
technology such as the Java Virtual Machine (JVM) and its             introduce new DSMLs easily and quickly to realize certain
byte code format acts as a unifier. Programming languages             parts of a system as a model. In turn, the use of models of a
given DSML requires support for the following core activities:
                                                                                                                                    integrate
(i) building models, e.g., using an application programming                                                 LComputation                             LGUI
interface or an editor, (ii) binding models into components
                                                                                                                      use                          use
as building blocks, e.g., following the MoCo Template and
(iii) using models, e.g., querying, transforming and interpreting                                                        «moco»

                                                                                                                              IsaCarProduct1
them. These activities can only be supported if there is a
powerful technological space [5] for modeling languages and
models, which provides all relevant capabilities needed. In the                                                          «moco»

                                                                                                                                 IsaConfig
context of MoCos, such a technological space needs to work
together with the respective component execution platform [6]                                                                               use

or even be part of it.
                                                                                                                              LFeatureTrees
   There are examples for such technological spaces like the
Eclipse Modeling Framework (EMF) [7] or JGraLab [8] that
deliver acceptable support for language design, especially for                                            Model-Integrating    «moco»
                                                                                                                                                  integrate
                                                                                                            Component           IsaCarProduct1

syntax and constraints. Additionally, many research works use
                                                                                                             Modeling
models at runtime in various ways and this specific topic is                                                 Language
                                                                                                                               LComputation         use

still a very relevant research area [9].
   While different approaches and solutions for modeling and            Fig. 2. MoCo-based ISA Client App and an Architecture Excerpt
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 inte-         is dynamically extensible at the component level and single
grated part of a software system. Moreover, the challenges          components’ internals can be also monitored and modified
associated with designing DSMLs that support the symbiosis          at runtime. For example, insurance fee formulas are adapted,
of models at runtime and code within software components            based on the current physical location of a customer. A
have to be inspected.                                               screenshot of ISA is shown in Figure 2 (left), illustrating one
   This paper tackles the following research problems and their     of the views of the Graphical User Interface (GUI) specific to
associated challenges:                                              the car insurance product.
(Q1) How to specify modeling languages comprehensively for             ISA’s architecture consists of a mix of pure Java libraries
       generating adequate runtime support for them?                and MoCos, i.e., a certain part of the running software is en-
(Q2) What are challenges for modeling languages in the              coded in models that are used at runtime, e.g., by querying and
       context of MoCos?                                            transforming them. An excerpt is depicted in Figure 2 (right).
                                                                    The specific modeling languages used represent (i) feature
C. Contributions                                                    trees (Lf ) for architectural reconfiguration, (ii) computation
   In answering Q1, we propose that the introduction of a new       (Lc ) for insurance fee formulas and (iii) graphical user
DSML requires a Comprehensive Language Model (CLM),                 interfaces (Lg ) for data presentation and user input capturing.
i.e., a specification of a modeling language to such an extent         Regarding implementation, all MoCos conform to the struc-
that all required activities on models are supported. We claim      ture proposed by the MoCo Template. For components, we
that each CLM should at least specify the following parts of        used OSGi’s [11] dynamic component technology, code was
DSML: (i) syntax (metamodel and constraints), (ii) semantics        written in Java and models were developed in JGraLab [8].
(dynamic state, constraints, state transitions) and (iii) prag-     The base execution platform is the Java Virtual Machine.
matics (at least facades [10]). We assume that a realization of
a modeling language Li will be derived from a CLMi .                A. Comprehensive Language Model for Lc
   In answering Q2, we provide a description of selected               As a clarification for what exactly a Comprehensive Lan-
challenges related to the seamless integration of models and        guage Model (CLM) is, we give an example in the context of
code in software components, based on the Insurance Sales           the ISA case study. More concretely, we describe the CLM
App (ISA) case study [1]. All in all, we aim to raise awareness     for Lc in the following and sketch how it relates to Lg . This
for this topic and to initiate a fruitful discussion.               background knowledge is required to understand some of the
                                                                    challenges described later in this paper.
     II. RUNNING E XAMPLE : I NSURANCE S ALES A PP                     CLMc , i.e., the CLM that fully specifies the modeling
   The Insurance Sales App (ISA) is a prototypical application      language Lc , is depicted in Figure 3. It consists of three major
for Google’s Android mobile operating system. It has been           parts: syntax, semantics and pragmatics.
developed to evaluate the feasibility of MoCos [1], [2]. It            1) Syntax Specification: Lc ’s syntax is specified using a
also serves as a running example throughout the rest of this        UML-style metamodel and mostly represents the static struc-
paper. From the user’s perspective, ISA’s primary purpose           ture. The language represents programs (Prog) consisting
is to support field staff in the insurance domain with their        of statements (Stmt). There are special statements such as
daily sales tasks. The system is built with MoCos, thus it          conditional (If), an assignment (Ass) and further specific
  CLM
      Computation

                               Syntax                                                                               Semantics                                                                               Pragmatics
                                                                                     A Note on Semantics, Version 0.1
                  then                {ordered}
                              Stmt                 Prog
                  else                                                                                           Jürgen Ebert                                                 class ComputationModel
                                                                                                                                                                               {
                                                                                                                                                                                  /∗ constructor that reads a
                                                                 [[Stmt]]                : (Var !Double) ! (Var ! Double)
                                                                 8 a : Ass               [[a]](s) = s {a.left 7! a.right.val }                                                    formula from a file ∗/
     If            Ass               Store         Load
                                                                 8 i : If                [[i ]](s) = if isTrue(i .cond .val ) then [[i .then]](s) else [[i .else]](s) end         ComputationModel (String fileID);

                                                                 [[Expr ]] : Expr ! Double                                                                                          /∗ reads the value of a variable ∗/
                                                                 8 c : Const [[c]] = c.val                                                                                          Double getVariable (String varID);
                                                                 8 v : Var      [[v ]] = v .val
                                     right
                      cond                                       8 b : Bin      [[b]] = case b.op of
                                                                                             ’+’: b.left.val + b.right.val ;                                                        /∗ sets the value of a variable ∗/
                      left       Expr
                                                                                             ’-’: b.left.val b.right.val ;                                                          void setVariable (String varID, Double val);
                      right                                                                  ’*’: b.left.val ⇤ b.right.val ;
                              val : Double
                                                                                             ’/’: b.left.val /b.right.val ;                                                         /∗ evaluates an expression according to the
                                                  left var var                               end                                                                                    current values of the variables ∗/
                                                                 8 l : Load                                                                                                         Double evaluate (String progID);
                                                                 [[l ]](sc ,sg ) : (sc      {l .var !l .loadValFrom.value}, sg )                                               }
            Bin                  Const                Var
                                                                 8 st : Store
          op : Char                                              [[st]](sc ,sg ) : (sc , sg      {st.storeValIn !st.var .val })




Fig. 3. CLMc Comprising the Specification of Syntax (Dynamic Metamodel), Semantics (Dynamic Metamodel + State Transitions) and Pragmatics (Facade)



statements for loading (Load) and saving (Store) vari-                                                                B. Integration of Lc and Lg
ables (Var). Variables and constants (Const) are expressions
(Expr). Expressions have a value (val) as well as a left and                                                             Besides the use of single modeling languages, it is particu-
right side of a specified binary operator (Bin).                                                                      larly interesting when multiple languages are used together.1 In
   2) Semantics Specification: Lc ’s semantics is specified                                                           the context of ISA, each insurance product MoCo carries the
(i) by extending the metamodel with information about the                                                             insurance fee formula (an instance of Lc ) and its correspond-
dynamic state and (ii) by adding a description of state transi-                                                       ing representation of the graphical user interface (an instance
tions by following Plotkin’s Structured Operational Semantics                                                         of Lg ). The two modeling languages had to be integrated.
(SOS) approach [12]. This was an ad-hoc, pragmatic choice.                                                            For this purpose, additional associations (loadValFrom and
   Like in Dynamic Metamodeling [13], Lc ’s metamodel ele-                                                            storeValIn roles) were introduced        A Note  and the         specification
                                                                                                                                                                                on Semantics,            Version 0.1
ments depicted in Figure 3 also cover the dynamic state of its                                                        of state transitions in CLMc was extended to encode the
set of conforming models. The dynamic state is part of the                                                            semantics of loading values from the GUI (Load) Jürgen            and Ebert
                                                                                                                                                                                                storing
semantics specification of Lc which is an essential part of any                                                       values from a formula in the GUI’s TextView (Load). In
                                                                                                                                                     [[Stmt]]  : (Var !Double) ! (Var ! Double)
CLM. The attribute val belonging to the dynamic state can                                                             Figure 4, the corresponding integration
                                                                                                                                                     8 a : Ass        via= sadditive
                                                                                                                                                               [[a]](s)                     extension
                                                                                                                                                                                {a.left 7! a.right.val }
                                                                                                                                                     8 i : If  [[i ]](s) = if isTrue(i .cond .val ) then [[i .then]](s) else [[i .else
be changed during model execution.                                                                                    of two CLMs is given.
                                                                                                                                                                        [[Expr ]] : Expr ! Double
   In terms of encoding the allowed state transitions in the                                                                                                            8 c : Const [[c]] = c.val
dynamic state, we chose Plotkin’s approach as a technology-                                                                                                             8 v : Var      [[v ]] = v .val
                                                                                                                         CLMGUI                             CLMComputation
                                                                                                                                                                        8 b : Bin      [[b]] = case b.op of
independent precise and comprehensible formalism. For ex-                                                                                                                                           ’+’: b.left.val + b.right.val ;
                                                                                                                                                                                                    ’-’: b.left.val b.right.val ;
ample, as shown in Figure 3, the semantics of a Stmt in                                                                       Syntax                          Syntax                            Semantics
                                                                                                                                                                                                    ’*’: b.left.val ⇤ b.right.val ;
                                                                                                                                                                                                    ’/’: b.left.val /b.right.val ;
Lc is that a given variable’s value is replaced with another                                                                       loadValFrom                                                      end
(potentially the same) value.                                                                                                                                     Load
                                                                                                                                                                               8 l : Load
   3) Pragmatics Specification: Lc ’s pragmatics is specified                                                                  Textview                                        [[l ]](sc ,sg ) : (sc   {l .var !l .loadValFrom.value}, sg )

using a facade, e.g., using a notation similar to Java classes                                                              value : String                                     8 st : Store
                                                                                                                                                                               [[st]](sc ,sg ) : (sc , sg   {st.storeValIn !st.var .val })
as illustrated in Figure 3. This approach facilitates the use of                                                                                                  Store
                                                                                                                                     storeValIn
models similar to code objects. Moreover, the specification of
available services on models of a given language, here Lc , sup-
ports communication between modeling language designers,
                                                                                                                                   Fig. 4. Integration of two Comprehensive Language Models
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                                                               CLMs support the specification and design of modeling
models. These services are realized as facades.                                                                       languages to be used within model-integrating software com-
   For example, the ComputationModel facade allows to                                                                 ponents as described. However, there are still many open
load a model from a file, to get and set a value for a variable                                                       challenges that need to be tackled.
and, importantly, to evaluate a model (e.g., representing an
insurance fee formula in ISA) by starting model execution at                                                            1 The GEMOC initiative (http://gemoc.org/) provides related work on the
a certain Prog element.                                                                                               coordinated use of heterogeneous modeling languages.
                              TABLE I                                   functionality dictates a clean separation of concerns between
I NITIAL L IST OF C HALLENGES FOR M ODELING L ANGUAGES IN M O C OS      the various MoCos. As in any other component-based software
                                                                        systems, MoCos are connected with each other via provided
 ID     Challenge Description
                                                                        and required interfaces. While separation of concerns has
 Syntax
 C1     How to modularize metamodels?
                                                                        many well-known advantages, it has one major disadvantage
 C2     How to integrate two metamodels?                                in the context of MoCos: the flexibility that comes with
 C3     How to establish links between different models?                the ability to query and transform a single (possibly large)
 C4     How to provide a context-dependent view on sets of models?
                                                                        interconnected model can no longer be leveraged if single
 Semantics                                                              models are distributed and encapsulated across individual
 C5    How to specify model semantics?
 C6    How to realize model execution?
                                                                        MoCos (C3). There are no associations between them on the
  C6.1 How to manage the dynamic state of a model?                      model-level. The ability to establish links and to access these
  C6.2 How to reuse model interpreters?                                 distributed models is especially helpful to debug MoCos and
  C6.3 How to support the interplay of different model interpreters?
 C7    How to support variants of semantics for the same modeling
                                                                        their interdependencies. In ISA for example, it is interesting
       language?                                                        to know the available insurance fee formulas (contained in
 Pragmatics                                                             IsaCarProduct1) for a specific feature configuration (con-
 C8   How to establish control and data flow between models and code?   tained in IsaConfig).
 C9   How to design language-specific and usage-specific services on       4) Context-Dependent Views on Models: Modeling lan-
      models?
 C10 How to control access to models?                                   guages and their metamodels are only partly used, i.e., the
                                                                        available expressiveness is not required and a restricted meta-
                                                                        model will be sufficient. Moreover, only some data may be
                        III. C HALLENGES                                relevant for a certain use case and MoCo. The ability to
                                                                        define an adequate and context-specific view on sets of models
   Building on the use of CLMs, we elaborate on an initial list         (C4) helps to reduce complexity and supports ease of use of
of challenges for modeling languages in the context of MoCos            DSMLs. In fact, a view can be seen as a specification for the
using the ISA running example. For readability, we formulate            model parts that can be used by another MoCo. In ISA for
each challenge as a question and cluster them according to              example, an adaptation manager MoCo may need to control
(i) syntax, (ii) semantics and (iii) pragmatics as summarized           certain location-dependent variables of the insurance fees and
in Table I. A detailed description follows subsequently.                their associated GUI elements. These parts could be encoded
                                                                        by a special adaptation view.
A. Syntax Challenges
   1) Modularization of Metamodels: Software architects fol-            B. Semantics Challenges
low a divide-and-conquer approach and split larger systems                 1) Specification of Model Semantics: The models in MoCos
in smaller pieces, e.g., into software components and con-              are not only used as pure data (similar to databases) but
nectors. A standardized approach for the modularization of              some are also executed. Therefore, the semantics of modeling
modeling languages is missing, though. A main part of any               languages needs to be precisely specified (C5). There is a
DSML’s definition is the specification of its syntax with a             multitude of options available and one can choose between a
metamodel. While package-structures and import mechanisms               spectrum of rather informal and very formal approaches [14].
are available, depending on the concrete modeling technology,           It is important to choose a formalism that is both sufficiently
the modeling language designer cannot orchestrate modeling              formal but also adequately practical for software engineers
languages and their metamodels in a black-box fashion (C1).             and modeling language designers. In ISA for example, all
In ISA for example, feature models (Lf ) are managed and used           three modeling languages are executable: Lf is interpreted for
by a MoCo called IsaConfig and insurance fees models                    architectural reconfiguration, Lc is interpreted to compute an
(Lc ) as well as GUI models (Lg ) are managed and used by               insurance fee and Lg is interpreted to create and synchronize
insurance products like the IsaCarProduct1 MoCo.                        an Android-specific graphical user interface for each insurance
   2) Integration of Metamodels: Integration means that at              product represented by a single MoCo.
least two existing modeling languages shall be merged. In                  2) Realization of Model Execution: Given a specification of
contrast to distributed, potentially not connected models con-          semantics for a modeling language, this specification needs to
forming to different metamodels, this approach conveniently             be implemented (C6) and related decisions need to be taken
enables full access, e.g., via model queries, to the conforming         carefully. In general, there has been no commonly accepted
models of this integrated modeling language (C2). In ISA                proposal for the realization of model semantics/model inter-
for example, insurance fee models and GUI models are                    preters, yet. Besides the development of stand-alone inter-
used tightly together within the IsaCarProduct1 MoCo,                   preters and model interpreters embedded into the metamodel,
e.g., values from computed fees are directly associated with            code generation is another option. Each approach has its ad-
elements of the user interface.                                         vantages and disadvantages, e.g., with regards to performance,
   3) Links between Different Models: In a MoCo-based                   complexity and reusability. In ISA for example, there is at least
software system, the architectural decomposition based on               one model interpreter for each modeling language.
   One sub-challenge that is critical in the case of interpretation   Template already defines a pattern with its Mediator and
is the way to deal with the parts of a model that may change          sketched interfaces. We deem it important to further stan-
during interpretation (C6.1). We refer to them as the model’s         dardize these interfaces and to provide realization guidelines,
dynamic state, in contrast to the rest of the model, the static       e.g., in the scope of our reference implementation (MoCo
structure. While these parts can be regarded as the execution         API) [1]. The design and development of language-specific
context of a stand-alone model interpreter, it can be also seen       facades encapsulating required services as a part of a CLM
as a part of the actual model. In ISA for example, models             needs to be researched. In ISA for example, there is code
of the kind of Lf , i.e., feature configurations, are used for        for sending an email report in the MoCoCode module of
runtime reconfiguration. This implies that the state of a feature     the IsaCarProduct1 MoCo that receives data from the
(selected or not selected) varies. This information can be            MoCoModel module (insurance fee model, GUI model).
stored separately by the model interpreter (e.g., technically as a       2) Services on Models: When talking about services on
hashmap) or it can be a Boolean attribute in the Lf metamodel.        models, two categories need to be distinguished: (i) foreseen
   A second sub-challenge is related to the reuse of model in-        services that are provided by the modeling language designer
terpreters (C6.2). In this specific case, one needs to distinguish    and (ii) unforeseen services that are specific to a certain
between (i) reuse of model interpreter implementations and            user of a modeling language (e.g., a system or a compo-
(ii) their instances at runtime. Depending on the chosen type of      nent). Moreover, modeling languages – especially DSMLs
implementation, the reuse potential varies. In ISA for example,       as primarily used in MoCos – need to be compact and
the same feature model can be interpreted by different model          adequately expressive. A strategy and a set of mechanisms is
interpreters concurrently if the dynamic state, i.e., the feature     required to specify context-specific services, realize them and
selection flag, is stored by the model interpreters themselves.       to manage the resulting variability (C9). In ISA for example,
On the contrary, if the dynamic state is part of each model           different insurance products, i.e., different MoCos, require
but needs to be different per semantics, then the model needs         similar special services, like email reporting. This particular
to be duplicated or an embedded model interpreter needs to            service was not initially foreseen when developing Lc and Lg .
instantiate the dynamic state multiple times.                         Therefore, it was first developed as a part of the respective
   A third sub-challenge is related to the interdependencies          MoCoCode module, resulting in clones across the different
of semantics and, hence, the interplay of model interpreters          insurance product MoCos. To solve such issues, often required
(C6.3). Ideally, each modeling language comes with its own            and DSML-specific services need to be offered by a facade as
set of model interpreters. In case that two modeling languages        a part of the CLM.
need to be used together, it is required that not only their             3) Access Control for Models: Given the power of models
metamodels are integrated (see C2) but it is also necessary           in the MoCo concept, any kind of analysis or manipulation
that their semantics fit. In the simplest form, one model             needs to be controlled (C10). Models need to be accessible
interpreter invokes another model interpreter, which asks for a       only in predefined authorized, i.e., safe and secure, ways. It
more sophisticated management of dependencies – especially            needs to be decided whether models can be accessed using the
if these shall be dynamic. In ISA for example, each insurance         MoCos’ interfaces only or if there is a more powerful role that
product MoCo encapsulates an insurance fee formula model              can inspect everything, i.e., all models within all MoCos across
and a GUI model. Given that their metamodels were previously          the system architecture. Indeed, there is a tradeoff between
integrated, the model interpreter of Lc (i) may access meta-          flexibility and encapsulation. In ISA for example, obviously
classes of Lg and operate on them (e.g., store a computed             insurance fee formulas should not be editable by anyone, even
insurance fee in a text field), or (ii) may invoke the model          though this is technically possible at any time using model
interpreter of Lg to perform the task.                                transformations. An adaptation manager MoCo that adjusts the
   3) Variants of Semantics: We experienced that while for            fee formulas according to the geolocation of the sales person
some modeling language (especially general-purpose model-             and potential customer requires exactly this ability, though.
ing languages) a single semantics specification is sufficient,
in the case of DSMLs, multiple semantics for the same                                     IV. R ELATED W ORK
modeling language need to be supported (C7). Therefore, in               While there are works that deal with individual challenges
this context, a modeling language becomes a software product          described in this paper, we observe that a comprehensive
line. Reuse is critical to deal with complexity and to avoid          solution approach is missing. The work on Model-Integrated
redundancy and duplication. In ISA for example, there may             Computing, initiated by Sztipanovits and Karsai [15], targets
be behavioral semantics (dynamic reconfiguration), constraint         similar issues but lacks the runtime aspect. Due to limited
checking semantics and visualization semantics for Lf .               space, we can only hint at an excerpt of related work here.
                                                                         Regarding the topic of syntax, Heidenreich et al. [16]
C. Pragmatics Challenges                                              present a generic approach for the composition of models that
   1) Data and Control Flow between Model and Code: In                is based on invasive software composition and the Reuseware
MoCos, models and code coexist and realize the functionality          Composition Framework. Krahn et al. [17] use an extended
of the component together. It is important to be able to              grammar format that supports language inheritance and em-
invoke models from code and vice versa (C8). The MoCo                 bedding for the modular development of textual domain-
specific languages. Bae et al. [18] propose to modularize a                     [3] M. Derakhshanmanesh, M. Amoui, G. O’Grady, J. Ebert, and L. Tahvil-
large metamodel into a set of small metamodels and present                          dari, “GRAF: Graph-based Runtime Adaptation Framework,” in Pro-
                                                                                    ceeding of the 6th international symposium on Software engineering for
their idea of model slicing along the UML. In contrast to                           adaptive and self-managing systems - SEAMS ’11. New York, NY,
modularization approaches, Atkinson et al. propose a Single-                        USA: ACM Press, May 2011, pp. 128–137.
Underlying-Model (SUM) [19] that serves all users.                              [4] G. Blair, N. Bencomo, and R. B. France, “Models@run.time,” Computer,
                                                                                    vol. 42, no. 10, pp. 22–27, 2009.
   Regarding the topic of semantics, Plotkin [12] proposes a                    [5] I. Kurtev, J. Bézivin, and M. Aksit, “Technological Spaces: An Initial
structural approach to operational semantics. Engels et al. [13]                    Appraisal,” in International Symposium on Distributed Objects and
describe dynamic metamodeling as a graph-based approach to                          Applications, DOA 2002, 2002.
                                                                                [6] I. Crnkovic, S. Sentilles, A. Vulgarakis, and M. R. V. Chaudron,
the specification of semantics for (behavioral) modeling lan-                       “A Classification Framework for Software Component Models,” IEEE
guages. The Object Management Group (OMG) [20] provides                             Transactions on Software Engineering, vol. 37, no. 5, pp. 593–615, 2011.
a specification of the semantics of a foundational subset for                   [7] “Eclipse Modeling Framework Hompage,” https://eclipse.org/modeling/
                                                                                    emf/ (accessed July 16th, 2015).
executable UML models (fUML) using activity diagrams and a                      [8] “JGraLab Hompage,” http://jgralab.uni-koblenz.de (accessed July 15th,
dedicated action language. Mayerhofer [14] comprehensively                          2015).
describes the state of the art in model execution.                              [9] S. Götz, N. Bencomo, and R. France, “Devising the Future of the
                                                                                    Models@Run.Time Workshop,” SIGSOFT Softw. Eng. Notes, vol. 40,
   Regarding the topic of pragmatics, Balz et al. [21] discuss                      no. 1, pp. 26–29, Feb. 2015.
the embedding of behavioral models (state machines) into                       [10] E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Design Patterns:
object-oriented source code. Ecore Facade [22] is a textual                         Elements of Reusable Object-Oriented Software. Boston, MA, USA:
                                                                                    Addison-Wesley Longman Publishing Co., Inc., 1995.
domain-specific language for annotating existing Ecore meta-                   [11] The OSGi Alliance, “OSGi Core Release 5,” The OSGi Alliance, Tech.
models. This mechanism can be used to define multiple views                         Rep. March, 2012, http://www.osgi.org/Download/File?url=/download/
for a single metamodel via Ecore facade models. The survey                          r5/osgi.core-5.0.0.pdf (accessed July 15th, 2015).
                                                                               [12] G. D. Plotkin, “A Structural Approach to Operational Semantics,” 1981.
by Szvetit and Zdun [23] covers existing research on models                         [Online]. Available: http://homepages.inf.ed.ac.uk/gdp/publications/
at runtime and software architecture in detail.                                [13] G. Engels, J. H. Hausmann, R. Heckel, and S. Sauer, “Dynamic Meta-
                                                                                    Modeling: A Graphical Approach to the Operational Semantics of
                                                                                    Behavioral Diagrams in UML,” in Proceedings of the 3rd international
                   V. C ONCLUDING R EMARKS                                          conference on the Unified Modeling Language (UML 2000), York (UK),
                                                                                    ser. LNCS, B. S. A. Evans, S. Kent, Ed., vol. 1939. Berlin/Heidelberg:
   In this paper, we introduced comprehensive language mod-                         Springer, 2000, pp. 323–337, third International Conference.
els as a way to specify modeling languages in the context of                   [14] T. Mayerhofer, “Defining Executable Modeling Languages with fUML,”
model-integrating software components. Moreover, we gave                            Ph.D. dissertation, Institute of Software Technology and Interactive
                                                                                    Systems, 2014.
concrete examples along the insurance sales app study and                      [15] J. Sztipanovits and G. Karsai, “Model-Integrated Computing,” Com-
elaborated on a first set of challenges.                                            puter, vol. 30, no. 4, pp. 110–111, Apr. 1997.
   We conclude that an infrastructure is needed that provides                  [16] F. Heidenreich, J. Henriksson, J. Johannes, and S. Zschaler, “On
                                                                                    Language-Independent Model Modularisation,” in Transactions on
all model-specific services in a light-weight, homogeneous,                         Aspect-Oriented Software Development VI, ser. Lecture Notes in Com-
formally founded, easily understandable, and efficient manner                       puter Science, S. Katz, H. Ossher, R. France, and J.-M. Jézéquel, Eds.
using a comprehensive technological modeling space supply-                          Springer Berlin Heidelberg, 2009, vol. 5560, pp. 39–82.
                                                                               [17] H. Krahn, B. Rumpe, and S. Völkel, “MontiCore: Modular Development
ing full modeling and metamodeling support, and coherent                            of Textual Domain Specific Languages,” in Objects, Components, Mod-
interoperable services based on a powerful data structure.                          els and Patterns, ser. Lecture Notes in Business Information Processing,
   Regarding future work, we plan to carry out additional case                      R. Paige and B. Meyer, Eds. Springer Berlin Heidelberg, 2008, vol. 11,
                                                                                    pp. 297–315.
studies to identify further challenges for the infrastructure                  [18] J. H. Bae, K. Lee, and H. S. Chae, “Modularization of the UML
needed to support model-integrating software components. In                         Metamodel Using Model Slicing,” in Information Technology: New
the long run, we aim to manifest our lessons learned in a                           Generations, 2008. ITNG 2008. Fifth International Conference on, April
                                                                                    2008, pp. 1253–1254.
systematically derived engineering method [24].                                [19] C. Atkinson, R. Gerbig, and C. Tunjic, “A Multi-level Modeling
                                                                                    Environment for SUM-based Software Engineering,” in Proceedings of
                        ACKNOWLEDGMENT                                              the 1st Workshop on View-Based, Aspect-Oriented and Orthographic
                                                                                    Software Modelling, ser. VAO ’13. New York, NY, USA: ACM, 2013,
   This work is supported by the Deutsche Forschungsgemein-                         pp. 2:1—-2:9.
schaft (DFG) under grants EB 119/11-1 and EN 184/6-1. The                      [20] The Object Management Group, “Semantics of a Foundational Subset
                                                                                    for Executable UML Models (fUML),” p. 441, 2012. [Online].
authors would like to thank Gregor Engels for his valuable                          Available: http://www.omg.org/spec/FUML/
feedback and Thomas Iguchi for his implementation support.                     [21] M. Balz, M. Striewe, and M. Goedicke, “Embedding Behavioral Models
                                                                                    into Object-Oriented Source Code,” Proceedings of ”Software Engineer-
                             R EFERENCES                                            ing 2009”, 2009.
                                                                               [22] “Ecore Facade,” 2015. [Online]. Available: http://www.emftext.org/
 [1] M. Derakhshanmanesh, J. Ebert, T. Iguchi, and G. Engels, “Model-               index.php/EMFText Concrete Syntax Zoo Ecore Facade
     Integrating Software Components,” in Model-Driven Engineering Lan-        [23] M. Szvetits and U. Zdun, “Systematic literature review of the objectives,
     guages and Systems - 17th International Conference, MODELS 2014,               techniques, kinds, and architectures of models at runtime,” Software &
     Valencia, Spain, September 28 - October 3, 2014. Proceedings, ser.             Systems Modeling, pp. 1–39, 2013.
     Lecture Notes in Computer Science, J. Dingel, W. Schulte, I. Ramos,       [24] G. Engels and S. Sauer, “A Meta-Method for Defining Software
     S. Abrahão, and E. Insfrán, Eds., vol. 8767. Springer, 2014, pp. 386–        Engineering Methods,” in Graph Transformations and Model-Driven
     402.                                                                           Engineering, ser. Lecture Notes in Computer Science, G. Engels,
 [2] M. Derakhshanmanesh, Model-Integrating Software Components - En-               C. Lewerentz, W. Schäfer, A. Schürr, and B. Westfechtel, Eds. Springer
     gineering Flexible Software Systems. Springer, 2015.                           Berlin Heidelberg, 2010, vol. 5765, pp. 411–440.