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, SVN is used as an infrastructure to provide versioning and a secure communication protocol.
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 implements a version control system for models using the classical Subversion and extended it for the use with models.
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. We also implemented a merge functionality, which extends EMF Compare, that allows to compare and merge UML models with the help of a graphical user interface.