<!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>ReMoDD Eclipse Plug-in: Collaborative Modeling Using a Model Repository</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Mohammed Al-Refai</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Andrew Jacobson</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Sudipto Ghosh</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>James M. Bieman</string-name>
          <email>bieman@cs.colostate.edu</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Betty H. C. Cheng</string-name>
          <email>chengb@cse.msu.edu</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Computer Science and Engineering, Michigan State University</institution>
          ,
          <addr-line>East Lansing, MI</addr-line>
          ,
          <country country="US">USA</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Computer Science, Colorado State University</institution>
          ,
          <addr-line>Fort Collins, CO</addr-line>
          ,
          <country country="US">USA</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>-The Repository for Model-Driven Development (REMODD) is a community resource developed to support the research and education activities of researchers and educators in the Model-Driven Development (MDD) community. Researchers and practitioners can use the repository as a vehicle for sharing exemplar models, illustrative descriptions of modeling methodologies and techniques, detailed modeling case studies, modeling success stories, and other forms of modeling experience and knowledge. Recent extensions to REMODD support the seamless integration of REMODD into existing modeling frameworks, thereby improving the access to REMODD artifacts. In particular, we have developed an Application Programming Interface (API) to enable other repositories and existing modeling tools to directly access REMODD search, browsing, and retrieval facilities. We validate and demonstrate the API utility through an Eclipse plugin that allows a user to collaboratively work on modeling artifacts that are available in REMODD. Index Terms-collaborative modeling, Eclipse plug-in, MDE, ReMoDD, version control</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>I. INTRODUCTION</title>
    </sec>
    <sec id="sec-2">
      <title>The Repository for Model Driven Development (REMODD)[1] contains artifacts that researchers in the</title>
      <p>Model-Driven Development (MDD) community can use to
guide and validate their research. REMODD artifacts include
detailed MDD case studies describing the use of models
(including graphical models, such as UML and Simulink, as
well as models expressed in formal specification languages
such as Z, Alloy, and Statecharts) throughout the development
lifecycle, source code describing implementations of design
models, examples of models reflecting good and poor
modeling practices, benchmark models that can serve as the
basis for evaluating model manipulation techniques, reusable
model transformations, and pedagogical materials that can
enhance the teaching of MDD concepts. The intent for
REMODD is to provide a community resource for storing
MDD artifacts that can be used to gain significant insights into
the use of models across the software lifecycle, as a source of
data for MDD experiments, as a source of models for testing
MDD tools, and to better understand relationships among
ongoing MDD research projects. In particular, educators
in academia and industry can use REMODD resources to
illustrate modeling concepts and approaches in the classroom.</p>
      <p>We expect that the artifacts in REMODD will evolve as
researchers and educators use them in their work. Researchers
may need new versions of existing models to support
experimentation in studying approaches involving model evolution
and testing. Educators may require their students to extend
models to teach concepts in refactoring. The new versions
of models will need to be stored in REMODD to support
future research and education. Previously REMODD1
supported versioning capabilities via Drupal but did not support
access control and configuration management for simultaneous
collaborative modeling activities by contributors modifying
the same artifact. Modifications to artifacts are typically
performed in development environments that support modeling
tools, which require the availability of tools and Application
Programming Interfaces (API) to access REMODD, check out
artifacts, and push and commit changes to the artifacts.</p>
      <p>In this paper we describe key elements of the REMODD
API and illustrate its use with the Papyrus Modeling
environment2 and our REMODD plug-in. In the video tutorial, we
demonstrate several usage scenarios that are described below.</p>
    </sec>
    <sec id="sec-3">
      <title>II. USAGE SCENARIOS</title>
      <p>
        We developed an API for REMODD that defines the Java
interfaces, classes, and exceptions necessary to support (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ) user
authentication, and login and logout processes, (
        <xref ref-type="bibr" rid="ref2">2</xref>
        ) new artifact
creation and submission, (
        <xref ref-type="bibr" rid="ref3">3</xref>
        ) search and browse, (
        <xref ref-type="bibr" rid="ref4">4</xref>
        ) retrieving
artifacts from REMODD, (
        <xref ref-type="bibr" rid="ref5">5</xref>
        ) modifying retrieved artifact
meta-data and content, and (6) pushing a modified artifact
back to REMODD. In order to facilitate access and support
configuration management, REMODD now makes use of the
git platform. We demonstrate the utility of the API using an
Eclipse plug-in. Usage scenarios of the plug-in are described
below and demonstrated in the video tutorial.
      </p>
      <p>Scenario-1: This scenario takes the user through the
