Software configuration management (SCM) products have evolved .... accounting records and reports the status of software problems and change requests.
Collaboration-based Architecture of Flexible Software Configuration Management System∗ Ying Ding, Weishi Zhang, and Lei Xu Department of Computer Science and Technology, Dalian Maritime University, Dalian, 116026, P.R.China {abbyying, teesiv, xulei}@dlmu.edu.cn
Abstract. Software configuration management (SCM) products have evolved over the years and have become large and powerful, but they are not flexible enough to allow the user to pick the kind of control. In our work, we focus on two features of software configuration management systems: flexibility and collaboration. We present a new flexible software configuration management system called FSCM, which is designed to address the limits of current systems. In this paper, the main features of FSCM are discussed and a collaborationbased architecture of FSCM is presented.
1 Introduction SCM is one of the most important activities that assure software quality in software development. To support SCM, a great variety of tools have been developed over the years. Those existing SCM tools provide their own level of control, which is either loose or tight, over the users and evolution of the products and few are flexible enough to allow the user to pick the kind of control [1]. We discuss three aspects of the flexibility of SCM, i.e., company-level, project-level, and individual-level. First, most configuration management tools provide only specific functionalities that cannot grow with software companies. Second, most configuration management tools are not agile and they cannot change appropriately according to different projects. Third, most configuration management tools cannot implement different levels of CM control over different users. A project may span multiple teams located at geographically dispersed sites connected by a wide area network such as an organizational intranet or the Internet [4]. Many development teams, especially distributed teams, require process support to adequately coordinate their complex, distributed work practices. SCM systems can increase their control of the development process. It facilitates communication among project teams by providing users with access to all project assets through a central repository that is supported by workspace and process management. In [1] and [2], it ∗ Supported by the National Natural Science Foundation of China under Grant No.69973009 and the National High Technology Development 863 Program under Grant No.2003AA113020.
is suggested that process management and team collaboration should be incorporated into CM systems. According to above discussion, it is clear that a software configuration management system, which can impose different levels of control over the users and evolution of products and can support process management and team works, is needed. In this paper, we present the architecture of a flexible software configuration management system, called FSCM, which establishes and maintains the integrity of software artifacts throughout software lifecycle.
2 Flexible CM Control Policy FSCM attempts to enhance adaptability by allowing users to choose policy of access control, version control, and change control. FSCM provides two modes to implement access control: role-based access control and file-based access control. The role-based mode controls users access to configuration items according to their roles. The file-based mode controls users access to configuration items by defining their permissions to folders and files. The two modes can also be mixed up to use. FSCM offers two version control modes. One is simple checkout-edit-checkin model. The other model is complex and provides three checkout modes that include readonly, exclusive-write and share-write. Only when a developer has a file in the mode of exclusive-write or share-write, can he make changes to the file. FSCM defines a process to control the changes made to configuration items. A user submits request for a change. People who are identified to have responsibility for accepting change requests and allocating the work will determine the requests according to the evaluation criteria. Once a change has been completed, affected users are notified by electronic mail or instant messaging that a new version is available.
3 Collaboration Support FSCM enhances collaboration among people and process by providing process management and workspace management. Process management helps to collaborate among people and process, and workspace management helps to collaborate between people and people. FSCM provides processes, which are defined as a related set of activities and CM control policy, and monitors their practitioners to ensure that they follow the defined processes. FSCM also automates the processes at a certain level. For example, when a member joins the project team, FSCM will trigger automatically the operation of assigning roles and tasks to the new member. Workspace provides software engineers with their own work area for creating and maintaining of a family of products. At the same time, they can communicate and coordinate effectively. Workspace management help users to track the progress of project, to provide the exact versions of source files, to update project data instantaneously, and to inform changes having been made.
4 Architecture of FSCM The architecture of FSCM is shown in Fig.1. It is comprised of three layers: the configuration library layer, the basic management layer and the high-level management layer. High-level Management Version Control
Change Control
Status Accounting
Basic Management Control Policy
Process Management
Workspace
Configuration Library
Fig.1. FSCM Architecture
The configuration library layer is responsible for storing configuration items data and their related configuration information. The basic management layer provides with policies of configuration management, process management and a collaborative environment for software development. The high-level management layer supports high-level management functions including version control, change control, and status accounting. 4.1 Basic Management Basic management is divided into following three parts: control policy, process management, and workspace. Control Policy Management help users to choose the mode of implementing access control, version control, and change control. It ensures flexible configuration management in software development life cycle. Process Management provides some process models for software development and allows users to choose their development process as desired by the project. Users can also define their own development process models. The definition of process model includes the developing phases, basic roles, their related permissions, and CM control policy. When using the defined process model, users can also adapt it according to their needs. Workspace Management helps team members to get the exact versions required to complete a special task and create new versions of the configuration items they have changed. Workspace also provides two functions: task management and notify. Task management helps users to track the progress of projects. Notify helps members of project team to be aware of the changes of software state. FSCM provides two ways to support team awareness: Email and IM (Instant Messaging).
4.2 High-level Management FSCM provides following configuration management functions in high level: version control, change control and status accounting. Version control tracks changes to every file and directory, maintaining complete annotated version histories of every artifact. Change control provides a powerful platform to control changes to all artifacts that evolve during development. FSCM defines a formal approval process for requesting and approving changes. The change control process can also be customized based on team needs, development phases and change type. Status accounting records and reports the status of software problems and change requests. Standard report offers the project information, which is in common use. Users can also customize report form to get the information useful for their own.
5 Conclusions In this paper, we present the architecture of FSCM that provides a set of features, including flexible control policy, process management and workspace management, and that enhances the ability of flexible configuration management and collaboration in software development. The collaboration-based architecture of FSCM is designed to support project teams, especially geographically distributed teams, to develop products effectively.
References 1. Dart S.A.: Concepts in Configuration Management Systems. Proceedings of the 3rd International Workshop on Software Configuration Management. New York, NY, USA: ACM Press, (1991) 1-18 2. Mark C. Chu-Carroll and James Wright: Supporting Distributed Collaboration through Multidimensional Software Configuration Management. B.Westfechtel and A.van der Hoek (Eds.): SCM 2001/2003, Lecture Notes in Computer Science, Vol. 2649. Springer-Verlag, Berlin Heidelberg New York (2003) 40–53 3. Jacky Estublier, Anh-Tuyet Le, and Jorge Villalobos. Using Federations for Flexible SCM Systems. B.Westfechtel and A.van der Hoek (Eds.): SCM 2001/2003, Lecture Notes in Computer Science, Vol. 2649. Springer-Verlag, Berlin Heidelberg New York (2003) 163– 176 4. Israel Z.Ben-shaul, Gail E. Kaiser: Federating Process-Centered Environments: The Oz Experience. Automated Software Engineering, Vol. 5. Kluwer Academic Publishers, Netherlands (1998) 97-132 5. M.Oivo and S.Komi-Sirvio. Managing the Improvement of SCM Process. PROFES 2002, Lecture Notes in Computer Science, Vol. 2559. Springer-Verlag, Berlin Heidelberg New York (2002) 35–48 6. Jacky Estublier, Sergio Garcia, and German Vega. Defining and Supporting Concurrent Engineering Policies in SCM. B.Westfechtel and A.van der Hoek(Eds.):SCM 2001/2003, Lecture Notes in Computer Science, Vol. 2649. Springer-Verlag, Berlin Heidelberg New York (2003) 1–15