Professional Documents
Culture Documents
Topics :
Necessity Baseline SCM SCI Version
Of SCM
Process
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)
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 .. (Continued)
s/w support is a set of s/w engineering activities that occur after s/w has been delivered to the customer. 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 viewed as a SQA activity that is applied throughout the s/w process. The output of the s/w process is information that may be divided into 3 broad categories :
1. 2.
3.
Computer Programs Work products that describe the computer programs ( Documents) Data ( contained within the program or external to it)
Component Elements
A set of tools coupled within a file management system (e.g. database) that enable access to & management of each s/w configuration item. A collection of procedures & task that define an effective approach to change management.
2.
Process Elements
Construction Elements
A set of tools that automate the construction of the s/w by ensuring that the proper set of validated components ( i.e. correct version) has been assembled. To implement effective SCM, the s/w team uses a set of tools & process features.
4.
Human Elements
Necessity Of SCM
The most important reason for configuration management is to control the different deliverable objects. If SCM is not used then the following problem may occur:
1.
Consider a scenario where all the s/w engineers are involved in coding phase. They have their own local copy of the source code. If any engineer is making modifications to his local copy, 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. Finally when the product is integrated, it does not work. Therefore, when several team members work on developing an object, it is necessary for them to work on a single copy of the object, otherwise inconsistency may arise.
Necessity Of SCM
2.
(Continued)
3.
Necessity Of SCM
(Continued)
When any user needs any of the object to be changed, he is provided with a copy of a baseline item. The user then makes changes to his private copy. Only if the user is through with all modifications in his private copy, change is updated to form the new baseline.
4.
System accounting keeps track of who made a particular change & when the change was made.
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, and that can be changed only through formal change control procedures.
Baseline
(Continued)
Before a software configuration item (SCI) becomes a baseline, changes may be made quickly & informally. However, once the baseline is established, changes can be made, but a specific, formal procedure must be applied to evaluate & verify each change.
Baseline
(Continued)
In the context of S.E. 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.g. the elements of the design model have been documented & reviewed. Errors are found & corrected. Once all parts of the model have been reviewed, corrected & then approved, the design model becomes a baseline.
Baseline
(Continued)
Baseline
(Continued)
SCI is information that is created as a part of the s/w engineering process. It can be a document, a entire suit of test cases, a named program component like a C++ function or a java applet. Not only the SCIs which are derived from different work products are placed in configuration control, but also some of the imp. tools like compilers, linkers, browsers, editors, other automated tools are also a part of configuration control.
SCI (Continued)
Because, these tools are used to produce documentation, source code & data, they my be available when changes to the s/w configuration are to be made. It is possible that a new version of tool (e.g., a compiler) might produce different results than the original version For this reason, tools, like the s/w that they help to produce, can be baselined as a part of a comprehensive configuration management process.
SCI (Continued)
In reality, all SCIs are organized to form configuration objects & is placed in project database with a single name. A configuration object has a name, attributes & is connected to other objects by a relationship.
SCI (Continued)
The configuration objects, Design Specification, DataModel, ComponentN, SourceCode & TestSpecification are each defined seperately. Each of the object is related to others as shown by arrows. A curved arrow indicates a compositional relation. i.e. DataModel & ComponentN are part of DesignSpecification. A double headed straight arrow indicates an interrelationship. If a change were made to the source code object, the interrelationship enables a s/w engineer to determine what other objects might be affected?
SCM Process
The SCM Process Defines the series of tasks that have 4 primary objectives :
1. 2. 3. 4.
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.
To ensure that s/w quality is maintained as the changes are accepted over time, SCM tasks can be viewed as concentric layers.
5 SCM Tasks:
1. 2. 3. 4.
5.
SCIs
The software configuration items (SCIs) flow outward through these layers throughout their lifetime. So, they become a part of s/w configuration of one or more versions of an application or system. When SCI moves through different layers, the actions specified for each & every layer need not be applied (not a must) to them.
E.g. When a new SCI is created, it must be identified. However, if no changes are requested for the SCI, the change control layer does not apply. Each & every SCI created is also assigned to a specific version of the s/w The record of all these SCIs (i.e. its name, creation date, version etc.) is maintained for configuration auditing purpose.
To control & manage s/w configuration items, each should be separately named & then organized using an object oriented approach. 2 types of objects can be identified:
1. 2.
Basic Object is a unit of information that has been created by a s/w engineer during analysis, design, code or test.
e.g. It might be a section of a requirement specification, part of design model, source code for a component etc.
Aggregate Object is a collection of basic objects & other aggregate objects Each object has a set of distinct features that identify it uniquely (i.e. name, a description, a list of resources & a realization) An object name is a character string that identifies the object uniquely. The object description is a list of data items that identify the SCI type represented by the object, change or version information. For e.g. by using the simple notation
Class diagram <part of> analysis model; Analysis Model <part-of> requirement specification;
Change Control
For a large s/w engineering projects, uncontrolled changes rapidly leads to chaos. Change control includes both human procedures & automated tools. The change control process is illustrated below:
A request for a change is submitted & evaluated to assess the merits, side effects, overall impact on other configuration objects, cost incurred on these changes etc. The result of such evaluation is presented as a Change Report. 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. For each approved change, ECO (engineering change order) is generated. The ECO describes
the change to be made The constraints that must be respected & the criteria for review & audit.
The object (s) to be changed can be checked out of the project database, change is made, & appropriate SQA activities are applied. 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. These version control mechanisms, implement 2 important elements of change management:
1. 2.
Once the object has undergone formal technical review & has been approved, a baseline can be created. Once a SCI becomes a baseline, Project Level Change Control is implemented. Now, to make a change, the developer must gain approval from the project manager or from CCA. Once approved by CCA, these changes can be promoted for inclusion in next release. Then built the new version if needed & then distribute the new version.
Version Control
When item is baselined, it become frozen. 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. 2. 3.
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
A change set is a collection of all changes that are required to create a specific version of a s/w. It captures all changes to all files in the configuration along with the reason for changes & details of who made the changes & when.
Hence, 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.
One representation of the different versions of a system is the evolution graph which is shown in the following figure. Here, each node is a complete version of the s/w. Each version is the collection of SCIs
Configuration Audit
To ensure that the changes has been properly implemented, 2 methods are used :
1. 2.
Formal Technical Reviews Software configuration audit Focuses on the technical correctness of the configuration object that has been modified. The reviewers assess the SCI to determine consistency with other SCIs or potential side effects. The formal technical review must be conducted for all but the most trivial changes.
1.
SCA assess configuration object for characteristics that are not considered during Formal Technical Reviews. The audit answers the following questions :
1. 2. 3. 4. 5. 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 SCIs been properly updated?
In some cases, the audit questions are asked as part of formal technical review. When SCM is a formal activity, the SCM audit is conducted separately by the quality assurance group. Such formal configuration audits also ensure that the correct SCIs have been incorporated into a specific build & all documents are up-todate & consistent with the version that has been built.
Status Reporting
Also called as status accounting, is a SCM task that answers the following questions :
1. 2. 3. 4.
What happened? Who did it? When did it happen? What else will be affected?
SCI is assigned a new or updated identification a change is approved by CCA Whenever the configuration audit is conducted, the results are reported.
Output from status reporting may be placed in an on-line database or a website, so that s/w developers or maintainers can access change information.
SCCS is a system for controlling changes to files of text (typically, 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. Originally developed at Bell Labs in 1972 for IBM system. It was later rewritten for UNIX It is used to store versions in compact manner by minimizing the amount of disc space