<!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>Challenges for reuse in collaborative modeling environments</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Omar Alam</string-name>
          <email>omaralam@trentu.ca</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jonathan Corley</string-name>
          <email>jcorley@westga.edu</email>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Constantin Masson and</string-name>
          <email>constantin.masson,syriani@iro. umontreal.ca</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Model-driven engineering, Collaborative computing, Reusable So-</string-name>
          <xref ref-type="aff" rid="aff3">3</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Eugene Syriani, University of Montreal</institution>
          ,
          <addr-line>Montreal, QC</addr-line>
          ,
          <country country="CA">Canada</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Trent University</institution>
          ,
          <addr-line>Peterborough, ON</addr-line>
          ,
          <country country="CA">Canada</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>University of West Georgia</institution>
          ,
          <addr-line>Carrollton, GA</addr-line>
          ,
          <country country="US">USA</country>
        </aff>
        <aff id="aff3">
          <label>3</label>
          <institution>ware</institution>
          ,
          <addr-line>Reuse models.</addr-line>
        </aff>
      </contrib-group>
      <abstract>
        <p>Soware systems are not developed by individuals, and have become increasingly collaborative endeavors between stakeholders with complimentary expertise. Model-driven engineering (MDE) facilitates such collaboration by enabling developers to work on models (oen domain-specic) rather than application code directly. Collaborative modeling environments help promote the integration of models. e issue of model reuse is crucial in a collaborative environment to foster the practice of modeling. Relying on a version control system as the sole means of reuse limits the usefulness of collaborative environments. is article discusses a set of challenges that must be addressed in a collaborative environment to support model reuse. Our investigation of the state of practice in existing environments shows that they do not provide sucient support for reuse yet.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>INTRODUCTION
e development of complex soware-intensive systems requires
stakeholders from diverse domains to work in a coordinated manner
on dierent aspects of the system. Oen times, developers do not
just communicate and exchange information among themselves,
but also reuse each other’s work. Various tools have emerged that
serve dierent kinds of collaboration. For example, a version control
system (VCS) is an oine collaboration tool that allows developers
to reuse each other’s code. A collaborator who uses a VCS does not
have real-time updates on other collaborators’ work. Other tools
oer real-time collaboration, by making each collaborator aware
of other’s activity through dierent mediums of communication.
Online editing tools (e.g., Google Docs and Microso Online Oce)
allow a collaborator to visualize the changes by others in real-time.
Regardless of the specic collaboration tool, reuse of each other’s
work is a major outcome of collaboration.</p>
      <p>
        e success of reuse in soware development facilitates
collaboration and coordination during soware development activities, as
exemplied by class libraries, services, and components. A
developer can reuse the artifacts developed by other developers through
the reuse interfaces of these artifacts. Modern soware developers
typically use VCS, such as Git repositories [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], to collaborate and
track development activities throughout their projects. ese
systems allow developers to organize and distribute the development
eort among themselves, keep track of issues and bugs, and
schedule the delivery of releases. Together with VCS and repositories,
advances in reuse allowed soware development activities to be
more organized and collaborative. For example, a group of
developers can use a Git repository to collaborate in coding the classes of
a soware program and another developer can reuse these coded
classes. However, the concern of reuse in collaborative modeling
has not been a focus of study yet.
      </p>
      <p>
        In this paper, we present a set of challenges that needs be
addressed in a framework that enables reuse in collaborative modeling.
ough there are emerging collaborative modeling tools, support
for reuse in these tools is limited [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]. Commercial tools such as
Rational Rhapsody [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], Visual Paradigm [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], MagicDraw [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], and
Enterprise Architect [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] are modeling tools that are used in industry
and oer collaborative support. Some MDE technologies, such as
Eclipse CDO [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] and EMFStore [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], provide some support for VCS.
Rocco et al. [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] and Franzago et. al. [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ] provide an overview of
these tools and discuss their potentials and shortcomings. ey
acknowledge that support for reuse and discovering reusable artifacts
is limited, increasing the upfront development cost for many
modelbased projects. erefore, the potential benets of collaborative
modeling in these approaches is limited. Existing collaborative
environments do not provide sucient support for reuse, and we outline
the challenges that we have identied as signicant to addressing
this concern. e paper lists some well-known collaborative
environments and tools and investigates how they address the identied
challenges.
      </p>
      <p>In the remainder of this paper, we rst discuss the potential
for reuse in collaborative modeling environments along with an
example scenario exploring cases of reuse in Section 2. In Section 3,
we discuss challenges for reuse in these environments. In
Section 4, we examine the support for reuse in some popular modeling
environments. Finally, we conclude in Section 5.
2
2.1</p>
    </sec>
    <sec id="sec-2">
      <title>POTENTIAL FOR REUSE IN</title>
    </sec>
    <sec id="sec-3">
      <title>COLLABORATIVE ENVIRONMENTS</title>
    </sec>
    <sec id="sec-4">
      <title>Model-driven engineering for collaboration</title>
      <p>
        Model-driven engineering (MDE) [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] helps in reducing the gap
