<!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>Tool Support for Model Splitting using Information Retrieval and Model Crawling Techniques</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Daniel G. Strüber</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Michael Lukaszczyk</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Gabriele Taentzer</string-name>
          <email>taentzer@informatik.uni-marburg.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Philipps-University Marburg Department for Mathematics and Computer Science Hans-Meerwein-Str.</institution>
          ,
          <addr-line>35032 Marburg</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>To facilitate the collaboration in large-scale modeling scenarios, it is sometimes advisable to split a model into a set of sub-models that can be maintained and analyzed independently. Existing automated approaches to model splitting, however, su er from insu cient consideration of the stakeholder's intentions and add a signi cant overhead for comprehending the created decompositions. We present a new tool that aims to create more informed model decompositions by leveraging existing domain knowledge in the form of textual descriptions. From the user perspective, the tool comprises a textual editor for assembling the descriptions and a visual editor for reviewing and post-processing the generated splitting suggestions. We preliminarily evaluate the tool in a case study involving a real-life model.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Earlier automated approaches to model splitting, such as
those presented in [
        <xref ref-type="bibr" rid="ref12 ref7">7, 12</xref>
        ], suggest techniques based on
analysis of strongly connected components or clusters, not
accounting for the semantics of the split and the intention
for performing it. To address this shortcoming, a recent
apBigMDE’14 July 24, 2014. York, UK
Copyright c 2014 for the individual papers by the papers’ authors.
Copying permitted for private and academic purposes. This volume is published
and copyrighted by its editors.
proach proposed in [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] aims to create model decompositions
from existing domain knowledge in the form of textual
descriptions: The user provides a set of descriptive texts, each
describing one sub-model in the target decomposition. From
this input, a splitting suggestion is created using a combined
information retrieval and topology analysis approach. The
descriptions can be assembled from available requirement or
documentation artifacts. However, the input set is not
required to be complete: In fact, the approach can support the
user in incrementally discovering sub-model descriptions.
The contribution of this paper is a tool and supporting
semiautomated user process making the outlined splitting
technique available to modelers. We have tested it on large
metamodels in the magnitude of 100 to 250 classi ers. As design
goals, we target usability and extensibility for the splitting
of instances of arbitrary meta-models. The remainder of this
paper is divided as follows: In Section 2, we brie y illustrate
the underlying technique. The user process is shown in
Section 3. In Sections 4 and 5, we elaborate on the design goals
and implementation. In Section 6, we present a case study
preliminarily evaluating the proposed tool and user process.
We discuss related work and conclude in Sections 7 and 8.
      </p>
    </sec>
    <sec id="sec-2">
      <title>2. BACKGROUND</title>
      <p>
        In this section, we give a brief overview on model splitting
