Supporting cooperation in the Marvel process-centered SDE

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.