From SE Wiki
Revision as of 06:28, 21 August 2011 by Shiva (Talk | contribs)

Jump to: navigation, search



TReMer+ is a tool for matching, merging and consistency checking of distributed models (i.e., models developed by distributed teams).

The model merging framework in TReMer+ comes from an earlier conception of the tool, TReMer (Tool for Relationship-Driven Model Merging). The framework includes an operator for merging conceptual models in requirements modelling, and two other operators for matching and merging behavioural models in design and implementation. These operators have been described in the following papers, respectively:

  • Mehrdad Sabetzadeh and Steve Easterbrook, "View Merging in the Presence of Incompleteness and Inconsistency". Requirements Engineering Journal, Volume 11, Number 3, June 2006 PDF
  • Shiva Nejati, Mehrdad Sabetzadeh, Marsha Chechik, Steve Easterbrook, and Pamela Zave, "Matching and Merging of Statecharts Specifications". 29th International Conference on Software Engineering (ICSE'07), Minneapolis, USA, May 2007. PDF

Details about the implementation of our merge operators can be found in the following paper:

  • Mehrdad Sabetzadeh, Shiva Nejati, Steve Easterbrook, and Marsha Chechik, "A Relationship-Driven Framework for Model Merging". Workshop on Modeling in Software Engineering (MiSE'07) at the 29th International Conference on Software Engineering, Minneapolis, USA, May 2007. PDF

Further, TReMer+ utilizes model merging to provide a flexible platform for consistency checking of distributed models. Our consistency checking approach has been described in the following paper:

  • Mehrdad Sabetzadeh, Shiva Nejati, Sotirios Liaskos, Steve Easterbrook, and Marsha Chechik, "Consistency Checking of Conceptual Models via Model Merging". 15th IEEE International Requirements Engineering Conference (RE'07), New Delhi, India, October 2007. PDF.

Tool support for this approach is described in the following paper:

  • Mehrdad Sabetzadeh, Shiva Nejati, Steve Easterbrook, and Marsha Chechik, "Global Consistency Checking of Distributed Models with TReMer+". 30th International Conference on Software Engineering (ICSE'08), Leipzig, Germany, May 2008. Formal Research Demonstration. PDF

For consistency checking, TReMer+ makes use of CrocoPat, a tool developed by Dirk Beyer and Andreas Noack for querying and manipulating first order relations. The user interface component of TReMer+ is based on the graph visualization and layout technologies from JGraph.

Project Members

System Requirements

  • Java 1.5 or better (TReMer+ does not work with Java 1.4 and earlier.)
    • We have checked compatibility only with Sun's Java distribution for Linux and Windows, and Apple's Java distribution for Mac OS X. Mileage may vary with other Java distributions. Model matching functionality has not been tested on the Windows platform. If you cannot get TReMer+ to work on your platform, please let us know.


  • TReMer+ can be downloaded here (last modified: April 2011).
  • To use TReMer+ for consistency checking, you need to download and install CrocoPat 2.1.3.
  • To use the linguistic matching component of TReMer+, you need to install Perl, WordNet, and the WordNet::Similarity package. If these components are not found on the system, linguistic matching will not work.

The source code for TReMer+ is available upon request under GNU GPL (General Public License).


java -jar tremer2.jar

The above invokes the graphical user interface of TReMer+. Through this interface you can create new or open existing projects. Within each project, you can specify models, build relationships between them, hypothesize and compute merges, and perform automatic consistency checking. The GUI currently supports state machines, simple UML domain models, and Entity-Relationship diagrams.

Examples and Case Studies

Flash Demos

Consistency Checking Performance

Bug Reports

Bug reports are very welcome. Please direct them to {mehrdad | shiva}


TReMer+ is provided with no warranty. Use at your own risk.