160 likes | 381 Views
Software Configuration Management CSC-532. Chandra Shekar Kandi. Outline. Introduction what is SCM, who are involved, why it is imp? what are the steps? Basic Concepts of SCM Configuration Management Activities Configuration Management Tools Conclusions References. Introduction.
E N D
Software Configuration ManagementCSC-532 Chandra Shekar Kandi
Outline • Introduction • what is SCM, who are involved, why it is imp? what are the steps? • Basic Concepts of SCM • Configuration Management Activities • Configuration Management Tools • Conclusions • References
Definition of SCM: Software configuration management is the discipline of managing the evolution of complex software systems [IEEE STD 1987]. It is also defined as ‘the process of controlling and monitoring change to work products’ [Herbert 1999].
Who are Involved? • Why it is important? • What are the steps?
Basic concepts of Configuration Management: Configuration Item: A piece of software or work product which is subject to change is a configuration item Change Request: It is a formal report that contains the request for modification in a configuration item.
Versions and configurations: A version identifies the state of a particular configuration item or a configuration at a well defined point in time Promotion: A promotion is a version of a configuration item/CM aggregate that has been available to other developers in a project. Release: A release is a version that has been available to the user or the client. Repository: It stores the various releases of a CM item/aggregate. Workspace: It is a library of promotions.
Configuration Management Activities • Configuration item/CM aggregate identification • Promotion management • Release management • Branch management • Variant Management • Change Management
Configuration Management Tools • Revision Control System (RCS ): To change a configuration item, the developer has to lock that item first, preventing other developers from changing the item at the same time. The developer specifies a label for each configuration item. Using this label, developers can check out consistent set of versions by using this label [Herbert 1999].
Concurrent Versions System (CVS): • CVS System lets the groups of people work simultaneously on group of files. • This tool is similar to RCS. In addition it also supports the concept of branch. • This system does not support locking of files. • In CVS, the user would check out the latest version of a file or any of the earlier versions from the repository .
Perforce: Perforce is a commercial replacement for CVS. It also controls a central repository like CVS and RCS. Perforce includes version control, workspace management, atomic change transactions and a powerful branching model to develop and maintain multiple code lines.
Perforce contd.. • Files or elements are stored in the central repository called Versioned Object Base (VOB). • Different available versions of an element are stored in the VOB
Clearcase • ClearCase is designed to help developers track the files and directories used to create software. • The files stored in the repository are called elements. • ClearCase supports parallel development which includes isolating the work of a single developer from a small team, creating and developing multiple releases in parallel using different teams, and sharing of code among different teams located at different locations.
ClearQuest • This tool is a change request management application that allows a developer to track and monitor the change requests for a configuration item [Rational 2002]. • ClearQuest maintains its own database which stores all the change requests in the form of records. • There are various categories of changes that can be done on a product. These changes can be due to addition of new features, detection of faults, activities etc.
conclusion Configuration management is very crucial for evolving software systems. Change in many large software systems is inevitable. Careful planning is required considering aspects like the components that are likely to be changed, any other subsystems that may have to be changed for the modification of the given system, analysis of cost etc. CM makes sure that these changes do not cause undesired impact on the other subsystems.