between heterogeneous domains using principles of separation of
concerns, automatic generation, and domain-specic languages
(DSL). In MDE, stakeholders work on models in order to design,
transform, simulate, and analyze systems. MDE advocates using
the most appropriate modeling formalism that expresses the
relevant properties of the system under development at each level of
abstraction, for a given stakeholder group. A formalism used at the
requirement level for scientists is dierent from the formalism used
at the design level for developers. rough model transformations,
models of higher abstraction levels are integrated with lower-level
models that are closer to the solution space, such as algorithms,
data structures, networking, etc. is process continues until an
executable model (which can be code) is generated [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ].
      </p>
      <p>
        MDE is a potential solution to help develop systems
collaboratively [
        <xref ref-type="bibr" rid="ref31">31</xref>
        ]. Stakeholders from diverse backgrounds who work
on the system under development using dierent notations can
collaborate and reuse each other’s work. Furthermore, in a complex
system, models can quickly grow in size, deeming the eorts of a
single modeler insucient to maintain and evolve the system. In
such projects, collaboration is a necessity to cope with the growing
size of models. erefore, there is a need for collaborative platforms
that allow teams of stakeholders with varying expertise to work
together to produce a coherent and complete system [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]. In
particular, there is a need for collaborative environments that support
dierent modeling formalisms and allow stakeholders to reuse each
other’s models.
2.2
      </p>
    </sec>
    <sec id="sec-5">
      <title>Reuse in Collaborative Environments</title>
      <p>In general programming language (GPL) environments, reuse of
libraries and components is common practice. Most programs are
created by mixing several existing libraries ranging from standard
libraries to custom modules created in-house. Powerful
collaborative platforms, such as Github, and specic language features,
such as polymorphism, facilitate code reuse in those environments.
Most soware developers rely on VCS, libraries, or repositories for
collaboration. Unfortunately, this is not the norm in MDE projects.</p>
      <p>
        ough some new environments are supporting more complex
sharing systems (e.g., GenMyModel [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]), ease and eciency of
reuse is still far from the programming equivalent. For example,
VCS is mostly used to track and collaborate in the development of
non-reusable models [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]. Unlike VCS repositories for GPL
environments, model reuse in repositories through VCS is still a challenge
in MDE [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ]. Enforcing consistent reuse is necessary to cope with
the growing complexity of soware systems. In MDE, modelers
typically create models from scratch because modeling languages
oer limited support to reuse existing models and modeling
environments tend not to ship with any reusable models. For example,
when a modeler wants to implement a new DSL, it is common to
build it from scratch instead of reusing existing language artifacts
[
        <xref ref-type="bibr" rid="ref22">22</xref>
        ]. Lack of support for reuse limits the potential of modeling
environments in MDE, as checking out, commiing, and updating
models that cannot be reused will not be very useful for
collaborative environments.
      </p>
      <p>
        When collaborating, modelers may work on the same artifact,
dierent parts of the same artifact or distinct artifacts that are part
of the whole system [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]. Modelers may need to reuse each other’s
models, or reuse models that are external to the project, i.e.,
imported from a dierent project. Support for reuse in collaborative
MDE can be facilitated with reuse mechanisms in modeling
languages and their environments. In this paper, we focus only on
environmental concerns and support, describing challenges and
summarizing the current state of practice of collaborative MDE
environments. Supporting reuse in modeling languages is critical
to supporting reuse of models but is not the within the scope of
this paper.
2.3
      </p>
    </sec>
    <sec id="sec-6">
      <title>Modeling Reusable Components of a</title>
    </sec>
    <sec id="sec-7">
      <title>Modern Vehicle</title>
      <p>To beer understand how modelers collaborate to reuse each other’s
model, we provide an example of reusing components of a modern
vehicle. We refer to this example to explain the challenges for
supporting reuse in Section 3. Fig. 1 illustrates an example of
collaboration in a vehicle manufacturing project. Initially, two
modelers (Modeler 1 and 2) were working on the project. Modeler
1 developed the self-parking feature (version 1) to support parallel
parking, while Modeler2 worked on a model of the car that uses that
feature. At some later time, Modelers 1 and 3 collaborated directly
on extending the self-parking feature to support perpendicular
parking as well. Modeler 2 used version 2 of self-parking in Car 2,
but only for parallel parking support. Eventually, Modeler 4 wanted
to reuse all of the self-parking feature version 2 in Car 3. All models
(components and cars) are assumed to be stored in some available
repository.</p>
      <p>
        As stated in Section 2.2, we focus on environmental support
for reuse in collaborative MDE, e.g., through storage or search
mechanisms. It is certainly possible that the modeling language
used when developing the self-parking component has support for
reuse, e.g., through reuse interfaces [
        <xref ref-type="bibr" rid="ref25 ref30">25, 30</xref>
        ]. However, such reuse
mechanisms are outside the scope of this paper.
3
      </p>
    </sec>
    <sec id="sec-8">
      <title>CHALLENGES AND SUPPORT FOR REUSE</title>
      <p>
        As we consider the potential of collaborative environments, we rst
explore the various challenges to reuse and examine how
collaborative environments might be able to address or mitigate these
challenges. We identied these challenges based on our
experiences in building and using collaborative modeling environments
[
        <xref ref-type="bibr" rid="ref14 ref32">14, 32</xref>
        ]. is list also builds on the requirements for collaborative