artifact creation process (i.e., AirlineSystem artifact), using
REMODD’s web interface starting from the REMODD
homepage. The user can be the artifact’s author or someone
uploading the artifact on behalf of the author. After providing
the author’s information and brief description of the artifact
as shown in Figure 1, the user submits the candidate artifact
for inclusion in REMODD.</p>
      <p>1http://www.remodd.org/
2https://eclipse.org/papyrus/
Scenario-2: Next, we show how the user can access
REMODD and its artifacts as an Eclipse plug-in. From Eclipse,
the user opens a new window and selects the REMODD view.</p>
      <p>The user then logs in to REMODD using their REMODD
credentials and performs searches similar to how it is done via
the web-interface. The user can select the previously created
artifact (i.e., AirlineSystem) for editing. Figure 2 shows how
the user searches for the AirlineSystem project for cloning,
and then edits the project to include a class diagram containing
a single class (i.e., Flight), using the Papyrus modeling tool.</p>
      <p>
        After completing the editing process, the user pushes the
changes back to REMODD by (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ) selecting the "Team" option
from the Eclipse Project menu, (
        <xref ref-type="bibr" rid="ref2">2</xref>
        ) selecting the "Commit"
option to bring up a window to enter a commit message, and
(
        <xref ref-type="bibr" rid="ref3">3</xref>
        ) selecting the "Push and Commit" button to complete the
process of submitting the changes to REMODD. At this point,
the user clicks on the REMODD tab and logs out from the
REMODD website.
      </p>
      <p>Scenario-3: As with many MDE projects, multiple
