<!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>MUTANT: Model-Driven Unit Testing using ASCII-art as Notational Text</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Daniel Struber</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Felix Rieger</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Gabriele Taentzer</string-name>
          <email>taentzerg@informatik.uni-marburg.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Philipps-Universitat Marburg</institution>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>There are two established strategies to create test models: Textual notations require developers to mentally reconstruct the involved graph structures ad hoc; maintenance e ort and time are increased. Existing visual notations compel developers to switch frequently between di erent editors; keeping the resulting test artifacts synchronized is complicated by insu cient tool support. In this paper, we propose to specify test models using ASCII-art { a text-based visual notation used by developers in their everyday practices. To outline our vision, we employ a motivating example and discuss challenges such as editing, collaboration, and scalability. The discussion sheds a promising light on the new idea, notably for its usefulness in collaborative and reuse-intensive settings.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        Model-Driven Engineering (MDE) emerged as a paradigm to combat
complexity in software engineering through the use of visual notations. While its basic
premise appears promising, MDE has not found broad adoption as a mainstream
software development methodology, and a major cause for this failure is often
seen in inadequate tool support [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. In particular, Batory et al. found the
graphical tools in a widely-known modeling framework unsuitable for teaching MDE
to students, considering them unappealing and unintuitive [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
      </p>
      <p>This lack of enthusiasm is seconded by practitioners. In a recent online
discussion, an industry participant observed that \the graphical tools are bulky, lack
often some features like (smart) versioning, merging, collaborating, good
integration into the overall development tool chain. [...] Working with mouse, property
dialogs, popup windows never gains the speed of a well con gured source IDE." 1</p>
      <p>
        In this work, we aim to provide the bene ts of visual models without inducing
any of these tool-related problems. The idea is to specify models using ASCII-art ,
a text-based visual notation used by developers in their everyday practices [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
ASCII-art is widely used in speci cation documents, such as Internet RFCs [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
We will explore this idea in a context where it appears particularly well-suited:
Simplifying unit testing, a cornerstone in software quality assurance [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ].
      </p>
      <p>Often, a system under test takes as input a data structure with an intuitive
visual representation: Consider (i) a routing algorithm nding shortest paths in
a graph of towns, (ii) a model transformation deriving database schemas from
class models, or (iii) a social network site proposing new friends based on a social
graph. Adopting MDE terminology, we will call such data structures models.</p>
      <p>
        There are two established strategies to create test models: The rst is textual
speci cation using APIs or dedicated DSLs. However, textual notations are not
suited to capture the visual nature of the involved models. It has been reported
that the use of visual models respecting certain layouting criteria has a positive
e ect on cognitive load [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. Hence, the second option is to construct test models
using visual tools. Yet this results in a complicated process, involving repeated
switching between di erent editors and keeping test models and code
synchronized { challenging tasks, given the lack of production-ready collaboration tools.
      </p>
      <p>In this paper, we propose model-driven unit testing using ASCII-art as
notational text (MUTANT): Unit tests are annotated with test models, using a visual
notation based on ASCII characters. The main component of the approach is a
model compiler that derives models from these annotations and provides these
models to the test framework. By adding it to the build script, this compiler can
be integrated into any given IDE. We put forth the following design rationale:</p>
      <p>I. Di ng and merging annotated code, crucial tasks in versioning and
collaboration, is supported by mature tools included in state-of-the-art IDEs.</p>
      <p>II. Collaborators and project stakeholders, such as managers and
customerside developers, can view test models without requiring any tool setup.</p>
      <p>III. The notation is not bound to a speci c modeling platform. Alternative
platforms can be supported by providing separate model compilers.</p>
      <p>IV. Creating new test models from existing ones boils down to copying text.
Sec. 2 reports on a daunting experience of performing this task using visual tools.</p>
      <p>The rest of this paper is structured as follows: In Sec. 2, we introduce the
approach by example. In Secs. 3 and 4, we discuss challenges and an
implementation prototype. We discuss related work and conclude in Secs. 5 and 6.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Motivating Example</title>
      <p>
        Consider the following example to compare the new approach against the
established approaches to test model speci cation. The system under test is an
implementation of the pull up attribute refactoring [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] for class models: If two
classes have the same superclass and attributes of the same type and name, the
attributes are moved to the superclass. The unit tests in this example involve a
part where a test model is provided, a part where the refactoring is applied, and
assertions to check if the attribute was pulled up.
      </p>
      <p>
        Textual speci cation. Fig. 1 presents a unit test for the refactoring based
on the Eclipse Modeling Framework (EMF), a modeling platform often used to
create and persist models [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. In lines 4-12, the test model is created: A
package acting as overarching container, classes, and their attributes are created. In
lines 13-14, person is set as common superclass for the professor and student
classes. In lines 16-19, the refactoring is applied and assertions are checked.
1 public class RefactoringTest extends UnitTest {
2 @Test
3 public void testRefactoring () {
4 EFactory fact = EcoreFactory . eINSTANCE ;
5 EPackage pkg = fact . createEPackage ();
6 EClass person = fact . createEClass ( pkg );
7 EClass professor = fact . createEClass ( pkg );
8 EClass student = fact . createEClass ( pkg );
9 EAttribute attr1 = fact . createEAttribute (
10 " name ", String .class , professor );
11 EAttribute attr2 = fact . createEAttribute (
12 " name ", String .class , student );
13 professor . setSuperClass ( person );
14 student . setSuperClass ( person );
15
16
17
assertTrue ( person . getAttributes (). size () ==0) ;
PullUpRefactoring refac = new
      </p>
      <p>PullUpRefactoring ( pkg );
refac . execute ();
assertTrue ( person . getAttributes (). size () ==1) ;
assertTrue ( person . getAttributes (). size () ==0) ;
PullUpRefactoring refac = new</p>
      <p>PullUpRefactoring ( pkg );
refac . execute ();
assertTrue ( person . getAttributes (). size () ==1) ;</p>
      <p>This approach has two advantages: Test model and code are maintained at
the same place, eliminating the need for context and tool switching. Since the
input model is speci ed textually, it can be easily di ed and merged, facilitating
collaboration. However, the easy tractability of the code comes at a price: The
speci cation does not re ect the graph structure of the input model. Developers
have to reconstruct the graph in their minds, adding a level of complexity to the
understanding process and increasing maintenance e ort and time.</p>
      <p>External visual speci cation. Fig. 2 shows an equivalent unit test where
the test model, created using a visual editor, is loaded from the le system.</p>
      <p>This solution has two bene ts: The input model is speci ed visually, and
the test code remains clean and simple. On the downside, to understand and
maintain tests, developers are forced to switch between input models and tests.
Furthermore, the absence of the actual test model in this presentation re ects
the situation collaborating developers might nd themselves in: The committing
developer might have used an incompatible version of the visual tool, or have
forgotten to include the test model in the commit. From our own experience,
we report on another serious drawback: To achieve a good test coverage, it is
reasonable to reuse test models by copying and modifying them. In EMF, this is
a complicated process: Models and their layout information are distributed over
several les, using hard-coded references that have to be adjusted manually.</p>
      <p>MUTANT. Fig. 3 exempli es test speci cation using the proposed
approach. The test model is provided in the Javadoc accompanying the test method,
using a custom @InputModel parameter. In the employed syntax, boxes indicate
classes. The generalization relation is indicated by arrows: The character A
resembles a closed arrowhead. We provide a model compiler to parse such annotations
and derive models, making them accessible through a dedicated API, invoked in
line 18. To specify output models, the parameter @OutputModel can be used.
assertTrue ( person . getAttributes () . size () ==0) ;
PullUpRefactoring refac = new</p>
      <p>PullUpRefactoring ( pkg );
refac . execute () ;
assertTrue ( person . getAttributes () . size () ==1) ;</p>
      <p>Fig. 3. Specifying a test model using ASCII-art.</p>
      <p>The outlined solution combines the advantages of both previous solutions
without su ering from any of their drawbacks: It establishes locality and use of
text-based collaboration tools while maintaining an intuitive, graphical layout,
indicating the layout of the known graphical model notation.
3</p>
    </sec>
    <sec id="sec-3">
      <title>Challenges and Vision</title>
      <p>In this section, we outline the full vision of the proposed approach, highlighting
its strengths, challenges, and strategies to tackle these challenges.</p>
      <p>Editing. An important bene t of ASCII-art over non-textual graphical
representations is that it can be created, edited and viewed using any text editor.
However, not all text editors are recommendable for all of these tasks.
Depending on the editor at hand, the editing process can be cumbersome: For instance,
moving a box horizontally may require to add whitespace in successive lines.</p>
      <p>Instead, our approach targets state-of-the-art code IDEs. These IDEs come
with powerful text editors: Eclipse, IntelliJ and Visual Studio provide dedicated
modes allowing to manipulate successive lines by a single keystroke.2 Capabilities
to add, insert or remove characters in a column-wise fashion and to select or
manipulate boxes facilitate ASCII-art editing noticeably. To accommodate larger
editing steps, we propose the use of specialized text editors, providing convenient
features such as box drawing and freehand erasers.3 For viewing and minor edits,
the IDE code editor remains the designated tool { considerably reducing the need
for context switching imposed by processes involving graphical editors.</p>
      <p>Collaboration. We base our approach on the claim that employing
ASCIIart enables the use of the mature collaboration tools found in present-day IDEs.
More speci cally, we maintain that the existing line-based di and merge tools
are su cient in most cases. Yet, we identify two caveats:</p>
      <p>First, text di erencing considers just the syntax of the involved models and is
oblivious to their semantics. As a consequence, syntactically di erent models are
reported as di erent, even if they are semantically equivalent. This is analogous
to code di s, where two semantically equivalent lines of code may be highlighted
as di erent. Second, as the only problematic case for merging, we identify merge
con icts concerning the same line of code, which have to be resolved by hand {
again, a situation that is accepted in source code editing.</p>
      <p>Scalability. The proposed idea is particularly suited for the creation of unit
tests since the models involved in unit testing tend to be relatively small: Unit
tests usually represent edge cases re ecting the core of a critical scenario.
However, particular edge cases may demand large models. To address these cases,
we must account for the inherent limitations of text-based notations: Zooming
is not available. Space may be limited to 80 or 100 characters per line.4
2 Eclipse: block selection mode, IntelliJ and Visual Studio: column mode.
3 e.g. http://ascii ow.com/, http://www.jave.de/,</p>
      <p>http://emacswiki.org/emacs/ArtistMode. Retrieved on 2015-08-31.
4 The example model in Fig. 3 stretches over 33 characters of horizontal dimension.</p>
      <p>
        In order to address the space limitation, we provide adjustments that help to
increase notational compactness. To compact multiple objects of the same type,
nodes can carry a multiplicity, indicated by the character n. To compact multiple
links of the same type, edges can be multi-edges, i.e., have multiple source or
targets. To remove visual clutter in models with many edges { a potential
obstacle to developer performance [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] {, we introduce abbreviated edges, a concept
inspired by net labels in ECAD software5. The example model in Fig. 4 shows
a school with ten teachers, nine of them named Mary, one named Ed.
+------------+
| :School |#--{teachers}--[c]
+------------+
+----------------+
| :Teacher [n=9] |
|----------------|
| name = "Mary" |&lt;---[c]
+----------------+
      </p>
      <p>+-------------+
[c]---&gt;| :Teacher |
|-------------|
| name = "Ed" |
+-------------+</p>
      <p>
        In the future, we aim to empirically investigate the scalability of the proposed
approach, including the e ect of these mitigation strategies. In any case, it might
be argued that the advantage of unlimited space and zooming in graphical tools
is debatable in the rst place: It has been observed that diagrams exceeding a
certain size can present an obstacle rather than an aid to comprehension [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ].
      </p>
      <p>Scope. To make the approach broadly applicable in various application
domains, we aim to provide support for di erent modeling languages. All modeling
languages can be supported by considering their abstract syntax { a
representation based on boxes and arrows, exempli ed in Fig. 4. Still, developers may prefer
the known concrete syntax (CS) notations. The example in Fig. 3 presents a
CSbased notation for class models. To support extensibility for arbitrary languages,
we propose a framework approach, allowing customization for new languages by
de ning visual tokens and their mapping to the underlying meta-model.</p>
      <p>Syntax errors. In present-day visual and textual editors, developers are
supported by syntax checks, allowing them to discover speci cation errors early,
during editing rather than at runtime. Feedback on syntax errors is part of our
basic approach: Its central component, a model compiler, is able to return speci c
error messages in case that syntax errors are found. These error messages are
forwarded to the IDE by means of the build script invoking the compiler.</p>
      <p>Conversion. It is desirable to enable an easy transition between external
speci cations and the proposed notation. Sources of external speci cation may
include regular models in custom layout formats, PowerPoint and Visio
documents, and even hand-drawn sketches photographed using smartphone cameras.
5 e.g., KiCad, http://tinyurl.com/kicad-labels/. Retrieved on 2015-08-31.</p>
      <p>
        As a promising approach to address this sophisticated task, we aim to use an
ASCII-art generation heuristics that accounts for line structures found inside an
input graphic [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. Postprocessing is required to ensure that valid instances of
the proposed syntax are created. Furthermore, if the existing test models were
generated automatically, they might not have a layout in the rst place or be too
large for a visualization. To support them, we intend to apply state-of-the-art
layouting [
        <xref ref-type="bibr" rid="ref12 ref13">12, 13</xref>
        ] and splitting tools [14{16].
4
      </p>
    </sec>
    <sec id="sec-4">
      <title>Implementation Prototype</title>
      <p>We provide a prototypical implementation for the proposed approach. The main
component of the implementation is a model compiler that can be plugged into
any given IDE by adding an entry to the build con guration or script. During
compilation of annotated test classes, the compiler parses the contained
ASCIIart annotations to create models which are made available to the test framework
by means of a dedicated API. The implementation and instructions for plugging
it into Eclipse are found at https://github.com/frieger/mutant-ascii.</p>
      <p>We support class models through a dedicated concrete syntax and arbitrary
modeling languages through abstract syntax. The parser rst identi es boxes and
extracts contained information on names and types. Then, it identi es
arrowheads, following the adjacent edges until a box or abbreviated edge label is hit.
It detects and follows remaining abbreviated edges, connecting those with
identical labels and converting multi-edges to multiple single edges. The information
collected on objects and their relations serves as input to a model builder.</p>
      <p>We initially planned to use Java annotations for specifying test models, which
proved infeasible since multi-line String literals are not supported in Java.
Instead, as shown in Fig. 3, we embed models in Javadoc. Conceptually, Javadoc
is a suited place: The input and output of the code under test are documented.
5
5.1</p>
    </sec>
    <sec id="sec-5">
      <title>Related Work</title>
      <sec id="sec-5-1">
        <title>Model-Driven Testing</title>
        <p>
          The proposed approach can be considered as a novel incarnation of model-driven
testing (MDT). MDT places models as key artifacts in testing. In earlier MDT
approaches, the aim was to derive test models using abstract speci cations such
as coverage criteria [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ], dedicated pro les [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ], and visual contracts [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ]. While
automated generation of test cases is a desirable and well-studied goal [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ], the
trade-o is a signi cant initial cost in adopting the associated methods and tools.
From an enterprise perspective, this poses a considerable risk, notably when one
takes into account that the approaches are not tailored to all relevant tasks:
For instance, the approaches require to specify behavior using rules or sequence
diagrams, focusing on changes of object structures and neglecting algorithmic
functionality such as graph routing. Speci cations are translated to plain test
cases that may expose the indicated drawbacks.
        </p>
        <p>Unlike previous approaches to MDT that focus on the generation of test
models, the new approach takes an agile stance, allowing rapid test model creation:
Developers specify test models directly, using a notation designed for easy reuse
and collaboration. This allows focusing on the intuitive process of identifying
edge cases. To our knowledge, our approach is the rst to represent models in a
dedicated notation to facilitate testing. To still reap the bene ts of the existing
MDT approaches, we aim to provide converters for the derived test models.
5.2</p>
      </sec>
      <sec id="sec-5-2">
        <title>ASCII-art Notations in Software Engineering</title>
        <p>
          Several software engineering problems have been tackled using ASCII-art.
TextTest [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ] is a tool for graphical user interface (GUI) testing based on the
capturereplay paradigm: Developers interact with the GUI under test. After each
interaction, a GUI snapshot is saved using ASCII-art, enabling automated regression
tests. This approach is complementary to ours: Capture-replay is only
available for GUIs, while our approach targets at the broad class of functionality
tests that involve models. Furthermore, documenting each interaction leads to
many text artifacts, not promoting locality and easy reuse. Another
complementary approach [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ] uses an ASCII-based model notation for code generation.
The authors mention converters from models to ASCII-art and back; however,
they do not explicate their realization strategy. They consider class models. In
[
          <xref ref-type="bibr" rid="ref23">23</xref>
          ], diagram parsing is used to recover grammars for existing programming
languages from reference manuals. The authors discuss an interesting solution based
on attributed multiset grammars [
          <xref ref-type="bibr" rid="ref24">24</xref>
          ]. [
          <xref ref-type="bibr" rid="ref25">25</xref>
          ] proposes a context-free grammar for
ASCII-art tables as found in network protocol RFCs.
5.3
        </p>
      </sec>
      <sec id="sec-5-3">
        <title>Visualizations in Textual IDEs</title>
        <p>
          The lack of visual expressiveness associated with textual notations has motivated
work on visualization in code IDEs. The JetBrains MPS language workbench [
          <xref ref-type="bibr" rid="ref26">26</xref>
          ]
supports a form of integrated textual and visual editing: Language developers can
de ne custom box-and-arrow type diagram views that are embedded into source
code editors. Such embedded views mitigate several of the problems of purely
visual or textual editing, such as comprehension e ort and context switching.
        </p>
        <p>On the downside, they only facilitate the editing process. Di ng and merging
models remains a challenge. Moreover, this approach is coupled to a speci c IDE,
which raises multiple problems: Developers are forced to use this IDE, which is
undesirable if a particular preferred IDE exists in their domain. Besides, as in
any new and experimental IDE, the embedded editors may show some of the
issues reported for graphical tools. Finally, speci c IDEs come with an increased
business risk: It is not guaranteed that support is continued in the future. In
contrast, our approach o ers a drop-in solution designed to support arbitrary
IDEs and their mature versioning and collaboration tools. To combine the
benets of both approaches, we consider customizing MPS to use its embedded views
as front-end editors for ASCII-art model representations.</p>
        <p>
          mbeddr [
          <xref ref-type="bibr" rid="ref27">27</xref>
          ], an extension of JetBrains MPS targeted at embedded software
development, provides built-in visualizations for state machines. The Xtext
language workbench [
          <xref ref-type="bibr" rid="ref28">28</xref>
          ] allows to visualize instances of textual DSLs using the
ZEST visualization library [
          <xref ref-type="bibr" rid="ref29">29</xref>
          ]. Both approaches provide read-only
visualizations, while the embedded views in MPS are also editable.
5.4
        </p>
      </sec>
      <sec id="sec-5-4">
        <title>Tool Reuse</title>
        <p>
          Our premise of using production-ready tools rather than experimental ones
designed for speci c purposes is inspired by recent work on usability-oriented MDE
tools. The Visual Model Transformation Language (VMTL) [
          <xref ref-type="bibr" rid="ref30">30</xref>
          ] allows to specify
model transformations using regular model editors. Similar to the new approach,
VMTL uses annotations to enable the reuse of existing technology: In VMTL,
models are annotated to specify transformation rules. In this work, test code is
annotated to specify test models. However, while VMTL allows to reuse model
editors, the current work re ects our experience that these editors are not
wellsuited for test model creation { an issue we avoid by using textual IDEs.
6
        </p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>Conclusion and Future Work</title>
      <p>Tests are of paramount importance in software engineering. We target the
challenge of model-driven unit testing: Instead of using external editors to view and
edit test models, we embed the models in the Javadoc comments accompanying
the test cases. The approach is text-based and does not modify the programming
language's syntax, allowing to use existing editing, versioning, and collaboration
tools. The text-based visual syntax is designed to resemble the well-known
graphical notations while allowing to reduce visual clutter. As in visual tools, model
elements are aligned freely, supporting comprehension through spatial clues.</p>
      <p>We address a set of challenges and solution ideas that we aim to investigate
more deeply in the future. These challenges include the development of
converters from external speci cations to ASCII-art, the development of a framework to
support multiple modeling languages through their concrete syntax, and the
empirical investigation of the approach's scalability and general usefulness. Tackling
these challenges will lead to a set of domain- and IDE-independent tools enabling
developers to write tests more easily, combining the bene ts of Test-Driven
Development and Model-Driven Engineering.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>J.</given-names>
            <surname>Whittle</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Hutchinson</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.</surname>
          </string-name>
          <article-title>Rounce eld</article-title>
          , H. Burden, and
          <string-name>
            <given-names>R.</given-names>
            <surname>Heldal</surname>
          </string-name>
          , \
          <article-title>Industrial Adoption of Model-Driven Engineering: Are the Tools Really the Problem?" in Model-Driven Engineering Languages and Systems</article-title>
          . Springer,
          <year>2013</year>
          , pp.
          <volume>1</volume>
          {
          <fpage>17</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>D.</given-names>
            <surname>Batory</surname>
          </string-name>
          , E. Latimer, and
          <string-name>
            <given-names>M.</given-names>
            <surname>Azanza</surname>
          </string-name>
          , \
          <article-title>Teaching Model Driven Engineering from a Relational Database Perspective,"</article-title>
          <source>in Model-Driven Engineering Languages and Systems</source>
          . Springer,
          <year>2013</year>
          , pp.
          <volume>121</volume>
          {
          <fpage>137</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>M.</given-names>
            <surname>Cherubini</surname>
          </string-name>
          , G. Venolia,
          <string-name>
            <surname>R.</surname>
          </string-name>
          <article-title>DeLine, and</article-title>
          <string-name>
            <given-names>A. J.</given-names>
            <surname>Ko</surname>
          </string-name>
          , \
          <article-title>Let's Go to the Whiteboard: How and Why Software Developers use Drawings," in Conf. on Human Factors in Computing Systems</article-title>
          . ACM,
          <year>2007</year>
          , pp.
          <volume>557</volume>
          {
          <fpage>566</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>L.</given-names>
            <surname>Zhu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Chen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Malyar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Das</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P.</given-names>
            <surname>McCann</surname>
          </string-name>
          , \RFC 7545:
          <article-title>Protocol to Access White-Space (</article-title>
          <string-name>
            <surname>PAWS) Databases</surname>
          </string-name>
          ,"
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>G. J.</given-names>
            <surname>Myers</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Sandler</surname>
          </string-name>
          , and
          <string-name>
            <given-names>T.</given-names>
            <surname>Badgett</surname>
          </string-name>
          ,
          <source>The Art of Software Testing</source>
          . John Wiley &amp; Sons,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6. H. Storrle, \
          <article-title>On the Impact of Layout Quality to Understanding UML Diagrams," in Visual Lang. and Human-Centric Comp</article-title>
          . IEEE,
          <year>2011</year>
          , pp.
          <volume>135</volume>
          {
          <fpage>142</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>M.</given-names>
            <surname>Fowler</surname>
          </string-name>
          , Refactoring.
          <source>Addison Wesley</source>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>D.</given-names>
            <surname>Steinberg</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Budinsky</surname>
          </string-name>
          , E. Merks, and
          <string-name>
            <given-names>M.</given-names>
            <surname>Paternostro</surname>
          </string-name>
          , EMF: Eclipse Modeling Framework.
          <source>Pearson Education</source>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>D.</given-names>
            <surname>Whitney</surname>
          </string-name>
          and
          <string-name>
            <given-names>D. M.</given-names>
            <surname>Levi</surname>
          </string-name>
          , \
          <article-title>Visual Crowding: A Fundamental Limit on Conscious Perception and Object Recognition," Trends in cognitive sciences</article-title>
          , vol.
          <volume>15</volume>
          , no.
          <issue>4</issue>
          , pp.
          <volume>160</volume>
          {
          <issue>168</issue>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10. H. Storrle, \
          <article-title>On the Impact of Layout Quality to Understanding UML Diagrams: Size Matters,"</article-title>
          <source>in Model-Driven Engineering Languages and Systems</source>
          . Springer,
          <year>2014</year>
          , pp.
          <volume>518</volume>
          {
          <fpage>534</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <given-names>X.</given-names>
            <surname>Xu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Zhang</surname>
          </string-name>
          , and T.-T. Wong, \
          <article-title>Structure-based ASCII art,"</article-title>
          <source>ACM Transactions on Graphics (TOG)</source>
          , vol.
          <volume>29</volume>
          , no.
          <issue>4</issue>
          , pp. (
          <volume>52</volume>
          ) 1{
          <fpage>10</fpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12. M.
          <article-title>Sponemann, Graph Layout Support for Model-Driven Engineering</article-title>
          .
          <source>PhD diss</source>
          .,
          <string-name>
            <surname>Uni</surname>
            <given-names>Kiel</given-names>
          </string-name>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <given-names>S.</given-names>
            <surname>Maier</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Minas</surname>
          </string-name>
          , \
          <article-title>A Pattern-based Approach for Initial Diagram Layout," Electronic Communications of the EASST</article-title>
          , vol.
          <volume>58</volume>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14. D. Struber, M. Selter, and G. Taentzer, \
          <article-title>Tool support for clustering large metamodels,"</article-title>
          <source>in Proceedings of the Workshop on Scalability in Model Driven Engineering. ACM</source>
          ,
          <year>2013</year>
          , p.
          <fpage>7</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15. D. Struber, J. Rubin,
          <string-name>
            <given-names>G.</given-names>
            <surname>Taentzer</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Chechik</surname>
          </string-name>
          , \
          <article-title>Splitting Models using Information Retrieval and Model Crawling Techniques," Fundamental Approaches to Software Engineering</article-title>
          , pp.
          <volume>47</volume>
          {
          <issue>62</issue>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16. D. Struber, M. Lukaszczyk, and G. Taentzer, \
          <article-title>Tool Support for Model Splitting using Information Retrieval and Model Crawling Techniques,"</article-title>
          <source>in Proceedings of the Workshop on Scalability in Model Driven Engineering. ACM</source>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <given-names>R.</given-names>
            <surname>Heckel</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Lohmann</surname>
          </string-name>
          , \
          <article-title>Towards Model-Driven Testing,"</article-title>
          <source>Electronic Notes in Theoretical Computer Science</source>
          , vol.
          <volume>82</volume>
          , no.
          <issue>6</issue>
          , pp.
          <volume>33</volume>
          {
          <issue>43</issue>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <given-names>P.</given-names>
            <surname>Baker</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z. R.</given-names>
            <surname>Dai</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Grabowski</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Schieferdecker</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C.</given-names>
            <surname>Williams</surname>
          </string-name>
          ,
          <article-title>Model-Driven Testing: Using the UML Testing Pro le</article-title>
          . Springer,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19. G. Engels, B. Guldali, and M. Lohmann, \
          <article-title>Towards Model-Driven Unit Testing,"</article-title>
          <source>in Models in Software Engineering</source>
          . Springer,
          <year>2007</year>
          , pp.
          <volume>182</volume>
          {
          <fpage>192</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <given-names>S.</given-names>
            <surname>Anand</surname>
          </string-name>
          , E. Burke,
          <string-name>
            <given-names>T.</given-names>
            <surname>Chen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Clark</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Cohen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Grieskamp</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Harman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Harrold</surname>
          </string-name>
          , and P.
          <source>McMinn, \An Orchestrated Survey of Methodologies for Automated Software Test Case Generation," Journal of Systems and Software</source>
          , vol.
          <volume>86</volume>
          , no.
          <issue>8</issue>
          , pp.
          <year>1978</year>
          {
          <year>2001</year>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21. E. Bache and G. Bache, \
          <article-title>Speci cation by Example with GUI Tests-How Could That Work?" in Agile Processes in Software Engineering</article-title>
          and
          <string-name>
            <given-names>Extreme</given-names>
            <surname>Programming</surname>
          </string-name>
          . Springer,
          <year>2014</year>
          , pp.
          <volume>320</volume>
          {
          <fpage>326</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22. H.
          <string-name>
            <surname>Washizaki</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Akimoto</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Hasebe</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Kubo</surname>
            , and
            <given-names>Y.</given-names>
          </string-name>
          <string-name>
            <surname>Fukazawa</surname>
          </string-name>
          , \
          <article-title>TCD: A text-based UML class diagram notation and its model converters,"</article-title>
          <source>in Advances in Software Engineering</source>
          . Springer,
          <year>2010</year>
          , pp.
          <volume>296</volume>
          {
          <fpage>302</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23. R. Lammel and C. Verhoef, \
          <article-title>Semi-automatic Grammar Recovery,"</article-title>
          <source>Software: Practice and Experience</source>
          , vol.
          <volume>31</volume>
          , no.
          <issue>15</issue>
          , pp.
          <volume>1395</volume>
          {
          <issue>1438</issue>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24. S.
          <article-title>-</article-title>
          K. Chang, \
          <article-title>Picture Processing Grammar and its Applications,"</article-title>
          <source>Information Sciences</source>
          , vol.
          <volume>3</volume>
          , no.
          <issue>2</issue>
          , pp.
          <volume>121</volume>
          {
          <issue>148</issue>
          ,
          <year>1971</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <given-names>A.</given-names>
            <surname>Kay</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Ingalls</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Ohshima</surname>
          </string-name>
          ,
          <string-name>
            <surname>I.</surname>
          </string-name>
          <article-title>Piumarta, and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Raab</surname>
          </string-name>
          , \
          <article-title>Steps toward the Reinvention of Programming,"</article-title>
          <source>Technical report, National Science Foundation, Tech. Rep.</source>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26.
          <string-name>
            <given-names>M.</given-names>
            <surname>Voelter</surname>
          </string-name>
          and
          <string-name>
            <given-names>K.</given-names>
            <surname>Solomatov</surname>
          </string-name>
          , \
          <article-title>Language modularization and composition with projectional language workbenches illustrated with MPS,"</article-title>
          <source>Software Language Engineering</source>
          , vol.
          <volume>16</volume>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          27.
          <string-name>
            <surname>M. Voelter</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Ratiu</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Schaetz</surname>
            , and
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Kolb</surname>
          </string-name>
          , \
          <article-title>mbeddr: an Extensible C-based Programming Language and IDE for Embedded Systems," in C. on Systems, Progr., and</article-title>
          <string-name>
            <surname>Apps. ACM</surname>
          </string-name>
          ,
          <year>2012</year>
          , pp.
          <volume>121</volume>
          {
          <fpage>140</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          28.
          <string-name>
            <given-names>M.</given-names>
            <surname>Eysholdt</surname>
          </string-name>
          and
          <string-name>
            <given-names>H.</given-names>
            <surname>Behrens</surname>
          </string-name>
          , \
          <article-title>Xtext: implement your language faster than the quick and dirty way," in ACM International Conf</article-title>
          .
          <article-title>Object-Oriented Programming Systems Languages and Applications Companion</article-title>
          . ACM,
          <year>2010</year>
          , pp.
          <volume>307</volume>
          {
          <fpage>309</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          29.
          <string-name>
            <surname>R. I. Bull</surname>
          </string-name>
          , Model Driven Visualization:
          <article-title>Towards a Model Driven Engineering Approach for Information Visualization</article-title>
          .
          <source>PhD diss</source>
          ., University of Victoria,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          30.
          <string-name>
            <given-names>V.</given-names>
            <surname>Acretoaie</surname>
          </string-name>
          , H. Storrle, and D. Struber, \
          <article-title>Transparent Model Transformation: Turning Your Favourite Model Editor into a Transformation Tool,"</article-title>
          <source>in International Conf. on Model Transformations</source>
          . Springer,
          <year>2015</year>
          , pp.
          <volume>121</volume>
          {
          <fpage>130</fpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>