environments presented in [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ].
3.1
      </p>
    </sec>
    <sec id="sec-9">
      <title>Supporting Communication</title>
      <p>As we seek to support collaborative development environments,
a primary consideration is communication between developers.
We consider here two types of communication, direct and indirect
communication between developers who reuse the same models.</p>
      <p>
        3.1.1 Direct Communication. e modeling environment can
support direct communication from one developer to another in two
ways. First, the environment can provide synchronous (e.g., text,
voice, or video chat options) or asynchronous (e.g., messaging
systems) communication facilities. ese tools have obvious benets,
but are not essential to be provided within the environment, as
external solutions are plentiful (e.g., Slack [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]). However, a more
essential concern within the environment is the concept of
authorship. Environments, such as VCS provide facilities to track
the contributors to a project. is enables other developers to
identify those who are actively working on a system or who have
contributed in the past. In other words, the subject of discussion
(i.e., the artifact) is dened and traceable in discussion threads. If
      </p>
      <sec id="sec-9-1">
        <title>Self</title>
      </sec>
      <sec id="sec-9-2">
        <title>ParkingV1</title>
      </sec>
      <sec id="sec-9-3">
        <title>Self</title>
      </sec>
      <sec id="sec-9-4">
        <title>ParkingV2</title>
        <p>Car1
Car2
Car3</p>
        <sec id="sec-9-4-1">
          <title>Modeler2</title>
        </sec>
        <sec id="sec-9-4-2">
          <title>Modeler4</title>
          <p>modelers use an external communication solution such as Slack,
it will be dicult to point out which artifact is being discussed,
generating confusion among collaborating modelers. Collaborative
environments could capture similar authorship information
providing the facility to identify the contributions of other collaborators;
i.e., track the authors of a given model as well as there contributions
over time. ereby, authorship knowledge within the system can
be used to guide collaborators direct communication. Considering
the example from Section 2.3, Modeler 3 might identify the existing
Self Parking model, but require adding the additional parking
feature for their own use cases. If the environment supports tracking
authorship, Modeler 3 could then identify Modeler 1 as the most
appropriate individual to contact, and request a direct collaboration
to update the Self Parking model with the new features.</p>
          <p>3.1.2 Indirect Communication. Indirect communication
encompasses the practices of documentation including the use of
comments and external sources, such as wikis. is communication
informs future modelers of basic concerns, such as structure and
use of the soware artifacts. It can also convey less direct details,
such as intent and rationale for implementation decisions. is
information is essential to guide new collaborators through the
more mundane details of how the system is used. Although it may
not be essential for modelers experienced with the systems, the
documentation of these basic concerns facilitates new
collaborators, and eliminates oen non-trivial barriers to reuse. A soware
system designed in Java would not be considered complete without
javadocs describing the various interfaces. Yet, a model might be
oered without any concern for describing the use and purposes
of that model. us, the design decisions made when constructing
the models is completely lost, and new collaborators may violate
these decisions when seeking to extend and reuse existing models.
Consider the example scenario detailed in Section 2.3. As Modelers
2 and 4 are working on the car, they must understand the usage
and limitations of the self-parking model being reused. In the
future, Modeler2 might even work on evolving the Car1 model to
an updated version of that vehicle. Having the documentation of
the two versions will help support the decision to either use V2 of
self-parking or stay with V1. If the V2 of the self-parking model
assumes more accurate control of the braking system than V1, it may
not be an option for some vehicles. However, this information could
be very dicult to identify without some sort of documentation
declaring it.</p>
          <p>e use of comments in general-purpose languages such as Java
has proved to be a great benet. is practice could easily be
supported within collaborative modeling environments. Although
comments are important components of a specic modeling language,
we think they should be supported generically at the environment
level. Much like a view can be maintained separate from the
underlying modeled elements, a comment could be linked to those
elements without needing to disrupt the focus and intent of the
modeling formalism. e value of the environment providing this
generic concern is particularly noteworthy when considering the
prevalence of domain-specic languages (DSLs). Support at the
environment level, would de-facto oer support to all DSLs within
the environment.
them. e collaboration scenario in Fig. 1 would be possible when
Modeler1 can store the self-parking component in a repository that
has VCS facilities, to allow Modeler 3 to collaborate and introduce
the second version for that component aer making her updates.
3.2</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-10">
      <title>Versioning of Models</title>
      <p>VCS are tools that trace all changes for a system and have
facilities for managing the history of these changes. Ideally, all basic
VCS features available in a GPL environment may be present in
collaborative MDE environments.</p>
      <p>
        Branching is widely used in VCS and requires support for branch
