<!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>Scribbler: From Collaborative Sketching to Formal Domain Specific Models and Back Again</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Martin Vogel</string-name>
          <email>m.vogel@tu-clausthal.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Tim Warnecke</string-name>
          <email>tim.warnecke@tu-clausthal.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Christian Bartelt</string-name>
          <email>christian.bartelt@tu-clausthal.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>University of Clausthal Department for Computer Science - Software Systems Engineering Julius-Albert-Str.</institution>
          <addr-line>4 38678 Clausthal-Zellerfeld -</addr-line>
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Most of the time developers make extensive use of software tools in a software development process to support them in their day-to-day work. One of the first and most important phases of this process is the design phase, but within this phase intuitive and easy to use tools, which support the creative but also collaborative workflow (parallel/distributed), are missing. At the moment, developers use whiteboards to express their ideas in team meetings. Subsequently a coworker takes a picture of the sketches and remodels them with a modeling tool. That procedure is very inconvenient, error-prone and hindering in a creative modeling cycle. For overcoming this ineffective process this paper shows a new software tool using digital whiteboards to transform free hand sketches in formal models and back again during modeling in a distributed team. The transformation is completely independent from a pre-defined modeling language. The tool provides also a training mode to learn new graphical syntax elements and map these to formal metamodel entities. Video: https://www.youtube.com/watch?v=0i3M9djPrRM [Mirror: http://sse-world.de/index.php?cID=3611]</p>
      </abstract>
      <kwd-group>
        <kwd />
        <kwd>Sketch Recognition</kwd>
        <kwd>Model Based Software Development</kwd>
        <kwd>Collaborative Software Engineering</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction and Motivation</title>
      <p>
        Software development is a creative and distributed team process. The early and
