ReMoDD Eclipse Plug-in: Collaborative Modeling Using a Model Repository Mohammed Al-Refai1 , Andrew Jacobson1 , Sudipto Ghosh1 , James M. Bieman1 , Betty H. C. Cheng2 1 Computer Science, Colorado State University, Fort Collins, CO, USA Email: al-refai,akj,ghosh,bieman@cs.colostate.edu 2 Computer Science and Engineering, Michigan State University, East Lansing, MI, USA Email: chengb@cse.msu.edu Abstract—The Repository for Model-Driven Development (R E - may need new versions of existing models to support exper- M O DD) is a community resource developed to support the imentation in studying approaches involving model evolution research and education activities of researchers and educators in and testing. Educators may require their students to extend the Model-Driven Development (MDD) community. Researchers and practitioners can use the repository as a vehicle for sharing models to teach concepts in refactoring. The new versions exemplar models, illustrative descriptions of modeling method- of models will need to be stored in R E M O DD to support ologies and techniques, detailed modeling case studies, modeling future research and education. Previously R E M O DD1 sup- success stories, and other forms of modeling experience and ported versioning capabilities via Drupal but did not support knowledge. Recent extensions to R E M O DD support the seamless access control and configuration management for simultaneous integration of R E M O DD into existing modeling frameworks, thereby improving the access to R E M O DD artifacts. In particular, collaborative modeling activities by contributors modifying we have developed an Application Programming Interface (API) the same artifact. Modifications to artifacts are typically per- to enable other repositories and existing modeling tools to directly formed in development environments that support modeling access R E M O DD search, browsing, and retrieval facilities. We tools, which require the availability of tools and Application validate and demonstrate the API utility through an Eclipse plug- Programming Interfaces (API) to access R E M O DD, check out in that allows a user to collaboratively work on modeling artifacts that are available in R E M O DD. artifacts, and push and commit changes to the artifacts. Index Terms—collaborative modeling, Eclipse plug-in, MDE, In this paper we describe key elements of the R E M O DD ReMoDD, version control API and illustrate its use with the Papyrus Modeling environ- Link to Video Tutorial—http://remodd.org/v1/plugin-demo ment2 and our R E M O DD plug-in. In the video tutorial, we demonstrate several usage scenarios that are described below. I. I NTRODUCTION The Repository for Model Driven Development II. U SAGE S CENARIOS (R E M O DD)[1] contains artifacts that researchers in the Model-Driven Development (MDD) community can use to We developed an API for R E M O DD that defines the Java guide and validate their research. R E M O DD artifacts include interfaces, classes, and exceptions necessary to support (1) user detailed MDD case studies describing the use of models authentication, and login and logout processes, (2) new artifact (including graphical models, such as UML and Simulink, as creation and submission, (3) search and browse, (4) retrieving well as models expressed in formal specification languages artifacts from R E M O DD, (5) modifying retrieved artifact such as Z, Alloy, and Statecharts) throughout the development meta-data and content, and (6) pushing a modified artifact lifecycle, source code describing implementations of design back to R E M O DD. In order to facilitate access and support models, examples of models reflecting good and poor configuration management, R E M O DD now makes use of the modeling practices, benchmark models that can serve as the git platform. We demonstrate the utility of the API using an basis for evaluating model manipulation techniques, reusable Eclipse plug-in. Usage scenarios of the plug-in are described model transformations, and pedagogical materials that can below and demonstrated in the video tutorial. enhance the teaching of MDD concepts. The intent for Scenario-1: This scenario takes the user through the ar- R E M O DD is to provide a community resource for storing tifact creation process (i.e., AirlineSystem artifact), using MDD artifacts that can be used to gain significant insights into R E M O DD’s web interface starting from the R E M O DD home- the use of models across the software lifecycle, as a source of page. The user can be the artifact’s author or someone up- data for MDD experiments, as a source of models for testing loading the artifact on behalf of the author. After providing MDD tools, and to better understand relationships among the author’s information and brief description of the artifact ongoing MDD research projects. In particular, educators as shown in Figure 1, the user submits the candidate artifact in academia and industry can use R E M O DD resources to for inclusion in R E M O DD. illustrate modeling concepts and approaches in the classroom. We expect that the artifacts in R E M O DD will evolve as 1 http://www.remodd.org/ researchers and educators use them in their work. Researchers 2 https://eclipse.org/papyrus/ Fig. 1. Scenario 1: Entering Metadata for Artifact Creation Fig. 2. Scenario 2: Creating Class Diagram Using Papyrus Scenario-2: Next, we show how the user can access R E - After completing the editing process, the user pushes the M O DD and its artifacts as an Eclipse plug-in. From Eclipse, changes back to R E M O DD by (1) selecting the "Team" option the user opens a new window and selects the R E M O DD view. from the Eclipse Project menu, (2) selecting the "Commit" The user then logs in to R E M O DD using their R E M O DD option to bring up a window to enter a commit message, and credentials and performs searches similar to how it is done via (3) selecting the "Push and Commit" button to complete the the web-interface. The user can select the previously created process of submitting the changes to R E M O DD. At this point, artifact (i.e., AirlineSystem) for editing. Figure 2 shows how the user clicks on the R E M O DD tab and logs out from the the user searches for the AirlineSystem project for cloning, R E M O DD website. and then edits the project to include a class diagram containing Scenario-3: As with many MDE projects, multiple collabo- a single class (i.e., Flight), using the Papyrus modeling tool. rators may work on a given artifact over a given time. This Fig. 3. Scenario 3a: Adding Second User as Contributor to Project Fig. 4. Scenario 3b: Class Diagram Modified by Second User scenario illustrates how R E M O DD supports the feature of opens the class diagram to add a new class called Airport. adding and managing contributors for artifacts. The user starts Figure 4 shows the resulting class diagram. Upon saving the with the Artifacts page for a given artifact, and select the class diagram, user2 repeats the process of saving the project "Contributors" tab. As shown in Figure 3, the user enters the and pushing the revised artifact to the R E M O DD repository. name of a new contributor and the corresponding privileges ("Edit Project", "Administer Maintainers", or "Administer Re- Scenario-4: This scenario represents a commonly occurring leases"), and clicks the "Update" button at the bottom. situation where two or more modelers check out a version We next illustrate how the new contributor, user2 opens the and perform conflicting changes. These conflicts must be Eclipse project to access the AirlineSystem project, and then resolved when the models are merged. This scenario starts Fig. 5. Scenario 4: Merge Conflicts Fig. 6. Scenario 5: Add Git Tag Release Number 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 R E M O DD. 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 R E M O DD 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 R E M O DD, 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 R E M O DD, 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 R E M O DD website, clicks on the "Add new release" option, selects the tag number (see Figure 6), adds a short ACKNOWLEDGMENTS description of the release, and finally clicks on "Save". The This material is based upon work supported by the National created release contains the model files archived and attached. Science Foundation under Grants No. CNS 1305381 and R E M O DD users can view and download this artifact release. CNS 1305358. Scenario-6: This scenario shows how R E M O DD users who R EFERENCES 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 [1] R. B. France, J. M. Bieman, S. P. Mandalaparty, B. H. C. Cheng, and A. C. Jensen, “Repository for model driven development (ReMoDD),” edit and store versions locally without committing changes in 34th International Conference on Software Engineering, ICSE 2012, back to R E M O DD or creating new releases. This scenario June 2-9, 2012, Zurich, Switzerland, 2012, pp. 1471–1472. is demonstrated with user3, who is not a contributor for the [2] A. Ledeczi, M. Maroti, A. Bakay, G. Karsai, J. Garrett, C. Thomason, G. Nordstrom, J. Sprinkle, and P. Volgyesi, “The generic modeling AirlineSystem artifact. User3 logs into R E M O DD via the environment,” in Workshop on Intelligent Signal Processing, Budapest, plug-in, searches for the AirlineSystem artifact, and then Hungary, vol. 17, 2001, p. 1. clones it to a project in Eclipse. At this point, user3 is allowed [3] M. Dirix, A. Muller, and V. Aranega, “Genmymodel: an online uml case tool,” in ECOOP, 2013. to edit the artifact files in the project (not shown in the video). [4] T. Holmes, U. Zdun, and S. Dustdar, “Automating the management and versioning of service models at runtime to support service monitoring,” in Enterprise Distributed Object Computing Conference (EDOC), 2012 III. R ELATED W ORK IEEE 16th International. IEEE, 2012, pp. 211–218. [5] F. Basciani, J. Di Rocco, D. Di Ruscio, A. Di Salle, L. Iovino, and R E M O DD can potentially be used with other repositories A. Pierantonio, “Mdeforge: an extensible web-based modeling platform.” and complementary modeling environments through its new in CloudMDE@ MoDELS, 2014, pp. 66–75. API, a few of which we describe below. The Generic Modeling Environment (GME) [2] allows users to create domain spe- cific 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 web- based 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 reposi- tory for the storage and retrieval of models. Morse supports versioning capabilities. MDEForge [5] is an extensible web- based 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 exam- ples 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 object- oriented modeling. Users can use OOModels to download and discuss artifacts, develop modeling artifacts, and find software compatible with their models. IV. C ONCLUSIONS AND F UTURE W ORK R E M O DD now includes an interface with git support and an API to enable the MDE community to integrate their de- velopment environments with R E M O DD. 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 R E M O DD. 3 https://github.com/jcabot/ocl-repository/ 4 http://oomodels.org/page/Main_Page/