Anda di halaman 1dari 53

TiPS e-FM

Software Configuration
Management
Introduction to SCM

TiPS e-FM

Agenda Of
Discussion
What will we cover ???
What

is CM? What is SCM?


why SCM?
SCM and CMM.
SCM Activities: Identification, Control, Status Accounting, Auditing
SCC: S/W Libraries, Change Mgmt, Baselining
Introduction to SCM Tools
Architectural Evolution of SCM Tools
FAQ

TiPS e-FM

Introduction to SCM
Configuration ?
In simple words, A configuration is a list of
components, and their relative arrangement
The arrangement of a system as defined by the
number, nature and interconnection of its
constituent components.
The configuration of our system is the exact (well
defined) list of all the parts used, their relative
arrangement and methods to be used to construct our
system from these parts.

TiPS e-FM

Introduction to SCM
Component ?
One of the parts that make up a system.

It is the smallest piece of your system which you


are going to want to manage.

TiPS e-FM

Introduction to SCM
Configuration Management ?
( from IEEE standard glossary of Software Engineering Terminology )

A discipline applying technical and administrative


direction and surveillance to: identify and document
the functional and physical characteristics of a
configuration item, control changes to those
characteristics, record and report change processing
and implementation status, and verify compliance
with specified requirements.

TiPS e-FM

Introduction to SCM
Configuration Management ?
Configuration Management is a process for efficiently
developing and maintaining software by improving:
Accountability
Reproducibility
Traceability
Coordination

TiPS e-FM

Introduction to SCM
Configuration Management (Working Def.)
It is a management discipline which:
Identifies the proposed or implemented (actual) configuration
of a system at discrete points in time;
Systematically records and traces changes to all system
components (conceptual and physical);
Provides tools for controlling changes;
Allows everything happening with (and to the) system,
throughout the entire life-cycle of the system, to be verified via
auditing and reporting tools.
For purposes of assuring:
Integrity, accountability, visibility, reproducibility, project
coordination and traceability.
Former control of system / Product evolution

TiPS e-FM

Introduction to SCM
What is Software?
Structured information with:
Hierarchical
Logical
Functional
Properties
Created as text
Machine procurable in its most advanced state
Maintained in various forms during development, use
and operations

TiPS e-FM

Introduction to SCM
Software Configuration ?
Software configuration is a well defined arrangement
of software parts and the exact procedures to be
used for reconstructing it.
This must also include procedures for reconstructing
previous versions and/or releases.

TiPS e-FM

Introduction to SCM
Why SCM ?
To establish and maintain integrity and Traceability
of the software items
To define a library structure for storage and
retrieval of software items
To assess the impact of a recommended change
and to make informed Management decisions in
light of costs and benefits

TiPS e-FM

Introduction to SCM
SCM and CMM
SCM involves identifying the
configuration of the software (i.e.,
selected software work products and
their descriptions) at given points in
time, systematically controlling
changes to the configuration, and
maintaining the integrity and
traceability of the configuration
throughout the software life cycle.
The work products placed under
software configuration management
include the software products that
are delivered to the customer (e.g.,
the software requirements document
and the code) and the items that are
identified with or required to create
these software products (e.g., the
compiler).

TiPS e-FM

Introduction to SCM
Important terms and terminologies
Configuration Item
An aggregation of software that is designated for
configuration management and treated as single
entity in the configuration management process.

TiPS e-FM

Introduction to SCM
Important terms and terminologies...
Version
An initial release, or re-release of a computer software
configuration item, associated with a complete compilation
Indicates a software configuration item having a defined set
of functional capabilities

Revision
Associated with bug fixing and error correction in logic
Does not affect documented functional capabilities (as
requirements have not changed)

Release
Formal notification and distribution of an approved version

TiPS e-FM