merging. e strong semantics of models add a layer of complexity:
a simple textual comparison of their serialized format (in XMI) may
be insucient in order to detect all conicts. Instead, syntactic and
semantic similarity tests would require a more complex process to
detect conicts. In GPL environments, projects oen reuse a specic
version of an external dependency. Since dependencies themselves
make use of version control, we may have a direct link to the specic
version of the dependency. For instance, a CMake build system can
download and compile a specic tag from a branch of the required
dependency. ough tools like GenMyModel or WebGME [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ]
introduce model repositories with VCS support, linking to specic
versions is not currently possible. Linking to an external model is
not enough. A system to select specic version, tag, and branch is
required. Consider Fig. 1: Car 1 uses self-parking version 1, which
has now evolved to version 2. Without a proper tag system and
support for versioning, Car 1 would be automatically updated to use
the self-parking version 2 feature with unforeseen consequences
from the forced shi. In this way, indirect collaborators reusing
components from an ongoing project can manage the migration to
newer versions of their dependencies on their own timetable.
      </p>
      <p>
        GPL developers nd the ability to reuse the same language
elements across a wide variety of development environments, but
similar interoperability has long been a source of frustration for
modelers. Modern support for XMI formats presents a step in
the right direction. However, when considering the prominence
of domain-specic models, complete support for tool
interoperability is a daunting challenge at best. However, modern trends in
developing new languages that compile to a common base (e.g.,
CoffeeScript [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]) could present a way forward.
3.3
      </p>
    </sec>
    <sec id="sec-11">
      <title>Model Repositories</title>
      <p>Nowadays, soware developers extensively use repositories, such
as Github, to collaborate and track development activities
throughout their projects. Coupled with version control facilities, these
systems allow developers to organize and distribute the
development eort among themselves, keep track of issues and bugs, and
schedule the delivery of releases, as well as reuse each other’s
code. To facilitate collaboration between modelers, a repository
should provide a storage facility that is equipped with VCS features
(e.g., commit - update versioned history, browse - manually explore
models). Modelers can use these features to reuse each other’s
models, document the changes made to the models, and schedule
their activities. When working with models in a project, the storage
facility should use the meta-information about the models to
organize them and to record the relationships that may exist between
3.4</p>
    </sec>
    <sec id="sec-12">
      <title>Searching for Models</title>
      <p>One of the powerful features of VCS is the ability to search artifacts
in the repository. e search activity identies relevant models
based on their metadata: VCS allows searching elements based on
their change metadata. e search feature is important for
collaboration and reuse of model elements. In Fig. 1, Modelers 2 and
4 would be able to search and nd the component based on its
meta-information and reuse it. In addition to VCS, Integrated
Development Environments (IDEs) allow programmers to search for
code snippets in large code bases or libraries. Collaborative
modeling environments will benet from advanced search capabilities
of programming IDEs to reuse from potentially large number of
projects. Searching can be performed at dierent levels of
granularity: searching for whole models, parts of the model, actions
performed on models, authors of model manipulations. Searching
can be performed by browsing through a dynamic list of artifacts
or by querying the repository. It is important that the result of the
search is provided quickly for eective collaboration.
3.5</p>
      <p>
        Granularity of Model Reuse
ere are dierent scenarios that motivate the reuse of a model
[
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]. e most trivial reuse mechanism is copying a model from
one project to another. In this case, the copied model and the
original evolve separately which may lead to inconsistency. A
model can be imported to a local project as a reference. In this
case, the imported model is a proxy of the original and changes
in the laer are transposed to the former. When reusing a model,
it is possible to reuse the whole model, as a black box, in which
case the reusing entity communicates with a dedicated interface of
the reused model. For example, in Fig. 1, Car 1 reuses self-parking
version 1 as a whole.
      </p>
      <p>
        Alternatively, in a white box approach, one model may reuse
specic content from another model, as it is the case with Car 2
and Car 3. e model can expose all elements, the data they
encapsulate, or the relationships between them. Further information
may be hidden with the use of views encapsulating parts of a model
(sub-model or aggregation) [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]. Like when reusing a library, the
dependency of a reused model must be meticulously analyzed.
3.6
      </p>
    </sec>
    <sec id="sec-13">
      <title>Relationships between Models</title>
      <p>
        To fully reap the benets of repositories, the stored models should
dene relationships among them. At the modeling language level,
models should dene interfaces that facilitate reuse. Reuse in
soware engineering is enabled by modular interfaces between
artifacts [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ]. Having an explicit model interface makes it possible
to apply proper information hiding principles [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ] by concealing
internal design details of the model from the rest of the application.
      </p>
      <p>
        Unlike programmers, modelers oen create models from scratch
due to lack of model interfaces that facilitate reuse. Popular reuse
units (e.g., code, components, and services) provide interfaces that
enable selecting/choosing the reused unit, coordinated
customization of the unit and using the customized unit in the context of
it reusing artifact. ese interfaces are important to specify what
structures and behavior the reused model provides to the reusing
model, and how to adapt reused model to the specic needs of the
reusing model [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ].
      </p>
      <p>
        Furthermore, the modeling environment should use the
relationships between models to support traceability. Modelers should be
able to trace models that are involved in their project to understand
their functionality, read their documentation, and access their
development history. Models can be traced based on the relationships
dened by the modeling language as discussed above, as well as
relationships that are dened by the environment. If there is a
modeling environment that supports multiple modeling languages,
it can dene relationships between related models that serve the
same purpose as in the case of megamodels that dene
relationships between dierent kinds of models [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]. Relationships in a
megamodel can range from input/output of model transformations,
global constraints across models, to conformance between a model
and a type model.
      </p>
      <p>For example, if a modeling environment allows modeling