collaborators may work on a given artifact over a given time. This
scenario illustrates how REMODD supports the feature of
adding and managing contributors for artifacts. The user starts
with the Artifacts page for a given artifact, and select the
"Contributors" tab. As shown in Figure 3, the user enters the
name of a new contributor and the corresponding privileges
("Edit Project", "Administer Maintainers", or "Administer
Releases"), and clicks the "Update" button at the bottom.</p>
      <p>We next illustrate how the new contributor, user2 opens the
Eclipse project to access the AirlineSystem project, and then
opens the class diagram to add a new class called Airport.</p>
      <p>Figure 4 shows the resulting class diagram. Upon saving the
class diagram, user2 repeats the process of saving the project
and pushing the revised artifact to the REMODD repository.</p>
      <p>Scenario-4: This scenario represents a commonly occurring
situation where two or more modelers check out a version
and perform conflicting changes. These conflicts must be
resolved when the models are merged. This scenario starts
after Scenario 3, when user1’s diagram only has the Flight that shows the conflicts to be merged as shown in Figure 5.
class, and user2’s diagram has both Flight and Airport, which Scenario-5: This scenario is needed only when a contributor
have been pushed to REMODD. First, user2 adds an operation wants to create a downloadable release of the artifact and make
called book() to the Flight and commits the change but does it available to all REMODD users on the website, such as after
not push. Next, user1 pulls the changes that were pushed, and Scenarios 2, 3, and 4. We illustrate how this step is performed
thus, gets the Airport but not the book() operation. Next, user1 after Scenario 4. After user2 pushes the revised artifact to
proceeds to add the cancel() operation to the Flight, and REMODD, they create a git tag for the pushed commit. The
commits and pushes the change. When user2 pulls changes tag number becomes the version number for the downloadable
from REMODD, there is a conflict because of the book() and release. Next, user2 opens the AirlineSystem artifact page
conflict() operations. There is a built-in merge tool in e-git from the REMODD website, clicks on the "Add new release"
option, selects the tag number (see Figure 6), adds a short
description of the release, and finally clicks on "Save". The
created release contains the model files archived and attached.</p>
      <p>REMODD users can view and download this artifact release.</p>
      <p>Scenario-6: This scenario shows how REMODD users who
are not on the artifact’s contributor list can still search for
the artifact and download it via the plug-in so that they can
edit and store versions locally without committing changes
back to REMODD or creating new releases. This scenario
is demonstrated with user3, who is not a contributor for the
AirlineSystem artifact. User3 logs into REMODD via the
plug-in, searches for the AirlineSystem artifact, and then
clones it to a project in Eclipse. At this point, user3 is allowed
to edit the artifact files in the project (not shown in the video).</p>
    </sec>
    <sec id="sec-4">
      <title>III. RELATED WORK</title>
    </sec>
    <sec id="sec-5">
      <title>REMODD can potentially be used with other repositories</title>
      <p>and complementary modeling environments through its new
API, a few of which we describe below. The Generic Modeling
Environment (GME) [2] allows users to create domain
specific modeling languages and code generation environments.
GME provides a repository to store developed models in a
database or in XML format. GenMyModel [3] is a
webbased toolset that allows users to edit UML models in the
cloud. It enables users to share models with other users or
on social networks. The Model-Aware Repository and Service
Environment (Morse) [4] provides a service-based
repository for the storage and retrieval of models. Morse supports
versioning capabilities. MDEForge [5] is an extensible
webbased modeling framework that provides a community-based
modeling repository. It supports mechanisms to find artifacts,
and provides web access and other API-based services that
enable the management of the artifacts, metamodels, and
model transformations. The OCL repository3 contains
examples of Object Constraint Language expressions, where it is
hosted by GitHub and allows users to contribute without
having to register. OOModels4 is an open library of
objectoriented modeling. Users can use OOModels to download and
discuss artifacts, develop modeling artifacts, and find software
compatible with their models.</p>
    </sec>
    <sec id="sec-6">
      <title>IV. CONCLUSIONS AND FUTURE WORK</title>
      <p>REMODD now includes an interface with git support and
an API to enable the MDE community to integrate their
development environments with REMODD. Users can download
artifacts from the repository and create new versions in their
respective development environments. An Eclipse plug-in uses
the API to implement this functionality. We plan to further
assess the usability and utility of these new features. We also
plan to collaborate with developers of other modeling tools
and repositories to enable them to interact with REMODD.</p>
    </sec>
    <sec id="sec-7">
      <title>This material is based upon work supported by the National</title>
      <p>Science Foundation under Grants No. CNS 1305381 and
CNS 1305358.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>R. B.</given-names>
            <surname>France</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. M.</given-names>
            <surname>Bieman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. P.</given-names>
            <surname>Mandalaparty</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B. H. C.</given-names>
            <surname>Cheng</surname>
          </string-name>
          , and
          <string-name>
            <given-names>A. C.</given-names>
            <surname>Jensen</surname>
          </string-name>
          , “
          <article-title>Repository for model driven development (ReMoDD</article-title>
          ),
          <source>” in 34th International Conference on Software Engineering, ICSE</source>
          <year>2012</year>
          , June 2-9,
          <year>2012</year>
          , Zurich, Switzerland,
          <year>2012</year>
          , pp.
          <fpage>1471</fpage>
          -
          <lpage>1472</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>A.</given-names>
            <surname>Ledeczi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Maroti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Bakay</surname>
          </string-name>
          , G. Karsai,
          <string-name>
            <given-names>J.</given-names>
            <surname>Garrett</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Thomason</surname>
          </string-name>
          , G. Nordstrom,
          <string-name>
            <given-names>J.</given-names>
            <surname>Sprinkle</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P.</given-names>
            <surname>Volgyesi</surname>
          </string-name>
          , “
          <article-title>The generic modeling environment</article-title>
          ,” in Workshop on Intelligent Signal Processing, Budapest, Hungary, vol.
          <volume>17</volume>
          ,
          <year>2001</year>
          , p.
          <fpage>1</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>M.</given-names>
            <surname>Dirix</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Muller</surname>
          </string-name>
          , and
          <string-name>
            <given-names>V.</given-names>
            <surname>Aranega</surname>
          </string-name>
          , “
          <article-title>Genmymodel: an online uml case tool</article-title>
          ,” in ECOOP,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>T.</given-names>
            <surname>Holmes</surname>
          </string-name>
          ,
          <string-name>
            <given-names>U.</given-names>
            <surname>Zdun</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Dustdar</surname>
          </string-name>
          , “
          <article-title>Automating the management and versioning of service models at runtime to support service monitoring,” in Enterprise Distributed Object Computing Conference (EDOC</article-title>
          ),
          <source>2012 IEEE 16th International. IEEE</source>
          ,
          <year>2012</year>
          , pp.
          <fpage>211</fpage>
          -
          <lpage>218</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>F.</given-names>
            <surname>Basciani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. Di</given-names>
            <surname>Rocco</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. Di</given-names>
            <surname>Ruscio</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. Di</given-names>
            <surname>Salle</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Iovino</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Pierantonio</surname>
          </string-name>
          , “
          <article-title>Mdeforge: an extensible web-based modeling platform</article-title>
          .” in CloudMDE@ MoDELS,
          <year>2014</year>
          , pp.
          <fpage>66</fpage>
          -
          <lpage>75</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>