Sparx Systems Forum
Enterprise Architect => Suggestions and Requests => Topic started by: Erik on March 11, 2009, 05:30:23 am
-
It would be nice if a Model could support multiple versions (i.e. Current vs. Target vs. Project 01-New Infrastructure)
At it's simplest form, I would allow the user to branch a new model, off of an existing one (the base). Changes to the charged artefacts in the base would automtically flow and be reflected in the branch. Changes in the branched model would be queued up and would not flow automatically to the base model.
There would be a promote option on the branched model that would sync the queued changed from the branched model to the base model. Another option would just show the differences between two branches.
I would see this as a combobox, somewhere in the corner, that changes the state of the model I am viewing.
With this feature, I would be able to branch model the current system, the target system. Every project would branch off of the current system and alter it, when that project is finished, changes would be promoted back to the current system (and indirectly synced to each other model that was branched off of the current).
I would love to discuss this feature more in details.
-
Have you looked at Baseline, Difference and Merge?
http://www.sparxsystems.com/uml_tool_guide/uml_model_management/baselinesanddifferences.html
-
I have looked at the baseline, compare modules; but unfortunatly, they do not offer the flexibility to work on two different versions of the same model.
The idea would be to model the current and target states of the same model, and then being able to promote changes from one to the other in an easy way.
And since there is no way to "duplicate a model", and compare both copies, it's hard to maintain two different views of the same model.
-
In terms of Duplication - see: http://www.sparxsystems.com/uml_tool_guide/uml_model_management/datatransfer2.html
The latest build does support Baseline Differencing between different repositories. See Load Other Baselines:
http://www.sparxsystems.com/uml_tool_guide/uml_model_management/managingbaselines.html
If you have the recent build, which includes "Load Other Baselines" (from other repositories), the process you outlined would involve something like:
1). Create a new ‘Branch” and a baseline – but create the Branch as a Model – either .eap or DBMS:
Tools | Data Transfer .
2). Model the new Branch (users add new data)
3). Then do a difference and merge from the new Branch model to the Original.
Branch -> Create a Baseline
Original -> Compare /Merge: Branch.Baseline
-
I'm currently working on this.
I'm writting some specific procedures to:
1. Integrate 2 branches (i.e.: Maintenance 1.1 & Development 1.2) in a final version 2.0
2. Extracting a part of the model (to a software factory) and the later consolidation of the evolutionated models in the original branch.
By the moment, i see that it's possible (but hard) to do this wiht baselines.
-
This process is simpler than outlined above:
1). Create a new ‘Branch” from the Original – copy the Base as a Model – to either .eap or DBMS: Tools | Data Transfer.
2). Model in the new Branch (users add new data)
3). Then do a difference and merge from the new Branch model to the Original:
Branch -> Create a Baseline
Open the Original -> Baseline Compare /Merge: Load Other Baselines: select the Branch.Baseline