This information has been consolidated and moved to the portal’s page about Version control tools FOR modeling artifacts. Follow the discussion there
Programmers could NOT live without version control systems LIKE Subversion OR Git. However, modelers have been forced TO live LIKE that until now.
We don´t have yet the version control FOR models but SOME promising initiatives have recently been popping up. Probably the most visible example IS the new Eclipse EMF Store project, recently approved. EMF Store IS a model repository that keeps track OF the version history OF the models stored IN it. EMFStore follows the checkout/UPDATE/COMMIT interaction paradigm known FROM SVN OR CVS AND offers an interactive model merging interface TO resolve conflicts WHEN two users change the same model DATA. A model migration (TO UPDATE models after changes ON the metamodel they conform TO) feature IS also integrated. The code IS currently hosted ON Google code AT emfstore.org
Other interesting projects IN the same area ARE:
- The ModelCVS AND AMOR (Adaptable Model Versioning) projects that provide semantic-based methods AND techniques TO leverage version control (LIKE learning FROM previous conflict resolution decisions made by the USER OR proposing resolution strategies based ON the semantics OF the concepts TO be merged).The live demos I´ve seen OF these tools were really impressive.
- EMF Compare that implements a two-phase comparison technique FOR EMF models WHERE the FIRST step (matching) browses the model versions figuring out the relationships BETWEEN the elements IN the “new” AND “old” version AND the SECOND one (differencing) browses the matching result TO CREATE the list OF differences.
- Epsilon Merging LANGUAGE , a rule-based LANGUAGE FOR merging homogeneous OR heterogeneous models. The correspondences BETWEEN the models TO be merged can be generated USING the related Epsilon Comparison LANGUAGE .
Note that ALL these tools ONLY version the model information but NOT its graphical representation (e.g. layout). It´s NOT yet clear what should be considered a change OR conflict IN this context (e.g. moving a class two inches TO RIGHT should COUNT AS a change? Does this conflict WITH another “change” IN which the class has moved a little BIT down?).
OF course, if you prefer TO WORK WITH textual modeling tools (AND follow a purely syntactic approach FOR model comparison) THEN the problem disappears AND standard version control tools would do the trick.
FOR the readers interested IN the latest research area, the complete Bibliography ON Comparison AND Versioning OF Software Models contains links TO (ALL?) publications IN the area, including several workshops specialized IN model comparison AND versioning.
AS always, ANY pointer TO other similar projects that I may have missed will be highly appreciated (I´m thinking about projects that offer a generic version control FOR models, I know that several tools offer this feature FOR models specifically created WITH that same tool)
FNR Pearl Chair. Head of the Software Engineering RDI Unit at LIST. Affiliate Professor at University of Luxembourg. More about me.
Including UML models and diagrams, layer diagrams, and DGML (dependency) graphs:
Managing Models and Graphs Under Version Control
http://msdn.microsoft.com/en-us/library/dd574364.aspx
The ModelBus project also addresses model versioning:
http://www.modelbus.org
The focus IS a BIT different though. It IS also about tool integration AND distributed services that can be run ON models.
In Enterprise Architect you can integrate with the most common version control systems.
The built-in compare utility does a reasonably good job at tracking additions, deletions and changes.
You can see both the changes to the model, as the changes to the diagrams, although comparing diagrams is not really easy as the tool doesn’t provide graphical comparison.
Jordi,
I just want to add that ABSE, being based on well-defined units called “Atoms”, can have a much more granular support for model versioning: Each Atom has its own version (an ABSE model is made up of [dozens|hundreds|thousands] of Atoms). This works similarly to SVN.
However, this is not yet available on the current public implementation of ABSE (1.0) on AtomWeaver.
But you can add ABSE to the “promising initiatives that have recently been popping up” list regarding version control of models…
Hi Jordi,
A colleague of mine has been working in his dissertation on MORSE — a model-aware repository — that also supports model versioning.
http://www.infosys.tuwien.ac.at/prototype/morse/
Huy
Hello.
I would like to add the metamodel repository that we are working on within the Modelum research group of the University of Murcia.
It is called MetaRep and supports fine-grained version control of models and metamodels and a homogeneous architecture that allows both models and metamodels to be treated uniformly, as explained in this paper:
http://modelum.es/papers/iwmcp2010-jespinazo.pdf
We are currently developing a prototype that will be released soon.