requirements and design models, and the modelers want to create models
for security, they can dene traceability links between security
requirement and design models.</p>
      <p>Finally, modelers may visualize the traces and relationships,
whether they are dened by the language or by the environment.
is enables them to get the big picture of the project, visualize
changes made to related models, as well as plan and coordinate
future developments based on those changes.</p>
      <p>In Fig. 1, Modeler 3 would need traceability support to update
the self-parking component. She would need to trace back and
visualize her changes to version 1 of the component, and this trace
between the versions would be useful to Modeler 2 when moving
from one version to the next. In addition, model interfaces of the
car models are necessary to allow Modelers 2 and 4 to reuse the
self-parking component and map its elements to elements in the
car models.
4</p>
    </sec>
    <sec id="sec-14">
      <title>SUPPORT FOR REUSE IN POPULAR</title>
    </sec>
    <sec id="sec-15">
      <title>MODELING ENVIRONMENTS</title>
      <p>
        Table 1 overviews the support for reuse in 10 existing popular
collaborative modeling environments. We selected the tools based
on the set compared in [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ] and surveyed in [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]. We summarize
how each of these ten tools addresses the challenges described
previously. As mentioned earlier, we only investigate whether the
modeling environment address the challenges. It is possible that
some of the challenges are addressed at the modeling language
level, which is not the focus of this paper.
4.1
      </p>
    </sec>
    <sec id="sec-16">
      <title>Reuse dimensions</title>
      <p>We explain the categories and tags used in Table 1.</p>
      <p>Communication category describes support for
communication within the environment.</p>
      <p>Direct - environment supports direct communication (e.g.,
messaging)
Indirect - environment supports documenting the models
at some level, including documenting use, intention, and/or
authorship
None - environment provides no clear support for
communication</p>
      <p>Versioning category describes support for managing versions
of models.</p>
      <p>History - environment provides support for maintaining a
history of changes made to a model
Branch - environment provides support for managing/merging
distinct branches of a model
Tags - environment provides support for identifying
signicant versions of a model for reuse
None - environment provides no clear support for
managing versions of models</p>
      <p>Storage - environment provides support for storing models
Tracking - environment provides support for tracking
features/bugs for models
None - environment provides no clear support for storage,
retrieval, or tracking of models</p>
      <p>Search category describes support for searching models. e
tags can be any combination of the following.</p>
      <p>Browse - environment provides support to browse artifacts
ery - environment provides support to query artifacts
Models - Search is performed on whole models
Elements - Search is performed on parts of models or their
elements</p>
      <p>None - environment does not provide support for searching
Granularity category describes the granularity of model that
may be reused in the environment (this category considers only
environment support and not language level support).</p>
      <p>Model - environment provides support for reusing models
as an atomic unit
View - environment provides support for reusing views of
a model(s) as an atomic unit
Element - environment provides support for reusing an
element of a model as an atomic unit
None - environment provides no clear support for reusing
existing models, views, or elements in new models</p>
      <p>Relationships - category describes support for analyzing
relationships of models to support, for example, understanding of
existing systems or impact of proposed changes.</p>
      <p>None - there are no such relationships</p>
      <p>Yes - there is support for such relationships
4.2</p>
    </sec>
    <sec id="sec-17">
      <title>Discussion</title>
      <p>Communication: AToMPM supports direct communication via a
chat system. MDEForge and GenMyModel support indirect
communication through documentation (though not comments).
Additionally, some modeling languages support the concept of comments
within the language, but we feel this should be an environment
concern and not contained within the language.</p>
      <p>Versioning: History is usually an ordered list of changes. Tools
like WebGME, EMFStore and EMFCollab add a Git-like feature, like
commit hash for each change and a branching system with merging.
Tools, such as MetaEdit+, rely on an external VCS in the backend to
implement these features. However, history is generally used only
for error recovery inside the project (i.e., revert back to a working
version). We have not identied a tool that supports linking to an
older version of a model for reuse. GenMyModel does have a tag
system to identify a specic version, but this feature seems to be
intended only for internal use.</p>
      <p>Repository: All tools we reviewed have some form of
storage system, but some method of discovering new models (Search
in Table 1) is not always present. Tools like WebGME, EMFStore,
EMFCollab and GenMyModel oer a Github-like repository that
allows users, among others, to browse models and see other users.
Other tools, such as, OBEO and AToMPM use folder path structure.
Several environments support tracking features and bugs in models
developed within the environment.</p>
      <p>Search: MetaEdit+ and GenMyModel provide the most advanced
searching mechanism as they allow to query the repository to nd
model elements that match the query expression. e query is
based on the information provided by the metamodel (e.g., type
names or meta-language name). WebGME and Visual Paradigm
allow to browse for models, but also model elements, whereas</p>
      <p>MDEForge and AToMPM only allow the user to browse through
model le names. OBEO, CDO, EMFStore and EMFCollab do not
directly support searching, however they rely on the Eclipse IDE
for that functionality.</p>
      <p>Granularity of Reuse: AToMPM, Visual Paradigm,