creative design phase is very important for the success of a software project.
Normally software designers do not use modeling tools, like for example MagicDraw UML
[
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], in such an early phase because of their inconvenient handling. Modeling tools are
made for precise model design, but not for creative sketching. Because of that
software designers are using whiteboards in team meetings to visualize and communicate
their ideas within the group [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. Nevertheless after a meeting one of the designers has
to transform the sketches in formal models using the previously rejected modeling
tools. This transformation is error-prone because the designer tries e.g. to optimize the
diagram or forgets some elements. This can lead to a situation where the new formal
diagram cannot be recognized anymore by the other team members because of it
changed appearance. Another widely known problem in this domain describes that
everybody has to be present to such a creative meeting. One possible solution is to use
Screen Sharing Software to share some kind of drawing or modeling software and
additionally utilize a telephone conference system. An issue with this attempt is that
two or more software applications are used together and none of them is in particular
conceptualized for software designers. In the last few years, several research
initiatives were started with the topic, intuitive modeling respectively model sketching. In
[
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] a recognition mechanism for sketched model elements was presented which uses a
similarity calculation between drawing traces based on the Levenshtein distance [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]
and is also a basis for the tool implementation explained in this paper. Some
innovative research results about sketch recognition in the area of requirements modeling
were described in [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. Some further recognition techniques based on vector
comparison between sketches and GEF/GMF model elements were published in [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] and [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ].
In comparison to these approaches the tool presented in this paper named Scribbler
does not need a GEF/GMF specification of concrete language syntax and it also uses
the sketched trace for recognition of model elements.
2
      </p>
    </sec>
    <sec id="sec-2">
      <title>Scribbler: Architecture and Implementation</title>
      <p>In sum Scribbler is an extensible drawing tool. It provides services, which allows
developers create fast new pluggable components for their requirements.</p>
      <p>A screenshot of the tool is shown in Fig. 1. At the top of it (1) all current loaded
plugins are represented with an icon. In the center (2) is the canvas and last but not
least the toolbar is located at the bottom (3), which consists of four colors, an edit
button and a rubber.</p>
      <p>
        The most important object in Scribbler is the SketchObject[SO]. Each sketch has a
unique [SO] that contains the x- and y-coordinates, the convex hull and the mouse
movements which were necessary to draw the sketch. For the convex hull the
QuickHull algorithm is used [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. Thus the convex hull is needed because each sketch
can be modified afterwards. Additionally the mouse movements for each sketch are
recorded. This is necessary to recognize handwriting and more complex objects.
These three parts of information are atomic for each sketch in Scribbler. Scribbler’s core
provides an extensibility mechanism which enables developers to create their own
plugins for a new domain like learning, recognizing and transforming sketches. The
core fires events for the most basic operations, like draw, edit and save and put these
into a queue. Each plugin has an own thread, which sequentially reads this queue and
executes the stored actions asynchronously. Thus the plugins are completely
decoupled from the core. Plugins can communicate with each other over previously
registered interfaces. For collaboration Scribbler uses another concept as typical screen
sharing tools. Only mouse movements/events and sketch coordinates instead of whole
images are transferred. Thus, devices with a small bandwidth and different screen
resolutions have no drawbacks. Another benefit is that the server and Scribbler save
the history of each session. So the genesis of the sketch model remains for the
following meetings.
3
      </p>
    </sec>
    <sec id="sec-3">
      <title>Scribbler: Sketching Formal Domain Specific Models</title>
      <p>The tool Scribbler presented in this paper tries to accomplish the previously
described problems modeling in distributed teams, transforming of sketches in formal
model elements and back and recording the development process of a sketched model
in the early phases of a software development process.
3.1</p>
      <p>Sketch Recognition of Domain Specific Models</p>
      <p>
        Recognizing sketches is a difficult task especially if model elements with different
graphical representations of arbitrary domain specific languages are used. Scribbler
solves this problem with help of a modified algorithm used in [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. Similar to this
approach Scribbler uses a grid, encodes stroke properties into numbers and compares
sketches with help of the Levenshtein distance. But additionally Scribbler uses two
different sequences of numbers and scaling to probably improve the recognition rate.
Fig. 2 shows how both sequences are constructed. First a drawn sketch is scaled up to
a previously defined size and with the help of a grid the intersections between it and
the sketch are calculated. Later on the intersections are represented by the number
corresponding to the field in the grid where it was discovered. Looking at the circle
example in Fig. 2 step 1 the algorithm begins at field 1 and finds two intersections
with the grid and this leads to the sequence {1 1}. Continuing to field 2 a new
intersection is found (previously found intersections are ignored) and the sequence is
extended to {1 1 2} and so on until the last field which results in {1 1 2 3 4 5 8 9 12 13
14 15}.
      </p>
      <p>As seen in step 1 a circle and a square could be the same sequence so another
sequence is introduced in step 2 based on the inclines of the strokes at the intersections,
e.g. is a stroke horizontal it is mapped to number 3. Subsequently the Levenshtein
algorithm compares in a first step the first sequence generated from the intersections
with entries from a knowledgebase (described in the following paragraph). If two or
more similar entries are found, like in the example, the second sequence is compared.</p>
      <p>The previously described algorithm can’t be used without a knowledgebase which
contains a list of previously learned sketches. Hence Scribbler has an own dialog for
training new sketches for different domains and saving them in a file with their
corresponding sequences. Thereby, an extensible knowledgebase for each domain can be
created. After learning a series of sketches the next step is to transform recognized
sketches in formal model elements. In preparation for this the DSL-metamodel (based
on Ecore) and its graphical representation (GMFGraph-file) are needed. Once the
knowledgebase and both model files are loaded the mapping from sketches to Ecore
elements have to be done. Afterwards the whole hand drawn diagram can be exported
to a single GMF-file. Another functionality of Scribbler is that users at different
locations are able to draw simultaneously on the same canvas. This is possible because of
an integrated client-server-approach which allows it to start immediately a new
server. The drawn sketches are transferred as soon as possible so every user is aware
about the actions of the other participants. It should be noted that the knowledgebase
is maintained by every single client, because only drawing actions are transferred.
4</p>
    </sec>
    <sec id="sec-4">
      <title>Evaluation</title>
      <p>During the term of the project three industry partners from different domains used
Scribbler for their daily work in creative meetings with their customers and in
architectural meetings for about four weeks. Every team had an experimental setup
composed of a digital whiteboard and tablet pcs. Furthermore they got a catalogue of
questions to answer to evaluate Scribbler. The three teams - altogether 14 participants
- used the Scribbler only for collaborative work, especially the history viewer/server
session to comprehend their decision from the last meeting. The teams assessed this
functionality as valuable and it is very helpful for their daily work. Furthermore they
used the learning environment to insert elements for their own domain languages.
Scribbler was able to learn all of these elements and the recognition rate was very
good. Concerning the usability and the training period every participant rated the
Scribbler as good.</p>
    </sec>
    <sec id="sec-5">
      <title>Conclusion and Acknowledgements</title>
      <p>Ensuing from the requirements regarding an intuitive modeling infrastructure that
does not hinder the creative engineering process, the sketching/modeling platform
Scribbler was implemented. Scribbler allows a distributed, parallel (collaborative)
sketching of engineering models on digital whiteboards, the transformation of those
sketches in (semi-)formal domain specific models and back again, an easy and
interactive learning of new domain specific syntax elements and a recording/playback of
the modeling/sketching history. The realized use cases and the functionality are
explained in this paper. For future work the recording of further context information
during the sketching modeling process (e.g. voices of modelers within the history of
model evolution etc.) is planned.</p>
      <p>This research work was supported by “German Federal Ministry of Education and
Research” (BMBF) within the Project “KoMo – From Sketch to Model: Cooperative
Modeling with Domain Specific Languages” (2011-2013).
6</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1] MagicDraw, “NoMagic - MagicDraw,”
          <year>2013</year>
          . [Online]. Available: www.nomagic.com/products/magicdraw.html. [Accessed:
          <fpage>05</fpage>
          -Jul-2013].
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <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</article-title>
          ,”
          <source>in Proceedings of the SIGCHI Conference on Human Factors in Computing Systems</source>
          , New York, NY, USA,
          <year>2007</year>
          , pp.
          <fpage>557</fpage>
          -
          <lpage>566</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>U. B.</given-names>
            <surname>Sangiorgi</surname>
          </string-name>
          and
          <string-name>
            <given-names>S. D. J.</given-names>
            <surname>Barbosa</surname>
          </string-name>
          , “SKETCH: Modeling Using Freehand Drawing in Eclipse Graphical Editors,”
          <source>in Proc. FlexiTools Workshop</source>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>V. I. Levenshtein</surname>
          </string-name>
          , “
          <article-title>Binary Codes Capable of Correcting Deletions, Insertions</article-title>
          and Reversals,” in
          <source>Soviet Physics Doklady</source>
          ,
          <year>1966</year>
          , vol.
          <volume>10</volume>
          , pp.
          <fpage>707</fpage>
          -
          <lpage>710</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>D.</given-names>
            <surname>Wüest</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Seyff</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Glinz</surname>
          </string-name>
          , “
          <article-title>FlexiSketch: A Mobile Sketching Tool for Software Modeling,” in Mobile Computing, Applications,</article-title>
          and Services, vol.
          <volume>110</volume>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Uhler</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Mehta</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J. L.</given-names>
            <surname>Wong</surname>
          </string-name>
          , Eds. Berlin, Heidelberg: Springer Berlin Heidelberg,
          <year>2013</year>
          , pp.
          <fpage>225</fpage>
          -
          <lpage>244</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>A.</given-names>
            <surname>Scharf</surname>
          </string-name>
          and
          <string-name>
            <given-names>T.</given-names>
            <surname>Amma</surname>
          </string-name>
          , “
          <article-title>Dynamic Injection of Sketching Features into</article-title>
          GEF Based Diagram Editors,”
          <year>2013</year>
          , pp.
          <fpage>822</fpage>
          -
          <lpage>831</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>A.</given-names>
            <surname>Scharf</surname>
          </string-name>
          , “
          <article-title>Scribble - A Framework for Integrating Intelligent Input Methods into Graphical Diagram Editors,” in Software Engineering 2013 Workshopband (inkl</article-title>
          .
          <source>Doktorandensymposium)</source>
          ,
          <year>2013</year>
          , pp.
          <fpage>591</fpage>
          -
          <lpage>596</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>C. B.</given-names>
            <surname>Barber</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. P.</given-names>
            <surname>Dobkin</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H.</given-names>
            <surname>Huhdanpaa</surname>
          </string-name>
          , “
          <article-title>The Quickhull algorithm for convex hulls</article-title>
          ,
          <source>” ACM Trans. Math. Softw.</source>
          , vol.
          <volume>22</volume>
          , no.
          <issue>4</issue>
          , pp.
          <fpage>469</fpage>
          -
          <lpage>483</lpage>
          ,
          <year>1996</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>A.</given-names>
            <surname>Coyette</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Schimke</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Vanderdonckt</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C.</given-names>
            <surname>Vielhauer</surname>
          </string-name>
          , “
          <article-title>Trainable sketch recognizer for graphical user interface design,” in Proceedings of the 11th IFIP TC 13 international conference on Human-computer interaction</article-title>
          , Berlin, Heidelberg,
          <year>2007</year>
          , pp.
          <fpage>124</fpage>
          -
          <lpage>135</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>