Architecture

The architecture of MoVE is based on a flexible design that is supported by plugins and adapters. To implement the basic feature model versioning for UML models, Hibernate and EMF XPand are used as an infrastructure to provide versioning .
Basically MoVE consists of two parts: The MoVE-Server and the MoVE-Client. Each of these parts consists of  exchangeable components to add functionality to MoVE.

 

MoVE-Server

The architecture of the MoVE-Server is designed as a small base package and a combination of plugins. The core package of MoVE  consists of an Eclipse RCP application that implements a version control system for models using Hibernate together with XPand to generate Java classes that correspond to model elements. This allows MoVE to support HQL queries for UML models. The RCP application comes with a plug-in interface for MoVE server-side plug-ins which are also plug-ins in terms of Eclipse applications and therefore can use Eclipses update mechanisms. This interface allows rapid plugin development and comes with a simple configuration facility.

 

We implemented a set of plugins to enhance the MoVE  functionality.
Two examples are:

  • Consistency Plugin: The task of this plugin is to check consistency of instance models and the common Metamodel.
  • Statemachine Plugin: It supports all principles concerned state changes and change propagation.

MoVE-Client

The MoVE-Client is the central model versioning component of MoVE on the client-side. With the help of adapters the MoVE-Client integrates into modeling tools such as Magic Draw or Eclipse and supports check-out, commit and update operations on models.