<!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>Aspect-oriented Concrete Syntax De nition for Deep Modeling Languages</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Colin Atkinson</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ralph Gerbig</string-name>
          <email>gerbigg@informatik.uni-mannheim.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>University of Mannheim</institution>
        </aff>
      </contrib-group>
      <abstract>
        <p>Multi-level modeling tools provide inherent support for modeling domain scenarios with multiple classi cation levels. However, as the success of domain-speci c modeling tools illustrates users increasingly expect to be able to visualize models using domain-speci c languages. It is relatively straightforward to support this using traditional \two-level" modeling technologies, but many of the bene ts of multi-level modeling would be lost. For example, in a multi-level context it is not only desirable to de ne concrete syntax that is applicable over more than just one instantiation level, it should also be possible to customize the visualization of model elements as they become more specialized over instantiation and inheritance levels. In this paper we present an approach for multi-level concrete syntax de nition which addresses this need by using aspect-oriented principles to parametrize the visualization associated with model elements. We also explain how this is implemented in the Melanee deep modeling tool.</p>
      </abstract>
      <kwd-group>
        <kwd>aspect-orientation</kwd>
        <kwd>deep modeling</kwd>
        <kwd>concrete syntax</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Since concrete syntax de nition is one of the core foundations of domain-speci c,
model-driven development a large number of tools supporting this capability are
available today. Important examples include MetaEdit+ [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] and the Graphical
Modeling Framework [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] for graphical languages, XText [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] and Spoofax [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]
for textual languages and EMF Forms [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] for form-based languages. Other
concrete syntax formats can also be supported such as table-based and wiki-based
languages. However, these tools are all based on traditional \two-level"
modeling technology which only supports two classi cation levels. As a result, they
have no inherent capability to support the de nition of concrete syntax that
can \span" (i.e. automatically be applied over) multiple classi cation levels. In
other words, they can only inherently support the application of a concrete
syntax de nition to instances at the level immediately below. To apply a concrete
syntax to two or more levels below its de nition, complex transformation and
editor generation/deployment steps are needed. This not only complicates the
initial de ntion and use of concrete syntaxes, it signi cantly increase the e ort
involved in maintaining and evolving them.
      </p>
      <p>Deep modeling has the potential to address this problem because it
inherently supports multiple classi cation levels. However, some challenges need to
be addressed to support e ective level-spanning concrete syntax de nition and
application within a deep modeling environment. The most signi cant is to nd
a suitable tradeo between the need to de ne common syntax elements that are
suitable across multiple levels whilst providing the exibility to customize the
common syntax elements as and where needed. In other words, the most
significant challenge is to allow the concrete syntax used to visualize model elements
to re ect the specialization that inherently takes place in the instantiation and
inheritance hierarchies in a deep model.</p>
      <p>
        The Melanee [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] deep modeling environment addresses this problem through
an aspect-oriented approach which essentially allows concrete syntax de nitions
to be parametrized. Using this capability it is possible for the concrete syntax
applied to a model element to be customized to re ect the specialization that
naturally takes place in a deep model, signi cantly reducing the complexity
involved in de ning, maintaining, and evolving di erent concrete syntaxes. The
implemented mechanism paves the way towards general concrete-syntax
repositories which can be con gured for particular domains and application scenarios
in a simple and straightforward way.
      </p>
      <p>The remainder of this paper is structured as follows: In the next section
(Section 2) the underlying deep modeling approach is introduced. Section 3
then introduces the concept of aspect-oriented concrete syntax de nition while
Section 4 presents pragmatic observations made during the use of the approach
in three di erent domains. The paper closes with conclusions (Section 5).
2</p>
    </sec>
    <sec id="sec-2">
      <title>OCA-based Deep Modeling</title>
      <p>The most widely implemented deep modeling architecture is the orthogonal
classi cation architecture shown schematically in Figure 1. Its most obvious di
erence to the traditional linear modeling infrastructure of the UML is that there
are two \orthogonal" classi cation dimensions. One dimension, the linguistic
classi cation dimension, is represented by the vertical stack of levels labeled
L2 to L0, and the other dimension, the ontological classi cation dimension, is
represented by the horizontal stack of levels labeled O0 to O2.</p>
      <p>The linguistic levels essentially capture the organization of the model
