Engineering support
Configuration management is for most of time dealing with the system that is large, complexed, has a long life duration (more than 10 years) and involve more people. The key issues for engineering support are to coordinate the participants and to provide each engineer an environment, also called a workspace where they can work independently in the task duration. The former one refers the cooperative work support and the latter one is mostly called workspace support.
Cooperative work support
Cooperative work support is introduced since many concurrent workspaces may contain and change the same objects (files). So, there are needs to synchronize objects and control concurrent work. It is also important since the duration of an activity can be very long, which means the files would be locked for too long and severe dead lock would occur, to solve this problem, merge algorithm is used to resynchronizing objects.
Synchronizing method
As shown in the figure, the object A is used in both of the work groups. In order to prevent overlapping, the integration work space is created to coordinate the two development workspaces. Compared with database, the integration work space plays the role of the central DB and the other basic work spaces play the role of the cache of the concurrent transactions. Development work spaces report (integrate arrows in the figure) to the integration work space regularly and receive new version from it to work concurrently with other groups. Seeing from the outside, the complete group behaves as its integration work space along, while a tree where nodes are either groups or basic work spaces can be constructed to record the history. Containment between two workspaces may mean either work decomposition into concurrent activities or different level of validation.
Control concurrent work
The control of concurrent work is dealing with the problems of who can perform a change, at what time, on which attribute of which object. Priority can be introduced to solve part of the problem, but this field is still under research.
In Software configuration management (SCM), Merge is used to combine files based on a line by line comparison method. Merge control is commonly applied to changes to the same attribute of different objects or changes to different attributes of the same object. Object concurrent change control subsumes traditional file control and provides homogeneous and elegant solutions to many difficulties which currently hamper concurrent software engineering.
Workspace support
Software configuration management (SCM) system is responsible for providing a workspace for each engineer in the right file system, at the right time to let users work independently, and to save or update the changes automatically when the job is done. Sometimes, the later one is also said as change management.
Merge tools are widely used to facilitate workspace support. The following chart provides a process flow of the merge tools which is based on a line by line comparison method.
The upper process flow digram presents the main principle of merge tools in software configuration management. When a source file is required by a second workespace, the center DB will deliver a copy of that file to it. And after submitting the 2 versions of the same file, merger tools will start to combine these two version into a new one. It is based on a line by line process, which is: if There are new lines in the submitted version, add them to the source file, and if there are lines which do not exist in the new version, delete these lines in the source file. After several times of iteration, a new version of the sources file, which contains all the changes created by the two (or more) authors, will be upload again to the central DB and acts as a new version of the source file.