as perfomed by our tool. A detailed account is found in [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ].
The technique, outlined in Fig. 1, takes three input
parameters: The model to be split { in the proposed tool, an EMF
meta-model {, a set of textual descriptions of each target
sub-model, and a completeness condition. The completeness
condition speci es whether the set of sub-model descriptions
is complete or partial. The technique creates a set of
mappings from model elements to sub-models, calling it splitting
suggestion. In the case of a complete input set, each element
      </p>
      <p>
        Model Splitting
is assigned to one sub-model. In the partial case, some
elements may remain unassigned. The user can inspect the
unassigned elements to discover additional sub-models and
describe them, incrementally creating a complete split.
Information retrieval. To obtain an initial mapping
between the model and the textual sub-model descriptions, we
apply an established statistical technique from information
retrieval research: Latent Static Analysis (LSA) [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. For a
query (e.g., a sub-model description) over a xed set of
documents (e.g., a set of model element names), LSA scores the
relevance of each document to the input query. To compute
the scores, queries and documents are represented as vectors
and the similarity between the query vector and each
document vector is computed { intuitively speaking, the degree in
that they point in the same direction. Mathematically, this
is calculated in terms of the cosine, yielding a score between
0 and 1. The vector representation is based on a metrics
called term frequency-inverse document frequency (td{idf ).
Model crawling. To create the splitting suggestion, we use
the model elements ranked highest by LSA as seeds. Starting
from these seeds, we crawl the model exhaustively to score
each model element's relevance for each target sub-model.
Afterwards, each model element is assigned to the sub-model
it was deemed most relevant for, ties being broken randomly.
Model crawling extends an approach proposed in [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. The
underlying intuition is that of a breadth- rst search: We rst
visit and score the seeds' neighbours, then the neighbours'
neighbours, et cetera. Scores of newly accessed elements are
calculated based on the scores of previously scored elements.
The scoring formula accounts for topological properties, such
as the connectivity of newly accessed elements, and
semantic implications of the respective relationship types (e.g., in
meta-models, containment suggests strong connectivity).
      </p>
    </sec>
    <sec id="sec-3">
      <title>3. USER PROCESS</title>
      <p>
        The user process, shown in Fig. 2, comprises two manual
tasks (2 and 4) and three automated tasks (1, 3 and 5). The
manual tasks rely on human intelligence and domain
knowledge. They are facilitated by textual and visual tool support.
The automated tasks are triggered by context menu entries.
(1) Start the splitting process. Using a context menu
entry on the meta-model to be split, the user triggers the
creation of a splitting description le. The splitting
description is automatically opened in a textual editor, shown in
Fig. 3. By default, the le contains a small usage example.
(2) De ne the splitting description. Using the editor,
the user assembles the descriptions of the target sub-models.
For a comfortable user experience, the editor provides
syntax highlighting, static validation, and folding capabilities.
The textual editor is also used for con guration: Adding the
keyword partially and de ning a numerical threshold, the
user can set the completeness condition in order to obtain
a partial split. Furthermore, the user can ne-tune
internal parameters used during the execution of the underlying
technique. In Fig. 3, the weights assigned to di erent
relationship types and the alpha exponent that shapes the
scoring function are modi ed. However, parameter tuning is an
optional feature: In [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], we identi ed a default combination
of parameter values that, when applied to six independent
class models, achieved an average accuracy of 80% in
comparison to hand-tailored decompositions.
(3) Derive a splitting suggestion. Using a context menu
entry on the splitting description le, the user triggers the
automated creation of a splitting suggestion. A splitting
suggestion comprises a set of assignment entries, each
holding a link to a model element, a link to a target sub-model,
and the relevance score. To compute the splitting
suggestion, the technique outlined in Section 2 is applied. The
splitting suggestion is persisted to the le system.
(4) Review and post-process the suggestion. To
obtain visual access to the splitting suggestion, the user can
now open the model in a model editor. The user activates
a dedicated layer called model splitting. This action
triggers the color-coding of model elements corresponding to the
splitting suggestion, shown in Fig. 4. As further visual aid,
the assignment of a model element is also displayed textually
above its name. For post-processing, the user may want to
change some assignments for model elements that were not
assigned to the proper target sub-model. This is done using
the palette tool entry Assign. When the user reassigns a
model element, the respective entry in the splitting
suggestion is automatically updated. It is worth mentioning that
if the user is not satis ed with the results, he or she may
iterate Steps 2 to 4 as often as required, tweaking the
descriptions and parameter settings. One important scenario
for this is the discovery of new sub-models: The user can
set the completeness condition to partial in Step 2 which
leads to some model elements not being assigned in Step 3.
The user inspects these elements in Step 4 to create new
sub-model descriptions.
(5) Perform splitting. Given that the user is satis ed
with the post-processed splitting suggestion, the actual
splitting can be triggered by the user. The user may choose from
two context menu entries: One for splitting the input model
into multiple physical resources, the other for splitting it
into sub-packages within the same resource.
      </p>
    </sec>
    <sec id="sec-4">
      <title>4. DESIGN GOALS</title>
      <p>
        In this section, we shortly discuss design goals that were
fundamental in the design of the proposed tool.
Extensibility. The underlying technique possesses an
innate extensibility that should be carried over to the end-user.
It is applicable to models conforming to arbitrary
metamodels, given that they ful ll two properties: (i) Model
elements must have meaningful textual descriptions that a
splitting description can be matched against. (ii) Except
for trivial reconciliation, constraints imposed by the
metamodel may not be broken in arbitrary sub-models. We
address this design goal by using a framework approach: To
customize the tool for a new meta-model, the user subclasses
a set of base classes. For instance, to de ne how input
models are converted to a generic graph representation used
during crawling, they subclass a class named GraphBuilder.
Usability. The design of the tool is informed by Cognitive
Dimensions, a framework for the human-centered design of
languages and tools [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]: Providing an editable visual layer
on top of a standard editor is a major step towards visibility
{ visual accessibility of elements and their relations { and
away from viscosity { resistance to change. Closeness of
mapping is implemented by a domain-speci c language for
splitting descriptions with custom editor support.
Premature commitment is inhibited and progressive evaluation is
promoted by providing an incremental process that allows
tweaking with input values while receiving rapid feedback.
For traceability, our le-based approach to user input allows
to keep the splitting description and use it later, e.g., for
documentation purposes.
      </p>
    </sec>
    <sec id="sec-5">
      <title>5. IMPLEMENTATION</title>
      <p>
        Eclipse Modeling Framework [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] is the de-facto reference
implementation of the EMOF modeling standard.
Consequently, it was natural for us to design the new tool as an
extension for EMF. As such, it can be plugged into an
existing Eclipse installation without further e ort. For the
splitting description editor, we leveraged the powerful code
generation facilities of Xtext [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. We de ned a simple
domainspeci c language for splitting descriptions. The editor with
its syntax highlighting and code completion features was
fully generated by Xtext. For customization, we added a
couple of checks (e.g., forbidden characters, uniqueness of
sub-model names). The visual splitting layer is an
extension of EcoreTools 2.0 [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] which is based on the Sirius [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]
framework and, as of June 2014, determined to be part of
the new Eclipse release Luna 4.4. We used this new
technology as we bene t from its support for multiple viewpoints,
allowing us to tailor a splitting viewpoint to our needs.
      </p>
    </sec>
    <sec id="sec-6">
      <title>6. CASE STUDY</title>
      <p>In a case study, we investigated two research questions: (RQ1)
How e cient is the proposed tool in comparison to manual
splitting? (RQ2) Is the proposed tool usable?</p>
    </sec>
    <sec id="sec-7">
      <title>6.1 Subjects and Task</title>
      <p>
        Model: Extended Joomla-Speci c Language (eJSL) is a
metamodel for web applications based on the Joomla content
management system [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. It comprises 116 classes, 39
enumerations, 176 enumerated attributes, 41 generalizations, 145
containment references, and 47 plain references. eJSL was
designed by a doctoral student a liated with our research
group we shall refer to as X. X has signi cant experience in
modeling language design. Previous to our work, X
manually split eJSL into ve sub-models, calling them Pages,
Content, Menu, User, and Con guration. According to his
account, he invested a signi cant e ort that spanned, among
other duties, over the course of two weeks. He printed the
diagram on paper, cut and reassembled fragments.
Afterwards, he assigned colors to model elements in the diagram
editor and layouted them by hand.
      </p>
      <p>Task: We instructed another software engineer, referred to
as Y, to decompose eJSL using the tool. Y is a doctoral
student with signi cant experience in modeling language
design, but unrelated to eJSL and model splitting. We asked
X to provide the required domain knowledge in the form
of descriptive texts brie y explaining his intuitions for the
hand-tailored decomposition. The descriptions, each
consisting of 85 words on average, were handed to Y in a text
document. The task given to Y was to create a
decomposition that faithfully re ects the separation of concerns
proposed by the textual descriptions. We brie y instructed Y in
the usage of the tool based on the example shown in Fig. 3
and 4 and encouraged him to make use of post-processing.</p>
    </sec>
    <sec id="sec-8">
      <title>6.2 Results</title>
      <p>E ciency. To approach (RQ1), we de ne e cient as
requiring a minimal amount of time to create an accurate
result. Positing the hand-tailored split as perfectly accurate,
we measured accuracy of the tool-supported split in terms
of average F-measure, considering both precision and recall.
Accuracy was determined before and after post-processing:
During review of the initial splitting suggestion S1, Y
reassigned ve model elements to create the nal suggestion S2.
From S1 to S2, precision increased from 82% to 86% and
recall from 84% to 88%, determining a rise in F-measure
from 83% to 87%. It took Y ve minutes to create S1.
The reviewing and post-processing that brought the 4% gain
took further 55 minutes. Consequently, in terms of
extrapolated overall amount of time, tool-supported splitting
outperformed manual splitting.</p>
      <p>Usability. To approach (RQ2), we conducted an informal
interview. Y perceived the user process as comprehensible,
the description editor as easy to use and the color-coding as
useful. An activity found crucial during post-processing was
examining the direct neighbours of a model element. Y
perceived this task as cumbersome: He often had to navigate
for edge targets outside the visible scope. For future work,
we aim at dedicated support for this activity: On selection,
neighbourhood information should be instantly available in
a tool-tip displaying the names of adjacent elements. One
further suggestion by Y, the color-coding of edges, directly
made it into the current version. Y also invested
considerable time in layouting, i.e., aligning the color-coded model
elements into groups { an activity outside of the scope of this
work. It is an interesting challenge to devise a layouting
algorithm that aligns the sub-models of a model as clusters.
Inspection of the false positives and negatives in S2 revealed
that 50% of them concerned enumerations, the other 50%
concerning classes. Y pointed out that enumerations were
hard to relate to classes visually as they are not connected
by edges. We consider representing enumerated attributes
as edges rather than class members in future work.</p>
    </sec>
    <sec id="sec-9">
      <title>6.3 Validity</title>
      <p>Threats to external validity { or generalizability { are the
size of the input model and the size of the test group. It
remains a question left to future work whether our tool scales
for meta-models of signi cantly more elements. However,
an analysis of publicly available meta-models1 indicates the
input model size to be typical for large meta-models
demanding an adequate decomposition. The test group size
indeed precludes claims for generality, but allows to provide
tentative evidence for critical design weaknesses and
benets. A potential threat to internal validity { or freeness from
systematic error { is the ow of information from the control
group to the test group. To mitigate this threat, we
ascertained in consultation with X that the textual descriptions
in vagueness and level of detail represented the intuitions for
splitting before the manual split was executed.</p>
    </sec>
    <sec id="sec-10">
      <title>7. RELATED WORK</title>
      <p>
        In this section, we discuss related tooling. A survey of work
related to the underlying approach is provided in [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ].
In the Democles model composer [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], the user can iterate
the lattice of all permitted decompositions by unfolding
entries in a tree-like wizard. Graphical presentation of a split
is provided by an add-on graph visualization library.
However, this visualization is read-only and not integrated with
a modeling editor, ruling out the re-assigning of model
elements for post-processing as supported by the new tool.
The splitting tool proposed in [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] makes classic clustering
algorithms available for EMF models. It provides a wizard
for the selection and customization of algorithms. However,
except for numerical input parameters, the user cannot
inuence the generated results. The tool provides a tree-based
editor for the reassigning of model elements to target
submodels, but does not present any visual feedback.
      </p>
    </sec>
    <sec id="sec-11">
      <title>8. CONCLUSION</title>
      <p>In this paper, we present a tool for the splitting of large
meta-models. The tool provides a textual editor that allows
de ning the desired target sub-models by means of textual
descriptions. It generates a splitting suggestion that can be
reviewed and post-processed in a visual editor. Based on the
splitting suggestion, the input model can be automatically
split either into multiple resources or packages within one
resource. The tool is open source and can be found, along with
the models mentioned in this paper, at
https://www.unimarburg.de/fb12/swt/forschung/software. In the future,
we plan to apply the technique on other models than class
models, deeming it necessary to account for constraints.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>Democles</surname>
          </string-name>
          . http://democles.lassy.uni.lu/, May
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          <source>[2] Ecoretools 2</source>
          .0. http://www.eclipse.org/ecoretools/, May
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Joomla</surname>
          </string-name>
          . http://www.joomla.org/, May
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>Sirius</surname>
          </string-name>
          . http://www.eclipse.org/sirius/, May
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <surname>Xtext</surname>
          </string-name>
          . http://www.eclipse.org/xtext/, May
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>T. R. G.</given-names>
            <surname>Green</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Petre</surname>
          </string-name>
          .
          <article-title>Usability analysis of visual programming environments: a cognitive dimensions framework</article-title>
          .
          <source>Journal of Visual Languages &amp; Computing</source>
          ,
          <volume>7</volume>
          (
          <issue>2</issue>
          ):
          <volume>131</volume>
          {
          <fpage>174</fpage>
          ,
          <year>1996</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>P.</given-names>
            <surname>Kelsen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Q.</given-names>
            <surname>Ma</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C.</given-names>
            <surname>Glodt</surname>
          </string-name>
          .
          <article-title>Models within models: Taming model complexity using the sub-model lattice</article-title>
          . Fundamental Approaches to Software Engineering, pages
          <volume>171</volume>
          {
          <fpage>185</fpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>T. K.</given-names>
            <surname>Landauer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P. W.</given-names>
            <surname>Foltz</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Laham</surname>
          </string-name>
          .
          <article-title>An Introduction to Latent Semantic Analysis</article-title>
          .
          <source>Discourse Processes</source>
          , (
          <volume>25</volume>
          ):
          <volume>259</volume>
          {
          <fpage>284</fpage>
          ,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>M. P.</given-names>
            <surname>Robillard</surname>
          </string-name>
          .
          <article-title>Automatic Generation of Suggestions for Program Investigation</article-title>
          .
          <source>In Proc. of ESEC/FSE-13</source>
          , pages
          <fpage>11</fpage>
          {
          <fpage>20</fpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <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:
          <article-title>Eclipse Modeling Framework</article-title>
          .
          <source>Pearson Education</source>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>D.</given-names>
            <surname>Stru</surname>
          </string-name>
          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</article-title>
          . Fundamental Approaches to Software Engineering, pages
          <volume>47</volume>
          {
          <fpage>62</fpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>D.</given-names>
            <surname>Stru</surname>
          </string-name>
          ber, M. Selter, and
          <string-name>
            <given-names>G.</given-names>
            <surname>Taentzer</surname>
          </string-name>
          .
          <article-title>Tool support for clustering large meta-models</article-title>
          .
          <source>In Proceedings of the Workshop on Scalability in Model Driven Engineering, page 7. ACM</source>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>