GenMyModel, and OBEO provide explicit environmental support for reuse.
Visual Paradigm and GenMyModel enables linking between UML
formalisms, e.g., linking objects in sequence diagrams to classes
dened in a class diagram.</p>
      <p>AToMPM and OBEO are the only tools where specic views of a
large model can be created and reused.</p>
      <p>Relationships: Most environments could support some forms
of traceability (especially those with versioning support), but higher
level analysis (e.g., tracing dependencies to understand the impact
of proposed changes) is not clearly dened by the environments.
Furthermore, while most environments could support either
heterogeneous models (e.g., via megamodeling) or linking through
generative transformations (e.g., converting platform-independent models
to platform specic models), most environments provide lile or
no support to analyze and manage these relationships. MDEForge
is the only exception as it provides support for megamodel-based
relationships between artifacts and allows modelers to track those
relationships.
5</p>
    </sec>
    <sec id="sec-18">
      <title>CONCLUSION</title>
      <p>Building a soware system is typically a collaborative endeavour.
Dierent stakeholders, from potentially diverse domains,
coordinate with each other to fulll the goals of the soware project.
Reuse is a key facet of soware system development that increases
both productivity and maintainability, as well as reducing both
production cost and time-to-market. Increasingly, soware
practitioners rely on collaboration tools, such as Github, that allow them
to both document and manage their own work as well as nding
and reusing each other’s work.</p>
      <p>
        In MDE, developers collaborate to create, update, and analyze