information from the perspective of how deep modeling is realized in a meta-modeling
framework such as EMF. The top most linguistic level (L2), contains all language
constructs available in the deep modeling language, while the middle level (L1)
contains the user-modeled domain languages and is thus often referred to as the
domain level. The ontological dimension, in turn, consists of \ontological"
levels which are stacked horizontally within L1. Each model element at this level is
classi ed by exactly one model element at level L2, indicated by vertically dashed
classi cation lines. The lowest level, L0, contains the real-world concepts
modeled by L1. The light bulb represents the concept of EmployeeType which captures
the common properties of all employees. The group of stick-men with a wrench
L2
L1
L0</p>
      <sec id="sec-2-1">
        <title>Level</title>
        <p>* Clabject
content potency
O0</p>
        <p>EmployeeType2
expertise2=1</p>
      </sec>
      <sec id="sec-2-2">
        <title>Element</title>
        <p>name</p>
      </sec>
      <sec id="sec-2-3">
        <title>Feature</title>
        <p>* feature durability
in the upper right instantiates this concept as WebshopAdmin (a particular type
of employee) which is then further instantiated as Bob (a particular instance of
a WebshopAdmin). Classes located in the middle levels (e.g., WebshopAdmin) are
instances of the classes at higher levels and types for the classes at the lower
levels. Hence, they are named \clabjects" which is a concatenation of the terms
\class" and \object".</p>
        <p>The domain level, L1, consists of three ontological levels O0 to O2 which are
intended to represent the domain concepts/objects. Even though three levels are
shown here, the number of levels available is not limited. The concrete syntax
used in Figure 1 looks similar to the UML but with some modi cations to make
it level-agnostic. Ontological classi cation is shown using horizontal dashed lines
or the UML colon notation as used in object speci cations (e.g. Bob). The most
important di erence to the UML is the association of numerical values with
clabjects, attributes and attribute values in the form of superscripts after their
names. Depending on whether they are associated with clabjects, attributes
or attribute values they are respectively referred to as \potency", \durability"
or \mutability". The potency speci es over how many subsequent ontological
classi cation levels a clabject can be instantiated and thus in uence the contents
of a deep model. In the example EmployeeType has a potency of two stating that it
can be instantiated at the following two levels, here WebshopAdmin with potency
one and Bob with potency zero. The durability displayed next to the name of an
attribute indicates over how many subsequent instantiation steps an attribute
endures. In the example, expertise has a durability of two so all o spring of
EmployeeType over the next two levels have to possess such an attribute, here
WebshopAdmin and Bob. Finally, the mutability displayed next to the value of an
attribute de nes over how many levels the value of an attribute can be changed.
The mutability for expertise of EmployeeType is one, hence it can be changed at
the next instance level and is xed from then on. On level O1 of the example the
expertise for all WebshopAdmins is set to Linux which means that instance Bob has
to have Linux as his expertise.</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Apsect-oriented Concrete Syntax De nition</title>
      <p>
        Aspect-oriented concrete syntax de nition employs concepts from aspect-oriented
