Together models can be stored easily in an industrial strength version control system or configuration management repository like CVS, Subversion, Perforce, ClearCase, or MicroFocus StarTeam
In my experience some of the most valuable object and service-oriented models have been those built collaboratively. There is so much information in the process of building a model that is lost in the end result, the discussions, assumptions, reasons why things are as they are, and so on. Also an object model built collaboratively means more emotional ownership and 'buy-in' from the wider team instead of being restricted to one or two elite model builders or 'architects'.
However, having a team work on the same model concurrently raises challenges for many modelling tools where single user operation has been assumed and multi-user support has, at best, been bolted on as an after thought if at all. One approach is to go low-tech, drawing diagrams on flip charts in model-building workshops and nominating one person to update the model in the chosen UML modelling tool at the end of the session. This is appropriate for significant modelling activities but far less appropriate for day to day refinement of a model when different people or sub-teams are making frequent, small updates as their work progresses. Here concurrent access to different parts of the model is needed and some control on who is changing what when is needed to stop people overwriting other's updates and the model becoming inconsistent or even corrupted.
In any model-driven or model-centric approach, an object or service-oriented model is a living thing, continuously being developed, refined, and amended. The history of the changes being made becomes important, as does the ability to baseline models at certain points, revert back to a particular version of part of a model, release part of a model to another team or sub-team, and so on.
Some modelling tools use a purpose built repository. With the exception of the new Domain Specific Language (DSL) models in Together 2007, Together stores each of its diagrams in a separate XML file and either stores the model elements of each package in a separate XML file or each package-level element (ie. not those nested inside another element) in a separate XML file. UML packages are represented as file-system directories (folders) in Together. This granular use of directories and files means Together models can be stored easily in an industrial strength version control system or configuration management repository like CVS, Subversion, Perforce, ClearCase, or MicroFocus StarTeam (see figure 1)..
Integrating with an industrial strength version control system or configuration management repository has a number of advantages over a proprietary model repository:
There are a couple of disadvantages to be aware of in not using a purpose-built model repository:
On the whole, however, the advantages of an industrial strength version control system or configuration management repository tend to outweigh the disadvantages.