models of a system under development. However, despite the
success stories in GPLs as exemplied by the proliferation of reuse
through libraries, services, and components; model reuse is a
challenge in MDE. Over a decade ago, Bran Selic stated clearly that
mature tool support is necessary to support adoption and growth
of MDE [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]. In this paper, we identied challenges facing reuse in
collaborative MDE environments and investigated the support
provided by existing environments. Our study of the state of practice
in existing environments shows that their support for reuse is not
sucient. We believe that the identied challenges in this paper
will help guide the development and improvement of modeling
tools to provide beer support for reuse. In particular, we hope the
categorization demonstrated on the 10 identied environments in
Section 4 will prove useful in analyzing MDE tools for support of
these challenges. As we look forward to the future of MDE, we see
a clear place for collaborative modeling environments as well as a
great need to support reuse in those environments.
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>Last</surname>
            <given-names>accessed: 2017. Git.</given-names>
          </string-name>
          (Last accessed:
          <year>2017</year>
          ). hps://git-scm.com/
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <surname>Last</surname>
            <given-names>accessed: 2018. CDO</given-names>
          </string-name>
          <string-name>
            <surname>Model</surname>
          </string-name>
          <article-title>Repository. (Last accessed:</article-title>
          <year>2018</year>
          ). hp://www.eclipse.org/cdo/.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Last</surname>
          </string-name>
          accessed
          <year>2018</year>
          . CoeeScript. (Last accessed
          <year>2018</year>
          ). hps://coeescript.org/.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>Last</surname>
            <given-names>accessed: 2018. EMFCollab.</given-names>
          </string-name>
          (Last accessed:
          <year>2018</year>
          ). hp://qgears.com/products/emfcollab/.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <surname>Last</surname>
            <given-names>accessed: 2018. EMFStore.</given-names>
          </string-name>
          (Last accessed:
          <year>2018</year>
          ). hp://www.eclipse.org/emfstore/.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <surname>Last</surname>
            <given-names>accessed: 2018. Enterprise</given-names>
          </string-name>
          <string-name>
            <surname>Architect</surname>
          </string-name>
          .
          <article-title>(Last accessed:</article-title>
          <year>2018</year>
          ). hp://www.sparxsystems.com/products/ea/.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <surname>Last</surname>
            <given-names>accessed 2018. GenMyModel.</given-names>
          </string-name>
          (Last accessed
          <year>2018</year>
          ). hps://www.genmymodel.com/.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <surname>Last</surname>
            <given-names>accessed: 2018. MagicDraw.</given-names>
          </string-name>
          (Last accessed:
          <year>2018</year>
          ). hps://www.nomagic.com/.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <surname>Last</surname>
            <given-names>accessed 2018. MDEForge.</given-names>
          </string-name>
          (Last accessed
          <year>2018</year>
          ). hp://www.mdeforge.org/.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>Last</surname>
            <given-names>accessed: 2018. OBEO</given-names>
          </string-name>
          <string-name>
            <surname>Designer</surname>
          </string-name>
          .
          <article-title>(Last accessed:</article-title>
          <year>2018</year>
          ). hps://www.obeodesigner.com/.
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>Last</surname>
            <given-names>accessed:</given-names>
          </string-name>
          <year>2018</year>
          .
          <article-title>Rational Rhapsody Designer Manager. (Last accessed:</article-title>
          <year>2018</year>
          ). www-
          <volume>03</volume>
          .ibm.com/soware/products/en/ibmratirhapdesimana.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>Last</surname>
            <given-names>accessed: 2018. Slack.</given-names>
          </string-name>
          (Last accessed:
          <year>2018</year>
          ). hps://slack.com/
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <surname>Last</surname>
            <given-names>accessed: 2018. Visual</given-names>
          </string-name>
          <string-name>
            <surname>Paradigm</surname>
          </string-name>
          .
          <article-title>(Last accessed:</article-title>
          <year>2018</year>
          ). hps://www.visualparadigm.com/.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>Omar</given-names>
            <surname>Alam</surname>
          </string-name>
          .
          <year>2016</year>
          .
          <article-title>Concern-Oriented Reuse: A Soware Reuse Paradigm</article-title>
          .
          <source>Ph.D. Dissertation</source>
          . McGill University.
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <surname>Omar</surname>
            <given-names>Alam</given-names>
          </string-name>
          , Jo¨rg Kienzle, and
          <string-name>
            <given-names>Gunter</given-names>
            <surname>Mussbacher</surname>
          </string-name>
          .
          <year>2013</year>
          .
          <article-title>Concern-Oriented Soware Design</article-title>
          .
          <source>In Model-Driven Engineering Languages and Systems - 16th International Conference, MODELS</source>
          <year>2013</year>
          ,
          <article-title>Miami</article-title>
          , FL, USA,
          <source>September 29 - October 4</source>
          ,
          <year>2013</year>
          . Proceedings.
          <volume>604</volume>
          -
          <fpage>621</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>Bran</given-names>
            <surname>Selic</surname>
          </string-name>
          .
          <year>2003</year>
          .
          <article-title>e Pragmatics of Model-Driven Development</article-title>
          .
          <source>IEEE Soware 20</source>
          ,
          <issue>5</issue>
          (
          <year>2003</year>
          ),
          <fpage>19</fpage>
          -
          <lpage>25</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <surname>Benoit</surname>
            <given-names>Combemale</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Julien</surname>
            <given-names>DeAntoni</given-names>
          </string-name>
          , Benoit Baudry, Robert B. France, Jean-Marc Je´ze´quel, and Je Gray.
          <year>2014</year>
          .
          <article-title>Globalizing Modeling Languages</article-title>
          .
          <source>Computer 47</source>
          ,
          <issue>6</issue>
          (
          <year>2014</year>
          ),
          <fpage>68</fpage>
          -
          <lpage>71</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <surname>Jonathan</surname>
            <given-names>Corley</given-names>
          </string-name>
          , Eugene Syriani, Huseyin Ergin, and Simon Van Mierlo.
          <year>2016</year>
          .
          <article-title>Modern Soware Engineering Methodologies for Mobile and Cloud Environments. Number 7</article-title>
          .
          <string-name>
            <given-names>IGI</given-names>
            <surname>Global</surname>
          </string-name>
          ,
          <article-title>Book section Cloud-based Multi-View Modeling Environments</article-title>
          ,
          <fpage>120</fpage>
          -
          <lpage>139</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <article-title>Juri di Rocco, Davide di Ruscio, Ludovico Iovino</article-title>
          , and
          <string-name>
            <given-names>Alfonso</given-names>
            <surname>Pierantonio</surname>
          </string-name>
          .
          <year>2015</year>
          .
          <article-title>Collaborative Repositories in Model-Driven Engineering</article-title>
          .
          <source>IEEE Soware 32</source>
          ,
          <issue>3</issue>
          (
          <year>2015</year>
          ),
          <fpage>28</fpage>
          -
          <lpage>34</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <surname>Jean-Marie Favre</surname>
          </string-name>
          .
          <year>2006</year>
          .
          <article-title>Megamodelling and Etymology</article-title>
          . In Transformation Techniques in Soware Engineering (Dagstuhl
          <source>Seminar Proceedings)</source>
          , Vol.
          <volume>05161</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>Robert</given-names>
            <surname>France and Bernhard Rumpe</surname>
          </string-name>
          .
          <year>2007</year>
          .
          <article-title>Model-driven Development of Complex Soware: A Research Roadmap</article-title>
          .
          <article-title>In Future of Soware Engineering (FOSE '07)</article-title>
          . IEEE,
          <fpage>37</fpage>
          -
          <lpage>54</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>M.</given-names>
            <surname>Franzago</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. D.</given-names>
            <surname>Ruscio</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Malavolta</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H.</given-names>
            <surname>Muccini</surname>
          </string-name>
          .
          <year>2018</year>
          .
          <article-title>Collaborative Model-Driven Soware Engineering: a Classication Framework and a Research Map</article-title>
          .
          <source>IEEE Transactions on Soware Engineering</source>
          (
          <year>2018</year>
          ). DOI:hp://dx.doi.org/10. 1109/TSE.
          <year>2017</year>
          .2755039
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <surname>Steven</surname>
            <given-names>Kelly</given-names>
          </string-name>
          , Kalle Lyytinen, and Mai Rossi.
          <year>1996</year>
          .
          <article-title>MetaEdit+: A Fully Congurable Multi-User and Multi-Tool CASE and CAME Environment</article-title>
          . In CAiSE. Springer-Verlag, London, UK, UK,
          <fpage>1</fpage>
          -
          <lpage>21</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>Steven</given-names>
            <surname>Kelly</surname>
          </string-name>
          and
          <string-name>
            <surname>Juha-Pekka Tolvanen</surname>
          </string-name>
          .
          <year>2008</year>
          .
          <article-title>Domain-Specic Modeling: Enabling Full Code Generation</article-title>
          . John Wiley &amp; Sons.
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25] Jo¨rg Kienzle, Gunter Mussbacher, Omar Alam, Mahias Scho¨le, Nicolas Belloir, Philippe Collet, Benoˆıt Combemale, Julien DeAntoni, Jacques Klein, and
          <string-name>
            <given-names>Bernhard</given-names>
            <surname>Rumpe</surname>
          </string-name>
          .
          <year>2016</year>
          .
          <article-title>VCU: The Three Dimensions of Reuse</article-title>
          . In Soware Reuse:
          <article-title>Bridging with Social-Awareness (ICSR</article-title>
          ).
          <volume>122</volume>
          -
          <fpage>137</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <surname>Dimitrios</surname>
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Kolovos</surname>
          </string-name>
          ,
          <string-name>
            <surname>Louis M. Rose</surname>
          </string-name>
          , Nicholas Matragkas, Richard F. Paige, Esther Guerra,
          <source>Jesu´s Sa´nchez Cuadrado</source>
          , Juan De Lara,
          <article-title>Istva´n Ra´th, Da´niel Varro´</article-title>
          ,
          <string-name>
            <given-names>Massimo</given-names>
            <surname>Tisi</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Jordi</given-names>
            <surname>Cabot</surname>
          </string-name>
          .
          <year>2013</year>
          .
          <article-title>A Research Roadmap Towards Achieving Scalability in Model Driven Engineering</article-title>
          . In BigMDE Workshop. ACM,
          <volume>2</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>2</lpage>
          :
          <fpage>10</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <article-title>Miklo´s Maro´ti, Tama´s Kecske´s, Ro´bert Kereske´nyi, Brian Broll, Pe´ter Vo¨lgyesi, La´szlo´ Jura´cz, Tihamer Levendovszky, and</article-title>
          <string-name>
            <surname>A</surname>
          </string-name>
          ´ kos Le´deczi.
          <year>2014</year>
          .
          <article-title>Next Generation (Meta)Modeling: Web- and Cloud-based Collaborative Tool Infrastructure</article-title>
          .
          <source>In Proceedings of the 8th Workshop on Multi-Paradigm Modeling</source>
          .
          <fpage>41</fpage>
          -
          <lpage>60</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <string-name>
            <surname>Constantin</surname>
            <given-names>Masson</given-names>
          </string-name>
          , Jonathan Corley, and
          <string-name>
            <given-names>Eugene</given-names>
            <surname>Syriani</surname>
          </string-name>
          .
          <year>2017</year>
          .
          <article-title>Feature Model for Collaborative Modeling Environments</article-title>
          . In International Workshop on Collaborative Modelling in
          <string-name>
            <surname>MDE</surname>
          </string-name>
          , Vol.
          <year>2019</year>
          .
          <article-title>CEUR-WS</article-title>
          .org,
          <volume>164</volume>
          -
          <fpage>173</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          [29]
          <string-name>
            <given-names>David Lorge</given-names>
            <surname>Parnas</surname>
          </string-name>
          .
          <year>1972</year>
          .
          <article-title>On the Criteria to Be Used in Decomposing Systems into Modules</article-title>
          .
          <source>Commun. ACM</source>
          <volume>15</volume>
          ,
          <issue>12</issue>
          (
          <year>1972</year>
          ),
          <fpage>1053</fpage>
          -
          <lpage>1058</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          [30] Daniel Stru¨ber, Stefan Jurack, Tim Scha¨fer, Stefan Schulz, and
          <string-name>
            <given-names>Gabriele</given-names>
            <surname>Taentzer</surname>
          </string-name>
          .
          <year>2016</year>
          .
          <article-title>Managing Model and Meta-Model Components with Export and Import Interfaces</article-title>
          .
          <source>In Proceedings of the 4rd Workshop on Scalable Model Driven Engineering part of the Soware Technologies: Applications and Foundations (STAF</source>
          <year>2016</year>
          )
          <article-title>federation of conferences</article-title>
          , Vienna, Austria, July
          <volume>8</volume>
          ,
          <year>2016</year>
          .
          <fpage>31</fpage>
          -
          <lpage>36</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          [31]
          <string-name>
            <given-names>Eugene</given-names>
            <surname>Syriani</surname>
          </string-name>
          .
          <year>2016</year>
          .
          <article-title>Framework to Model Collaboratively</article-title>
          . In International Workshop on Collaborative Modelling in
          <string-name>
            <surname>MDE</surname>
          </string-name>
          , Vol.
          <volume>1717</volume>
          .
          <article-title>CEUR-WS.org, 4</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          [32]
          <string-name>
            <surname>Eugene</surname>
            <given-names>Syriani</given-names>
          </string-name>
          , Hans Vangheluwe, Raphael Mannadiar, Conner Hansen, Simon Van Mierlo, and Hu¨seyin Ergin.
          <year>2013</year>
          .
          <article-title>AToMPM: A Web-based Modeling Environment</article-title>
          .
          <source>In MODELS 2013 Demonstration</source>
          .
          <fpage>21</fpage>
          -
          <lpage>25</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>