programing languages [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], e.g. AspectJ [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. More speci cally it allows concrete
syntax de nitions to be parametrized using uniquely-named join-points. Aspects
can then be used to contribute to a join-point to customize the notation used
to visualize a specialized version of the associated model element. An aspect
contains the name of the join-point to which it is applied, a condition
determining when the aspect is applied and an \advice" which is introduced to the
join-point. The advice can be con gured to be added before, after or to replace
the join-point. Moreover, multiple aspects can be provided for one join-point.
      </p>
      <p>The meta-model supporting the aspect-oriented de nition of graphical
concrete syntax in Melanee is shown in Figure 2. The model is unique for each
type of concrete syntax format (e.g. graphical, textual, tabular etc.) to best t
the needs of that particular format. Here, for space reasons, the approach is
explained only in the context of graphical concrete syntax de nition, but Melanee
supports the approach for other formats as well. Melanee's algorithm for
visualizing model elements is designed in such a way that it can be con gured to
work with any concrete syntax de nition model that supports the join-point and
aspect concepts explained below.
GraphicalDSLVisualizer 1 content VisualizationDescriptor
* name:String</p>
      <p>ConditionalDescriptor
condition:String</p>
      <p>LayoutDescriptor</p>
      <p>1
* content
LayoutContentDescriptor
name:String
* content</p>
      <p>1</p>
      <p>Aspect
kind:Aspect={around,=before,=after}</p>
      <p>In Melanee any model element can have multiple AbstractDSLVisualizers
attached, de ning the concrete syntax in a speci c concrete syntax format. The
notation attribute groups visualizers from the same format into \notations" so
that families of symbols can be grouped into a given logical \notation". The
instanceLevel attribute speci es whether a visualizer is applied only to the
instance level or to the level at which the visualizer is de ned as well. The
GraphicalDSLVisualizer shown here de nes concrete syntax in a graphical format using
VisualizationDescriptors. This is the base class for all types of elements in a
concrete syntax de nition. It assigns a name to each element of a concrete syntax
de nition making each of those potential join-points. To explicitly declare an
element as a join-point a unique name has to be assigned to it. A concrete syntax
de nition consist of three types of VisualizationDescriptors: LayoutDescriptor ,
LayoutContentDescriptor and Aspect. A LayoutDescriptor describes the layout which is
applied to layout content (e.g. table layout, ow layout etc.). A
LayoutContentDescriptor , which is contained by a LayoutDescriptor , describes the actual displayed
O1
2) 1)
3)</p>
      <p>EmployeeType0
name2
expertise2
salary2
name
salary';'expertise</p>
      <p>G
name
BusinessEmployeeType2 TechnicalEmployeeType2 salary';'expertise</p>
      <p>Employee0</p>
      <p>G
name; salary</p>
      <p>G
name; salary
(a)
O1</p>
      <p>EmployeeType0
name2
expertise2
salary2</p>
      <p>JC JAG</p>
      <p>name JB
salary';'expertise
3) 4)
BusinessEmployeeType2 TechnicalEmployeeType2 JA &lt;around&gt;G=
2) 1)</p>
      <p>Employee0</p>
      <p>JC &lt;around&gt; = G</p>
      <p>JB &lt;around&gt; = name; salary
2)</p>
      <p>3)
1) Webshop Admin</p>
      <p>35k; Computer Science
(b)
Online Marketing Employee</p>
      <p>35k; Marketing
O2
1)</p>
      <p>Webshop Admin
35k; Computer Science</p>
      <p>Online Marketing Employee</p>
      <p>35k; Marketing</p>
      <p>O2
Jim; 32k</p>
      <p>Bob; 65k</p>
      <p>Jim; 32k</p>
      <p>Bob; 65k
shape such as a rectangle, circle, label mappings etc. By nesting these two
concepts any concrete syntax can be de ned as desired. The language is designed
to be similar to well known languages for describing UIs such as the Standard
Widget Toolkit (SWT), and languages describing concrete syntax for diagrams
such as the Graphical Modeling Framework (GMF).</p>
      <p>Aspects for join-points are provided by the Aspect model element which