Introduction to SCM
Important terms and terminologies...
Traceability - is the ability to link individual events
and parts to each other.
Visibility - Permitting the software to be seen by
anyone who is allowed to see it. Permitting
management to see what is happening and
permitting them to really manage.
Granularity - The concept of generalized method
(process) for identification of CIs.

TiPS e-FM

Introduction to SCM
Software configuration Management is
mainly composed of four activities:
Identification (SCI)
Control (SCC)
Status Accounting (SCSA)
Auditing (SCA)

TiPS e-FM

Introduction to SCM
CM Activities in brief :
Identification refers to the general structure of the
product being produced and how the items are to be
identified.
Control refers to the methods to be implemented for the
management and technical control of the myriad
configuaration items identified.
Status Accounting refers to reporting to all concerned management, client and technical - information describing
items and their status.
Auditing refers to activities which are designed to assure
the correct functioning of the SCM system, as defined.

TiPS e-FM

Introduction to SCM
Software Configuration Identification
( from IEEE standard glossary of Software Engineering Terminology )

It is an element of Configuration Management,


consisting of selecting the configuration Items for
the system and recording their functional and
physical characteristics in technical
documentation.
In complex / large systems, this is not about
selecting items, but deciding upon a general
method for the process of selecting.
It is a critical Project Management task.

TiPS e-FM

Introduction to SCM
Software Configuration Identification
Defines granularity of CM
Defines what is needed to be seen.
Assures that the identification scheme reflects the
structure of the
Product
Project
Organization
This process is always coupled with a parallel
process of labelling the item with a distinct and
unique label.
Note that Size of the grains identified by the SCI
process can never be consistent. ?

TiPS e-FM

Introduction to SCM
Software Configuration Control ?
( from IEEE standard glossary of Software Engineering Terminology )

An element of configuration management,


consisting of the evaluation, coordination, approval
or disapproval, and implementation of changes to
configuration items after formal estabilishment of
their configuration identification.

TiPS e-FM

Introduction to SCM
Software Configuration Control ?
It is the techniques with which management
orchestrates processes by which the software portion
of a system achieves and maintains a visible structre
(components and relationships) throughout the system
life-cycle (from conception through retirement). It
provides the procedures, documentation and
organizational structure for control of the system
implementation process. The objective is controlled,
evolutionary change / growth of a system thro' control
via orderly management planning as opposed to
revolutionary change or unexpected / unplanned
modification of the system.

TiPS e-FM

Introduction to SCM
Software Configuration Control ?
Main Procedures involved in SCC
Software development library procedures.
Problem reporting and Change control Procedure
Procedure for estabilishment of CCB.
Release procedures and Estabilishing Baselines.
Document and media storage.
Procedure for non-deliverables.

TiPS e-FM

Introduction to SCM
Software Development (Configuration) Library
Library
Software libraries provide the means for identifying
and labeling baselined entities and for capturing and
tracking the status of changes to those entities

Library types
Dynamic
Controlled
Static

TiPS e-FM

Introduction to SCM
Library Types
Dynamic
developers library under their control
used in developing code

Controlled
master library used for managing current baselines
controlled entry, after verification

Static
software repository
archive various baselines released for use

TiPS e-FM

Introduction to SCM
Movement of Items...
Dynamic to Controlled
As long as an item is being developed, it is in the
Dynamic directory
It moves to Controlled directory when the developer has
finished working on the item and it is ready for review
Items are picked up for reviews from the Controlled
directory
After Review, the item is moved back from Controlled to
Dynamic for bug-fixing
The revised item is moved to Controlled directory for
verification

TiPS e-FM

Introduction to SCM
Movement of Items...
Controlled to Static
Only after the QM releases the item will the SCM
move it to the Static directory
All deliverables take place from the Static directory
only
Baselines are established from Static directory only

TiPS e-FM

Introduction to SCM
Movement of Items...
Is CI
Configured?

CI is assigned.

