Software Configuration Management (SCM

Topics : 
Necessity Baseline SCM SCI Version



Control Change Control Configuration Audit Status Reporting SCCS

What is SCM ?   

When you build a computer system, changes happen, And because it happens, you need to manage it effectively. Deliverables of large s/w project consist of number of objects, e. g. source code, design document, SRS document, test document, user manual etc. These objects are referred & monitored by number of s/w engs. throughout the lifecycle of the system The state of these objects at any point of time is called µconfiguration¶ of s/w product.

SCM «.. (Continued)   

Software Configuration Management is also called as a µChange Management¶. It is an umbrella activity that is applied throughout the s/w process. Changes are dynamic, they can occur at any time to the system & therefore SCM activities are developed to :
± ± ± ±

Identify the change Control the change Ensure that the change is properly implemented Report changes to others who may have an interest

SCM «.. (Continued) 

It is a set of activities that are designed to manage changes by
± ± ±

± ±

Identifying work products that are likely to change. Establishing relationship between them. Defining mechanism for managing different. version of these work products. Controlling the change imposed. Auditing & Reporting on changes made.

.. SCM is a set of tracking & control activities that begin when a s/w engineering project begins & terminates only when the s/w is taken out of operation.SCM «. (Continued)  SCM is different than s/w support ± ± s/w support is a set of s/w engineering activities that occur after s/w has been delivered to the customer.

2. (Continued)   SCM is viewed as a SQA activity that is applied throughout the s/w process.SCM «. . Computer Programs Work products that describe the computer programs ( Documents) Data ( contained within the program or external to it) ± All these items collectively called as s/w configuration. The output of the s/w process is information that may be divided into 3 broad categories : 1.. 3.

g. 2. A collection of procedures & task that define an effective approach to change management. database) that enable access to & management of each s/w configuration item. Process Elements  . Component Elements  A set of tools coupled within a file management system (e.Elements of Configuration Management System 1.

Human Elements  . the s/w team uses a set of tools & process features. correct version) has been assembled. (Continued) 3.Elements of Configuration Management System «. 4. To implement effective SCM.e. Construction Elements  A set of tools that automate the construction of the s/w by ensuring that the proper set of validated components ( i..

± ± ± ± ± Consider a scenario where all the s/w engineers are involved in coding phase. it is necessary for them to work on a single copy of the object. Finally when the product is integrated. when several team members work on developing an object. Therefore. If SCM is not used then the following problem may occur: 1. otherwise inconsistency may arise. he is expected to intimate the changes to other engineers so that such modification is reflected in his teammates copies also (to maintain consistency) But many times an engineer makes modifications only to his copy & may forget to intimate the changes to his teammates. it does not work. If any engineer is making modifications to his local copy. Inconsistency problem when objects are replicated.Necessity Of SCM  The most important reason for configuration management is to control the different deliverable objects. . They have their own local copy of the source code.

where the manager freezes the object to form a baseline. this can be frustrating if a change to module C forces you to recompile A. ( Leading to inconsistency) When a project is under construction. one engineer¶s work can be overwritten by other engineer¶s work. 3. This problem can be avoided by using configuration management. If engineers are working on a single copy of the object at same time. the team members need a stable environment for progress. For eg ± suppose you want to integrate module A with B & C.Necessity Of SCM 2. ± ± «(Continued) Problems associated with concurrent access. then while saving the work. For eg ± if the engineers are concurrently accessing any object ( modifying the code). you can¶t make progress if the developer of module C keeps changing C. then inconsistency can still occur. ± ± ± . Providing a stable development environment.

he is provided with a copy of a baseline item. The user then makes changes to his private copy.Necessity Of SCM ± «(Continued) ± When any user needs any of the object to be changed. . Only if the user is through with all modifications in his private copy. System accounting & maintaining status information ± System accounting keeps track of who made a particular change & when the change was made. 4. change is updated to form the new baseline.

and that can be changed only through formal change control procedures.Baseline   A baseline is a SCM concept that helps us to control change without seriously impeding justifiable change. The IEEE defines a baseline as : ³A specification or product that has been formally reviewed & agreed upon.´ . that thereafter serves as the basis for further development.

changes may be made quickly & informally. . but a specific. formal procedure must be applied to evaluate & verify each change.Baseline  «(Continued)  Before a software configuration item (SCI) becomes a baseline. changes can be made. However. once the baseline is established.

± the elements of the design model have been documented & reviewed.g. Once all parts of the model have been reviewed.Baseline   «(Continued)  In the context of S. Errors are found & corrected. .E. the design model becomes a baseline. ± a baseline is a milestone in the development of the s/w. A baseline is marked by the delivery of one or more SCI that have been approved as a consequence of formal technical review. For e. corrected & then approved.

Baseline «(Continued) .

After SCI¶s are reviewed & approved they are placed in project database.Baseline  ± ± ± «(Continued) Explanation for above fig. it should be copied from the project database into the engineer¶s private workspace. These extracted SCI¶s can be modified only if SCM controls are followed.E. task produces one or more SCI¶s. ± . When member of s/w team wants to make modification to a baselined SCI. ± S.

S/w Configuration Item (SCI)    SCI is information that is created as a part of the s/w engineering process. a named program component like a C++ function or a java applet. browsers. It can be a document. Not only the SCI¶s which are derived from different work products are placed in configuration control. tools like compilers. a entire suit of test cases. . other automated tools are also a part of configuration control. but also some of the imp. linkers. editors.

g. It is possible that a new version of tool (e. like the s/w that they help to produce. source code & data.SCI «(Continued)  Why these tools are placed as a part of Configuration control? ± ± ± Because. can be baselined as a part of a comprehensive configuration management process. tools. a compiler) might produce different results than the original version For this reason. .. they my be available when changes to the s/w configuration are to be made. these tools are used to produce documentation.

 .SCI «(Continued)  In reality. attributes & is connected to other objects by a relationship. all SCI¶s are organized to form configuration objects & is placed in project database with a single name. A configuration object has a name.

If a change were made to the source code object. Design Specification. A curved arrow indicates a compositional relation. ComponentN. i. DataModel. DataModel & ComponentN are part of DesignSpecification. Each of the object is related to others as shown by arrows. the interrelationship enables a s/w engineer to determine what other objects might be affected? . A double headed straight arrow indicates an interrelationship.e.SCI «(Continued)      The configuration objects. SourceCode & TestSpecification are each defined seperately.

2.SCM Process  The SCM Process Defines the series of tasks that have 4 primary objectives : 1. 4. 3. . To identify all items that collectively define the s/w configuration To manage changes to one or more these items To facilitate the construction of different versions of an application To ensure that s/w quality is maintained as the configuration evolves over time.

SCM tasks can be viewed as concentric layers.  5 SCM Tasks: 1. 4. 2. 5.SCM Process «(Continued)  To ensure that s/w quality is maintained as the changes are accepted over time. 3. Identification Change Control Version Control Configuration Auditing Reporting Reporting Configuration Auditing Version Control Change Control Identification SCI¶s .

creation date. it must be identified. ± When a new SCI is created. if no changes are requested for the SCI.g. ± Each & every SCI created is also assigned to a specific version of the s/w ± The record of all these SCI¶s (i. they become a part of s/w configuration of one or more versions of an application or system.  .e.SCM Process «(Continued)    The software configuration items (SCI¶s) flow outward through these layers throughout their lifetime. the change control layer does not apply. When SCI moves through different layers. version etc. However.) is maintained for configuration auditing purpose. it¶s name. E. the actions specified for each & every layer need not be applied (not a must) to them. So.

source code for a component etc. Basic Objects Aggregate Objects ± Basic Object ± is a unit of information that has been created by a s/w engineer during analysis. design. 2. . 2 types of objects can be identified: 1. e. It might be a section of a requirement specification.g. each should be separately named & then organized using an object oriented approach. part of design model.SCM Process «(Continued)  Identification of object in s/w configuration ± ± To control & manage s/w configuration items. code or test.

a description.g.SCM Process «(Continued) ± ± ± ± ± Aggregate Object ± is a collection of basic objects & other aggregate objects Each object has a set of distinct features that identify it uniquely (i. ± by using the simple notation Class diagram <part ±of> analysis model. . We can create hierarchy of SCI. change or version information. The object description is a list of data items that identify the SCI type represented by the object.e. a list of resources & a realization) An object name is a character string that identifies the object uniquely. Analysis Model <part-of> requirement specification. For e. name.

uncontrolled changes rapidly leads to chaos. Change control includes both human procedures & automated tools. The change control process is illustrated below: .Change Control    For a large s/w engineering projects.

Change Control «(Continued) .

Change Control «(Continued) .

The ECO describes    the change to be made The constraints that must be respected & the criteria for review & audit. The result of such evaluation is presented as a Change Report. overall impact on other configuration objects. ECO (engineering change order) is generated. This report is verified by CCA (change control authority ± a person or a group) who makes the final decision for approval or disapproval of change report. cost incurred on these changes etc. For each approved change.Change Control «(Continued)  Explanation for change control process : ± ± ± ± A request for a change is submitted & evaluated to assess the merits. . side effects.

Access Control Synchronization Control . change is made. These version control mechanisms. The object (s) is then ³checked in´ to the database & then appropriate version control mechanisms are used to create the next version of the s/w. implement 2 important elements of change management: 1. 2.Change Control «(Continued) ± ± ± The object (s) to be changed can be ³checked out´ of the project database. & appropriate SQA activities are applied.

Now. a baseline can be created. Once a SCI becomes a baseline. . Then built the new version if needed & then distribute the new version. the developer must gain approval from the project manager or from CCA. these changes can be promoted for inclusion in next release. µProject Level Change Control¶ is implemented.Change Control «(Continued) ± ± ± ± ± Once the object has undergone formal technical review & has been approved. Once approved by CCA. to make a change.

3. 2. it become frozen.Version Control    When item is baselined. The term frozen means that the item can only be changed by creating a new version. Version control combines procedures & tools to manage different versions of configuration objects that are created during the s/w process A version control system is integrated with following capabilities: 1. A project database (repository) that stores all relevant configuration objects A version management capability that stores all versions of configuration objects A make facility that enables the engineers to collect all the configuration objects & construct the specific version of a software .

Version Control «(Continued)  A number of version control systems establish a change set ± ± ± A change set is a collection of all changes that are required to create a specific version of a s/w. for any application a number of named change sets can be identified. These named change sets enable the engineers to construct the version of the s/w by specifying change to baseline configuration. It captures all changes to all files in the configuration along with the reason for changes & details of who made the changes & when. .  Hence.

each node is a complete version of the s/w. Each version is the collection of SCI¶s .Version Control «(Continued)    One representation of the different versions of a system is the evolution graph which is shown in the following figure. Here.

Configuration Audit  To ensure that the changes has been properly implemented. Formal Technical Reviews Software configuration audit Focuses on the technical correctness of the configuration object that has been modified. Formal Technical Reviews    . 2. 1. The formal technical review must be conducted for all but the most trivial changes. 2 methods are used : 1. The reviewers assess the SCI to determine consistency with other SCI¶s or potential side effects.

Software Configuration Audit   SCA assess configuration object for characteristics that are not considered during Formal Technical Reviews.Configuration Audit «(Continued) 2. 3. 4. 6. Has the change specified in the ECO been made? Have any additional modifications been incorporated? Has a formal technical review been conducted to assess technical correctness? Has the s/w process been followed & have s/w engineering standards been properly applied? Has the changes been highlighted in SCI? Have the change date & change author been specified? Have SCM process been followed? Have all related SCI¶s been properly updated? . 2. 5. The audit answers the following questions : 1.

When SCM is a formal activity. the audit questions are asked as part of formal technical review. Such formal configuration audits also ensure that the correct SCI¶s have been incorporated into a specific build & all documents are up-todate & consistent with the version that has been built. the SCM audit is conducted separately by the quality assurance group. .Configuration Audit «(Continued)    In some cases.

. What happened? Who did it? When did it happen? What else will be affected?  The Status Reporting entry is made in the following conditions ± ± ± SCI is assigned a new or updated identification a change is approved by CCA Whenever the configuration audit is conducted. 3.Status Reporting  Also called as µstatus accounting¶. 2. 4. is a SCM task that answers the following questions : 1. the results are reported.

. so that s/w developers or maintainers can access change information.Status Reporting «(Continued)  Output from status reporting may be placed in an on-line database or a website.

Originally developed at Bell Labs in 1972 for IBM system. the source code& documentation of s/w system) It is an integral part of a s/w development & maintenance system known as µProgrammers Workbench¶ It was the 1st Source code revision control system. It was later rewritten for UNIX It is used to store versions in compact manner by minimizing the amount of disc space .Source Code Control System (SCCS)       SCCS is a system for controlling changes to files of text (typically.