Large scale software development processes often require cooperation among multiple teams of developers. To support such processes, SDEs must allow developers to interleave their access to the various components of the projects. This interleaving can lead to interference, which may corrupt the project components. In traditional database systems, the problem is avoided by enforcing serializability among concurrent transactions. In traditional software development, the problem has been addressed by introducing version and configuration management techniques combined with checkout/checkin mechanisms. Unfortunately, both of these solutions are too restrictive for SDEs because they enforce serialization of access to data, making cooperation unacceptably difficult. In this paper, I illustrate the problem and show how the encoding of the software development process in process-centered SDEs can be used to provide more appropriate concurrency control. I present the concurrency control mechanism I developed for the MARVEL SDE. This mechanism uses the process model in MARVEL to support the degree of cooperation specified in the development process.
[1]
Irving L. Traiger,et al.
The notions of consistency and predicate locks in a database system
,
1976,
CACM.
[2]
Robert Balzer,et al.
Living in the Next-Generation Operating System
,
1987,
IEEE Softw..
[3]
Walter F. Tichy,et al.
Rcs — a system for version control
,
1985,
Softw. Pract. Exp..
[4]
Gail E. Kaiser,et al.
Concurrency control in advanced database applications
,
1991,
CSUR.
[5]
Volker Gruhn.
Managing software processes in the environment MELMAC
,
1990
.
[6]
Gail E. Kaiser,et al.
An architecture for multi-user software development environments
,
1992,
SDE 5.