(Dynamic Library)
(Developer's Area)

No

(Controlled Library)
(Review Area)

Yes

(Static Library)
(Repository Area)
Retrieve CIs for change

Change / Modify CI

(SCM)

(Developer)

Create a new CI
(Developer)
Review CI

(Reviewer)

Rework CI
(Developer)

Yes

Any
Unresolved
Defects?

No

CI is configured
(SCM)

TiPS e-FM

Introduction to SCM
Change Management
Why needed?
To assess the impact of a recommended change and
to make informed Management decisions in light of
costs and benefits

Purpose is to
Control Changes to them throughout the life cycle
Changes to the baselined items handled through
Change Control Procedure

TiPS e-FM

Introduction to SCM
Change Management...
The Change may be triggered by
Problem Report necessitating a change
Suggestions / Ideas that are result of Reviews or
brainstorming session
Suggestions / Ideas for improving overall quality
Feedback / Suggestions / Change Requests from
Client which result in change or addition in
functionality
Changes to environment for software project
Problems and defects found in client supplied items

TiPS e-FM

Introduction to SCM
Change Management...
The Change Control Process (Diagram)
Raise CR

Analyze the
Change

Approve
the
Change

Evaluate the impact on Other


SCIs, Schedule and Effort

(Anyone)

(SCCB)

(SCCB)

Rejected

Close CR

Approved

Assign the responsibilities to change the


CIs affected
Close CR

(PM / TL)

(SCCB)

Configure the
changed Items
(SCM)

Review and test


the changes

Monitor change
implementation

No

Are the CIs


already
Configured?

Yes

Retrieve CIs from S/W library for


change

Plan the change


implementation in
detailed WBS

TiPS e-FM

Introduction to SCM
Baseline
A specification or product that has been formally
reviewed and agreed upon, that thereafter serves
as the basis for further development, and that can
be changed only through formal change control
procedures.
In very simple words, Any time the system is
released, this is called as baseline.
Baseline integrates groups together. (This process
is construction of aggregates)

TiPS e-FM

Introduction to SCM
Baseline ...
Baselines are established when subsequent changes to
the CIs need to be controlled.
A baseline generally consist of CIs that have been
reviewed, tested, delivered/accepted and placed under
Change Control.
Baselines Live forever. Once the baseline is defined released, it can never change! If a change is made, it is a
new baseline.
Once Item is tied into a baseline, changes are made only
via formalized Process, Called CCB. (Establishing a
baseline implies that subsequent changes to CIs of that
Baseline will be subject to review and approval.)

TiPS e-FM

Introduction to SCM
Baseline ...
When to form a Baseline?
At the beginning of the project, with inputs from
client (if applicable), based on which further work is
to be carried out e.g. SRS, HLD etc.
At Phase-end, when a deliverable is complete (as
that is the basis on which the next phase begins)
During development - if a snapshot is necessary.

TiPS e-FM

Introduction to SCM
Software Configuration Control ?
It solves following very common problems.
The shared data problem
The double maintenance problem
The simultaneous update problem

TiPS e-FM

Introduction to SCM
Software Configuration Status Accounting
Standard reports documenting the SCM activities and the
contents of the software baseline are developed and made
available to affected groups and individuals.
SCSA asks:
What happened?
When did it happen?
What were the reasons for the change?
Who authorized the change?
Who performed the change?
What items were affected?

TiPS e-FM

Introduction to SCM
Software Configuration Status Accounting ...
Examples of Status Reports include:
SCCB meeting minutes,
change request summary and status,
trouble report summary and status (including fixes),
summary of changes made to the software baselines,
revision history of configuration items/units,
software baseline status, and
results of software baseline audits.

TiPS e-FM

Introduction to SCM
Software Configuration Auditing
The basic function is to audit functional capabilities and
physical parts of the system.
The functional audit verifies system 'performance to
specifications (requirements)'.
The physical audit verifies that all the particular items that
are listed as present are indeed present, and also that there
are none present which are not listed.
Basically, It's purpose is to ensure that the configuration
documentation and the actual system are in aggrement.

TiPS e-FM

Introduction to SCM
Software Configuration Auditing ...
This Auditing procedure typically specifies that:
There is adequate preparation for the audit.
The integrity of software baselines is assessed.
The structure and facilities of the configuration
management library system are reviewed.
The completeness and correctness of the software
baseline library contents are verified.
Compliance with applicable SCM standards and
procedures is verified.
The results of the audit are reported to the project
software manager.
Action items from the audit are tracked to closure.

TiPS e-FM

Introduction to SCM
Introduction to SCM Tools
In any of the Software Projects, SCM is always
performed.
Sometimes it is manual, Sometimes automated
(Computerized).
What are the differences?

TiPS e-FM

Introduction to SCM
The differences...
Automated SCM
Good for
Large projects
Multiple projects
using common items
ensuring compliance
Prevent surprises
Bad for
sophisticated
judgements
High cost

Manual SCM
Good for
Small / one person
project.
Human judgement
Less cost
Bad for
Heavy use
Many loopholes

TiPS e-FM

Introduction to SCM
The differences...
Manual SCM (Possible Surprises)
Lack of information about changes.
Recurrence of bugs. ( "I fixed that one already ! ")
Confusions resulting from conflicting changes.
Unauthorized changes.
Difficulties in reconstructing old versions.
Incomplete or inaccurate build attempts.
Confusions resulting from a build (say wrong version
of compiler).

TiPS e-FM

Introduction to SCM
The differences...
Automated SCM (Techniques to reduce surprises)
Access Control (Authentication / Authorization)
File Locking
Branches and merging
Baselining (Labelling)

TiPS e-FM

Introduction to SCM
CM Tool Techniques ...
File Locking
Prvents simultaneous updates
Forces coordination
Tracks who is making changes
Prevents inadvertent file changes

Branches and merging


Parallel lines of development can be performed for
later merging.
Multiple developers working on the same file.
Simultaneous updates can be joined later.
Multiple, emergency bug repairs which can be 'folded

TiPS e-FM

Introduction to SCM
Architectural Evolution of CM Tools
Architecture
File Based

Tools
SCCS, RCS, CVS,
TeamWare, PVCS,
TLib, Source Integrity

2nd Generation

Project Repository
Based

AdC/Pro, CCC,
CMVC, P3, PCMS,
SourceSafe

3rd Generation

File Transparency
with Project
Repository

ClearCase,
Continuus/CM

1st Generation

TiPS e-FM

Introduction to SCM
Architectural Evolution...
First Generation - File Based
First generation tools provide what is commonly known as Version
Control. These are tools that are file based in that they store changes
to individual files in file archives. They support a check-out/check-in
model, and provide branching. Archives store ! the contents and the
meta data (user name, labels, comments, etc.) for each file version.
Public domain SCCS and RCS are the "grandparents" of version
control. Many other tools evolved from their model, and many tools in
different generations still use them as their file archiving mechanism.
CVS is a public domain tool that enhances! RCS.
First generation commercial products include Sun Microsystems
TeamWare that is basically a souped up SCCS with a GUI. Intersolv
PVCS and MKS Source Integrity are also commercial products that
have added, on top of file archives, a GUI, a project meta dat! a layer, a
promotion model, and additional functionality.

TiPS e-FM

Introduction to SCM
Architectural Evolution...
Second Generation - Project Repository Based
Tools in the second generation are easy to identify because they store
all project and file metadata in a database (repository) that is separate
from their file archives. This architecture shifts the focus from the file
level to the project level and pro! vides a central view of all project
information. This results in better support for parallel development
and team coordination, and provides the necessary infrastructure to
implement process management.
Second generation products cover a wide range of functionality: from
the more simplistic, but very intuitive, Microsoft Visual SourceSafe; to
the fast command line P3 tool; to the change request based IBM
CMVC; to the change-set based TrueSoftware Aide-d! e-Camp/Pro; to
the process oriented Platinum CCC, and SQL Software PCMS.

TiPS e-FM

Introduction to SCM
Architectural Evolution...
Third Generation - File Transparency Based
A challenge of second generation tools is that controlled files cannot be
accessed directly from other tools unless copies are placed into working
directories from the repository. This can result in the proliferation of local
copies and the temptation to! overwrite the repository with changes made in
the local workarea, potentially undoing changes made in the meantime by
other users. To address this issue come third generation tools that add "file
transparency" while retaining the benefits of a pr! oject repository.
Two third generation products are Atria ClearCase and Continuus/CM from
Continuus. ClearCase accomplishes file transparency by means of a
proprietary file system (MVFS) that intercepts system file access calls (open(),
read(), etc.) and routes them to it! s repository. Continuus/CM provides direct
file access by creating symbolic links from user workareas to its cache
directories. Another unique aspect of third generation products is that the view
of an application that users see is defined by configuration ! specs that
automatically select the applicable file versions to accomplish things like
"Give me release 5 of this product for Sun Solaris, plus all the changes made
to fix bugs 678, 679, and 681 that have been approved by QA."

TiPS e-FM

Questions & Answers


How

is Problem
management related
with SCM ?

Problem

can result in a Change or Defect. Thus problem is


the trigger for Change Management.

TiPS e-FM

Questions & Answers


How

is Build
management related
with SCM ?

Building

systems can take days, and an inefficient build process can


waste hours of developer time, particularly during testing and
integration when you may need to build the whole system to test a
small change. An intelligent build process can reduce build times
dramatically by reusing partially built items from previous builds.
Release support allows developers to track which users have which
versions of which components and, therefore, to be sure which of
those will be affected by a particular change.

TiPS e-FM

Session Summary
What did we cover? ...
What

is CM? What is SCM?


why SCM?
SCM and CMM.
SCM Activities: Identification, Control, Status Accounting, Auditing
SCC: S/W Libraries, Change Mgmt, Baselining
Introduction to SCM Tools
Architectural Evolution of SCM Tools
FAQ

TiPS e-FM

The Road ahead...


How Can CM system relate to process enforcement?
This has been a very controversial topic. Some frequently voiced
ideas include:
CM is intended to help developers.
Integrating CM into a development environment should be
"evolutionary", and not "revolutionary". It takes time and
iterations to do it right.
Develop a proven, bulletproof implementation of an integrated
CM/Development process, then apply it from day one on new
project.
Automation of a good CM process improves the likelyhood it
will be followed and can improve productivity and quality.
Automation of a bad CM process can be worse than no
automation.

TiPS e-FM

The Road ahead...


SCM and Process Management ...
Process Management - control of the software development
activities. For example, it might check to ensure that a change
request existed and had been approved for fixing and that the
associated design, documentation, and review activities have
been completed before allowing the code to be "checked in"
again.
Chances for success may be improved if you first establish a
process on which both the CM and development staff can
agree. Consider the capabilities of the tool you will use and
automate the process in a non-intrusive manner as much as
possible. Process is very site specific.
While process management and control are necessary for a
repeatable, optimized development process, a solid CM
foundation for that process is essential.

TiPS e-FM

The Road ahead...


SCM

and Project Management

A new trend, so far supported by just a few products, is to use


the development progress information held within the CM
system to link with project management systems such as
Microsoft Project. In principle, this should add an extra
dimension to the progress information available to project
managers. This is not yet the case, but the process has started.
And in the future, the scope of what is considered to be CM will
undoubtedly include strong links with project management
systems.

TiPS e-FM

Thank You ...

Your feedback will be highly appreciated. For Any comments, Suggestions ...
Mail To
: Ravindra V Potnis/India/IBM@IBMIN
internet : rpotnis@in.ibm.com

Anda mungkin juga menyukai