inherits the condition attribute from ConditionalDescriptors which are executed when
the condition holds true. Aspects are not only ConditionalDescriptors they are also
subclasses of VisualizationDescriptor so that they can be added to
GraphicalDSLVisualizers. The kind attribute de nes the application strategy of the advice (content)
of the Aspect. Three kinds are available { before (adding the content before), after
(adding the content after) and around (replacing the content of the join-point).
The current meta-model limits the content of an aspect to be
LayoutContentDescriptors. However, this does not limit the expressive power of the model.</p>
      <p>
        Based on the visualizer and aspect-oriented concrete syntax de nition
approach a special search algorithm is employed to generate the desired
visualization for each model element in a deep model. This is based on an algorithm for
two-level models [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. It was rst extended to deep modeling in [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] and since then
steadily re ned to the point where it supports deep aspect-oriented visualization.
      </p>
      <p>Figure 3 shows an example of the \Employee" language with concrete syntax
attached to model elements indicated by clouds. The concrete syntax de nition
uses the meta-model of Figure 2. The order in which clabjects are visited when
searching for a model element visualization is indicated by dashed arrows
annotated with a number. The search algorithm starts searching at the level of the
clabject to visualize. First the clabject itself is visited to determine whether it
has an associated visualizer, if not the clabjects in the inheritance hierarchy of
the clabject are visited. If no visualizer is found at this level the types of the
clabject at the level above are visited. The search continues until a suitable
visualizer is found for the clabject. If none is found the pre-de ned concrete syntax
is used to render the clabject.</p>
      <p>The example in Figure 3(a) shows the \aspect-unaware" search trace of the
algorithm for Bob and Online Marketing Employee. Bob has no visualizer attached,
so the algorithm visits WebshopAdmin, the type of Bob, which has a visualizer
attached. The algorithm stops, returning the stick man icon with a small wrench
in the upper right. To nd a suitable visualizer for Online Marketing Employee its
supertype (Employee) is visited which contains a visualizer. However, because its
instanceLevel attribute is set to true (indicated by the dashed cloud) the algorithm
continues searching the type level. The direct type, BusinessEmployeeType, has no
visualizer but its supertype (EmployeeType) has. Hence, the search terminates
and returns the group-of-stickmen icon to visualize Online Marketing Employee.</p>
      <p>Figure 3(b) shows the same example but using aspect-oriented concrete
syntax de nition. Only one visualizer is de ned at EmployeeType de ning the
joinpoints (dashed rectangles) JA, JB and JC . Variations are modeled through aspects
of kind around along the classi cation hierarchy, here at TechnicalEmployeeType
and Employee. This focus on modeling variations only reduces the number of
fully speci ed Visualizer from four in Figure 3(a) (EmployeeType,
BusinessEmployeeType, Employee, WebshopAdmin) to one in Figure 3(b) (EmployeeType). The main
di erence between the two search algorithm versions is that discovered aspects
are collected on the way to a model element with an aspect-less visualizer and
then merged into the visualizer. The trace for OnlineMarketingEmployee is identical
to the aspect-unaware version as no aspects are de ned along its classi cation
hierarchy. For Bob the search ends at EmployeeType and merges the collected
aspects JA, JB and JC into this visualizer.</p>
      <p>Comparing the \aspect-unaware" and \aspect-aware" approaches shows that
the search algorithm traverses more model elements when applying the
aspectaware variant of the algorithm. Additionally, the aspect aware version involves
additional computational overhead for merging aspects into join-points, leading
to a potential performance issue. The impact of this overhead has to be
empirically determined by analyzing numerous practical examples. In the following
section pragmatic observations about the approach are made.
4</p>
    </sec>
    <sec id="sec-4">
      <title>Examples</title>
      <p>
        Because of the novelty of the aspect-oriented concrete syntax de nition approach
only three languages using this features have been published to date. The rst
describes executable behavior of robots [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], the second a language for
modeling executed environments in a game [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] and the third a distributed extension
scenario in the domain of business process modeling and analysis [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
      </p>
      <p>
        The model shown in Figure 4 is part of a deep robot behavior modeling and
execution framework in [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. The excerpt focuses on the behavior modeling part of
the model. At the highest level, O0, the goal is to provide a generic language for
modeling robot behavior. This is then used to create a robot behavior modeling
language for a speci c type of robot at O1, here humanoid robots. One of the
goals is to make the concrete syntax as con gurable as possible to re ect the type
of modeled behavior. For example, the Move action should show the coordinates
alongside a small walking pictogram, while the Gesture action should show a
textual description of the gesture to do alongside a corresponding pictogram. To
achieve this the concrete syntax de nitions at the O0 level o er join-points (JA,
JB, JC ) which are used by the robot behavior language at O1 for concrete syntax
customization. The language is then used at level O2 to model robot behavior.
The behavior modeled in this example rst instructs the robot to walk, then
detect a ball and nally make an agree or disagree gesture.
      </p>
      <sec id="sec-4-1">
        <title>ActionType 3</title>
        <p>typeName3=1
platformName3=1
1 * 1cflow 1 1post JD</p>
      </sec>
      <sec id="sec-4-2">
        <title>ControlFlowType 3</title>
        <p>uses VariableType 3
* type</p>
        <p>name</p>
      </sec>
      <sec id="sec-4-3">
        <title>FlowElement 0</title>
        <p>executionTime2
successful2
JC
name':'type</p>
      </sec>
      <sec id="sec-4-4">
        <title>Action0 1 post</title>
        <p>platformName2=Nao0 * split</p>
      </sec>
      <sec id="sec-4-5">
        <title>DetectRedBall2:ActionType</title>
        <p>TypeName = 'detect_red_ball'
JA = 'x='x';y='y';theta='theta
JB=
JB=</p>
      </sec>
      <sec id="sec-4-6">
        <title>ControlFlow0</title>
        <p>JD=O
Or2:ControlFlowType JD=X</p>
      </sec>
      <sec id="sec-4-7">
        <title>XOR2:ControlFlowType</title>
      </sec>
      <sec id="sec-4-8">
        <title>AND2:ControlFlowType</title>
        <p>JD=+
O0
O1
O2</p>
        <p>TypeNameJA JB
executionTime;successful</p>
      </sec>
      <sec id="sec-4-9">
        <title>FlowType0</title>
        <p>executionTime3
successful3
1 post
JA = gesture
JB=</p>
      </sec>
      <sec id="sec-4-10">
        <title>Gesture2:ActionType</title>
        <p>typeName= 'posture'
gesture:Gestures</p>
      </sec>
      <sec id="sec-4-11">
        <title>Move2:ActionType</title>
        <p>typeName = 'move'
x:Integer
y:Integer
theta:Integer</p>
        <p>Move
x=4;y=2.6;theta=0.785</p>
        <p>Detect Red Ball
Agree
ballDetected</p>
        <p>not ballDetected
X</p>
        <p>Disagree</p>
        <p>
          To realize the language without aspect-oriented concrete syntax de nition
features it would be necessary to de ne a complete visualizer for each model
element at level O1 (e.g. Move, XOR) even though the concrete syntax at level O1
is only a slight variation of the one de ned at O0. This unnecessary replication
of visualizers would signi cantly increase the accidental complexity involved in
developing, maintaining and evolving deep models [
          <xref ref-type="bibr" rid="ref6 ref7">6, 7</xref>
          ]. A change made to the
general language at level O0 would need to be synchronized with all visualizer
de nitions at level O1. Aspect-oriented concrete syntax de nitions avoid this
problem by making it possible to specify a generic concrete syntax de nition
on level O0 that can be customized at level O1. At level O1 the variations are
modeled only and changes to the generic syntax at level O0 are automatically
promoted to instances without any manual e ort. This reduces the number of
manual changes to the concrete syntax de nitions that have to be made after a
change and thus reduces the overall complexity involved.
        </p>
        <p>In contrast to the previous example where the customization takes place
along the classi cation hierarchy, in Figure 5 aspect-orientation is used to model
concrete syntax variations in an inheritance hierarchy. The example shows a
model for a game environment with a focus on how the inheritance hierarchy is
used to determine the concrete syntax of Weapons in an aspect-oriented style. At
the center of each Weapon symbol is an icon indicating the type of weapon (e.g.
Shuriken). The character at the top right of the symbol indicates the weapon kind
(A: AttackWeapon; D: DefenseWeapon) and the text at the bottom gives the name
and details of the weapon such as regeneration information. The only common
part of all weapon visualizations is the information at the bottom. The weapon
kind and type change per subclass. To optimize the concrete syntax de nition,
only the weapon details at the bottom are de ned in the visualizer associated
with Weapon along with two join-points | one for weapon type (JT ) and one
for weapon kind (JK). The weapon kind is associated with the AttackWeapon and
DefenseWeapon subclasses since it is xed for all of their subclasses. On the other
hand, the weapon types which change for each weapon are de ned locally at
Telekinesis, Rocket, etc. The lowest level O2 shows an instance of a modeled game
environment which can be executed. Again the aspect-oriented concrete syntax
de nition reduces the number of elements involved in concrete syntax de nition
as only variations are modeled instead of the whole concrete syntax.</p>
        <p>In the examples presented so far, aspect-oriented concrete syntax de nition
is used to reduce accidental complexity. Figure 6, however, shows a scenario
that cannot be supported without this mechanism. It contains three packages
created by independent parties and distributed over the internet | 1. BPMN:
providing a business process modeling language, 2. MDPE : supporting
modeldriven performance analysis and 3. Security : supporting business process security
modeling.</p>
        <p>O0</p>
        <p>JA=threshold</p>
        <p>JB=L
O1</p>
        <p>MDPE
@http://example.org/mdpe</p>
        <p>LatencyTask2
threshold2</p>
        <p>BPMN
@http://example.org/bpmn</p>
        <p>Task2
taskName2=1</p>
        <p>JTAypeNamBe</p>
        <p>J
MDPE
@http://example.org/mdpe</p>
        <p>1:LatencyTask
threshold1= '10 minutes'
SelectWineToBeAddedForFree1:Task</p>
        <p>Security
@http://example.org/security</p>
        <p>SecurityTask 2
valueGain 2
Security
@http://example.org/security
1:SecurityTask
valueGain1= '200'
(1)
(2)
(3)
(4)</p>
        <p>JA=valueGain
JB=S
10 minutes
SelectWineToBe
AddedForFree</p>
        <p>L</p>
        <p>SelectWineToBeAddedForFree1
:Task, SecurityTask, LatencyTask
threshold1= '10 minutes'
valueGain 1= '200'</p>
        <p>SelectWineToBe
AddedForFree
200
SelectWineToBe
AddedForFree</p>
        <p>S</p>
        <p>The BPMN language was de ned with modeling language and concrete syntax
extension in mind. To enable the latter, join-points JA and JB are de ned in the
concrete syntax de nition of Task. These two are used by the LatencyTask and
SecurityTask subclasses from the MDPE and Security packages linked to the BPMN
package. They introduce new language constructs into the BPMN language and
extend the concrete syntax. The rectangle at O1 contains a detailed view of one
Task which is an instance of Task, LatencyTask and SecurityTask for demonstration
purposes. In a real model, however, this would be shown as one model element
with multiple classi cations. The four rendering options for this model instance,
which it is possible to switch between on-the- y, are shown at the bottom of
Figure 6. This example shows how distributed deep models can enhance each
others concrete syntax de nitions in a decoupled style by using aspect-oriented
concrete syntax de nition. Even though the example only shows a linking depth
of one, chains of linked models which contribute towards one concrete syntax
can be envisaged.
5</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Conclusion</title>
      <p>
        Deep modeling technologies not only facilitate the de nition of models that span
more than one class/instance level they also allow domain-speci c (i.e.
userde ned) modeling languages to be used to represent them. These user-de ned
modeling languages often use concrete syntax de nitions which span multiple
classi cation levels, multiple inheritance levels or even multiple models. In this
paper we have shown the potential of aspect-oriented concrete syntax de nitions
to reduce accidental complexity, positively impact model development, evolution
and maintenance, and support new modeling scenarios. The three published
languages and one running example described in this paper demonstrate the
potential advantages of the approach which is fully implemented in the Melanee
tool. The authors are not aware of any other deep modeling tool supporting
aspect-aware, concrete syntax de nition. Besides Melanee, two other deep
modeling tools explicitly support the de nition of user-de ned concrete syntax |
MetaDepth [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ], a textual tool, and DPF [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ], a graphical tool. Both provide
concepts for concrete syntax de nition but do not support aspect-orientation.
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Atkinson</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gerbig</surname>
          </string-name>
          , R.:
          <article-title>On the execution of deep-models</article-title>
          .
          <source>Exe</source>
          <year>2015</year>
          { 1st International Workshop on Executable Modeling Proceedings (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Atkinson</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gutheil</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kennel</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>A exible infrastructure for multilevel language engineering</article-title>
          .
          <source>Software Engineering, IEEE Transactions on 35(6)</source>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Atkinson</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gerbig</surname>
          </string-name>
          , R.:
          <article-title>Melanie: Multi-level modeling and ontology engineering environment</article-title>
          .
          <source>In: 2nd International Master Class on Model-Driven Engineering: Modeling Wizards</source>
          . pp.
          <volume>7</volume>
          :
          <issue>1</issue>
          {
          <issue>7</issue>
          :
          <fpage>2</fpage>
          . ACM, New York, NY, USA (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Atkinson</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gerbig</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fritzsche</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>A multi-level approach to modeling language extension in the enterprise systems domain</article-title>
          .
          <source>Information Systems</source>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Atkinson</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gerbig</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Markert</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zrianina</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Egurnov</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kajzar</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>Towards a deep, domain speci c modeling framework for robot applications</article-title>
          . pp.
          <volume>4</volume>
          {
          <fpage>15</fpage>
          . MORSE '14,
          <string-name>
            <surname>CEUR-WS.org</surname>
          </string-name>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Atkinson</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          , Kuhne, T.:
          <article-title>Reducing accidental complexity in domain models</article-title>
          .
          <source>Software &amp; Systems Modeling</source>
          <volume>7</volume>
          (
          <issue>3</issue>
          ),
          <volume>345</volume>
          {
          <fpage>359</fpage>
          (
          <year>2008</year>
          ), http://dx.doi.org/10.1007/ s10270-007-0061-0
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Brooks</surname>
            ,
            <given-names>F.P.</given-names>
          </string-name>
          , J.:
          <article-title>No silver bullet essence and accidents of software engineering</article-title>
          .
          <source>Computer</source>
          <volume>20</volume>
          (
          <issue>4</issue>
          ),
          <volume>10</volume>
          {
          <fpage>19</fpage>
          (
          <year>1987</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>Eclipse</given-names>
            <surname>Foundation</surname>
          </string-name>
          :
          <article-title>Emf forms</article-title>
          . http://eclipse.org/ecp/emfforms/index.html (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9. E tinge, S., Volter, M.:
          <article-title>oaw xtext: A framework for textual dsls</article-title>
          .
          <source>In: Workshop on Modeling Symposium at Eclipse Summit</source>
          . vol.
          <volume>32</volume>
          (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Espinazo-Pagan</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Menarguez</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Garc</surname>
            a-Molina,
            <given-names>J.</given-names>
          </string-name>
          :
          <article-title>Metamodel syntactic sheets: An approach for de ning textual concrete syntaxes</article-title>
          .
          <source>ECMDA-FA '08</source>
          , Springer-Verlag, Berlin, Heidelberg (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Gronback</surname>
          </string-name>
          , R.C.:
          <article-title>Eclipse Modeling Project: A Domain-Speci c Language (DSL) Toolkit</article-title>
          .
          <string-name>
            <surname>Addison-Wesley Professional</surname>
          </string-name>
          ,
          <volume>1</volume>
          <fpage>edn</fpage>
          . (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Kats</surname>
            ,
            <given-names>L.C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Visser</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          :
          <article-title>The spoofax language workbench: Rules for declarative speci cation of languages and ides</article-title>
          .
          <source>OOPSLA '10</source>
          ,
          <string-name>
            <surname>ACM</surname>
          </string-name>
          , New York, NY, USA (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Kiczales</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hilsdale</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hugunin</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kersten</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Palm</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Griswold</surname>
            ,
            <given-names>W.:</given-names>
          </string-name>
          <article-title>An overview of aspectj</article-title>
          . In: Knudsen,
          <string-name>
            <surname>J</surname>
          </string-name>
          . (ed.)
          <source>ECOOP</source>
          <year>2001</year>
          (
          <year>2001</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Kiczales</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lamping</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mendhekar</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Maeda</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lopes</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Loingtier</surname>
            ,
            <given-names>J.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Irwin</surname>
          </string-name>
          , J.:
          <article-title>Aspect-oriented Programming</article-title>
          . In: Akit,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Matsuoka</surname>
          </string-name>
          , S. (eds.) ECOOP'
          <volume>97</volume>
          (
          <year>1997</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Lamo</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wang</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mantz</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bech</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sandven</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rutle</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Dpf workbench: A multi-level language workbench for mde</article-title>
          .
          <source>In: Proceedings of the Estonian Academy of Sciences</source>
          ,
          <year>2013</year>
          . vol.
          <volume>62</volume>
          , pp.
          <volume>3</volume>
          {
          <issue>15</issue>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16. de Lara, J.,
          <string-name>
            <surname>Guerra</surname>
          </string-name>
          , E.:
          <article-title>Deep meta-modelling with metadepth</article-title>
          .
          <source>TOOLS'10</source>
          , Springer-Verlag, Berlin, Heidelberg (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Tolvanen</surname>
            ,
            <given-names>J.P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kelly</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          : Metaedit+:
          <article-title>De ning and using integrated domain-speci c modeling languages</article-title>
          .
          <source>OOPSLA '09</source>
          ,
          <string-name>
            <surname>ACM</surname>
          </string-name>
          , New York, NY, USA (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>