At our company, we started using VS 2010 to model our systems in so-called simulation projects. They are stored under source control of TFS2010.
All this is good for one user, but as soon as we presented this tool for our entire architecture team, we faced a serious problem: it does very poorly with several users! Let me run you in a simple scenario.
- Architect 1 checks an existing chart and works on it for a while
- Architect 2 adds a new diagram and works on it for a while
- Architect 2 checks his new diagram
- Architect 1 validates his changes to the modeling project
- Architect 2 opens his diagram again, only to find that all the elements in it are missing!
As I understand it, the problem is that the architecture project is based on several xml files and, in particular, on one important huge xml fragment called ModelDefinition / Architecure.uml. It contains a lot of knowledge about diagrams in a modeling project. When several people make several changes to this file at the same time, tools (TFS, VS) do not process the required merge automatically, and we still have huge concurrency problems.
So, in my scenario, because Architect.uml, which architect 1 registered, knows nothing about the elements added by architect 2, these elements are overwritten or otherwise destroyed.
We want to avoid dividing the project into several smaller ones, because this will mean that we will have to redefine our modeling components (classes, participants, use cases, components, etc.) several times. Using one solution, we can identify such elements in one place and reuse them in every other diagram.
So, our current βsolutionβ should work using exclusive checks. Therefore, only one architect can work at a time!
I was hoping that someone came up with a better solution for this, which allows us to work more efficiently.