Software development which typically requires a collaboration of a number of developers is one of the applications to which the concepts of the Computer-Supported Cooperative Work can naturally be applied. Some program debugging tasks call for concurrent actions among the team members over a relatively long duration and other activities can be performed independently. Therefore, we need a concurrency control idea which controls concurrent actions during a program debugging session, yet not so tightly controlled as in the case of the database management systems.
In this thesis, we propose a new concurrency control mechanism based on the program slicing techniques. The proposed mechanism applies a slice lock to the portion of the program so that concurrent debugging works do not affect the consistency of the program. By allowing a small locking granularity, the proposed mechanism increases concurrency in team debugging. We also suggest a system architecture based on a client-server model which supports collaborative works over a geographically dispersed sites.