Software and Systems Engineering, as any other interdisciplinary activity, requires the ability and means to build systems which are so large and complex that they have to be built by teams or even by teams of teams of engineers. In combination with a model-based approach, these teams need the possibility for modeling in a concurrent way. With other words, multiple users must be able to work on the same model in parallel or even on multiple versions of the same system. In code-centric software engineering, developers profit for years from the features provided by Version Control Systems (VCS), whereby one of the most important features is the possibility of comparing and merging changes of the same file. The key technique hereby is the so called three-way difference analysis which is also considering the common ancestor version of the artefact under comparison. Traditional approaches uses text- and line-based comparison tools, which are not suitable for graphical-based models.
In general, two different versioning strategies exist to cope with the concurrent evolution of one artifact. These are described in the following:
When pessimistic versioning is applied like it is implemented in EA, an artifact is locked while it is changed by one developer. Since other developers cannot perform any changes while the artifact is locked, conflicts are completely avoided with this strategy. However, the drawbacks are possible idle times for developers waiting for the release of a locked artifact.
To avoid such idle times, optimistic versioning allows the developers to change the same artifact in parallel and independently of each other. This process is depicted in the following figure:
The following videos give you insights into the latest developments in model versioning and act as tutorials in how you can set Enterprise Architect models under optimistic version control:
For more information please visit: lemontree.lieberlieber.com