Download as pdf or txt
Download as pdf or txt
You are on page 1of 8

Software Configuration Management (SCM)

SCM actually consists of several separate yet cumulative disciplines.


Version Management is an entry point for SCM

TM
TM

Abstract :
Software Configuration Management (SCM) is an essential software engineering discipline
used to manage change in today’s complex, fast-paced software development environment.
Many organizations approach SCM without a long term plan. When SCM related problems
occur, they are solved on an “as-needed” basis. Companies in this reactive stance miss
significant benefits SCM can provide. They are forced to experience the negative impact of
each successive SCM – related failure before can act to solve it. This white paper presents the
fundamental concepts of SCM, its benefits for developers and the return on investment (ROI)
for the business. Using examples, we will explore why you need to organize, manage and
protect digital assets during team development, and why code and content need to be
managed together for maximum efficiency of SCM in the e-business enterprise. We will also
discuss the different commercial and non-commercial tools used for source control and their
benifits.

Need For SCM:


Software development practices have changed dramatically over the years. The new
applications represent multi–faceted, cross-disciplinary efforts that involve the work of many
individual contributors. The solution is SCM, instituted in an orderly and planned manner to
anticipate and prevent development risks and application failures. SCM tools are the glue that
holds together the various components and phases of the application life cycle. SCM is used
during all life cycle phases and provides a structure for identifying and controlling changes to
documentation, requirements, models, code and web artifacts such as HTML and XML files.
SCM enhances productivity and boosts application quality because it automatically versions files,
labels and organizes them as they change during the development process. SCM prevents
unintentional code overwrites, which can result in missed bug fixes or customer-specific change
requests. SCM also enables parallel development. Instead of developing sequentially, you
develop concurrently because it is safe and easy to do so. Timelines become more
predictable. You get to market faster, with fewer errors.

White paper: Software Configuration Management (SCM). Page 2/8


TM

SCM Features:
SCM actually consists of several separate
yet cumulative disciplines. Version
Management is an entry point for SCM.
Issue Management and automated build
tools are often integrated with version
management in SCM suites. The addition of
process and work flow control tools enables
a new level of change management,
including definition and control of baselines
and releases.

Version Management :
Version is a named instance of a product or component, a specific release of a software product.
Several projects may want to share and reuse components across teams such as COM objects,
EJBs, DLLs, LIB and Include Files, etc. When these components are stored in a central
repository, then everyone can access the latest version. A version management tool may
include some or all of the functions listed below.

File locking to prevent simultaneous modifications.

Security to prevent unauthorized access.

Branching to allow multiple developers to modify the same code base.

Version labeling to group related files together and treat them as a unit.

Multiple branches can be merged back into a single code base.

Multi–site replication to synchronize the work of distributed development teams.

White paper: Software Configuration Management (SCM). Page 3/8


TM

Build Management :
The build management process describes the activities necessary to support the software
application transformation from development to run time. A defined build process is an essential
part of any development cycle because it helps close the gap between the development,
integration, test, and production environments. A build process alone will speed the migration of
software from one environment to another. With build management as part of your SCM plan,
you can:

Track which source files are to be included in a given build.

Know the parent/child relationships between source, object, & executable files knows
which child files are out-of-date due to a change in one or more of its parent files.

Avoid unnecessary rebuilds of child files whose parents have not changed.

Avoid having to rebuild at each test phase to ensure consistency, because all built
objects are automatically placed under version control.

Issue Management :
A subset of change management, generally referring to help desk reported problems only. With
automated issue and change management, it becomes easy to capture and track change
requests and project issues, and obtain the metrics and reports to support team decisions. You
will be able to see how many bugs were found at each stage – Development, System testing,
User Acceptance testing, Production and so forth- and know the cost of fixing them. And, you
may want to see the sequence of checkpoints and approvals to more effectively assign
ownerships and track developer results.

Process and Workflow Management :


Process and workflow management capabilities allow organizations to define, control and tailor
their development workflow including change, build and release processes across the entire
software lifecycle. The result is significant improvement in consistency, repeatability and
predictability of development effort and products. Process Management focuses on standards
development to support the entire life-cycle of business process management – from process
design, through deployment, execution, maintenance, and optimization.

White paper: Software Configuration Management (SCM). Page 4/8


TM

Baseline Management :
The software baseline refers to all source code, run time files, documentation, configuration
files, and installation scripts that comprise a software release, both input and output of the build
management process. The baseline must include any data or database related scripts or files
that were used in the creation of the release. Stored as part of the baseline is information about
compilers, operating systems, and dependent systems (internal and third party) that, together
with the baseline, will enable the organization to recover from a disaster, comply with an audit, or
understand the full release and its context.

Release Management :
Release management provides full traceability, which records the details of customers/sites
who have received product releases and which releases have been issued to them. This means
that, for any files that need to be changed, analysts can query where and in what manner the file
is being used. Additionally, release management protects the released files from unauthorized
modification thus closing the backdoor whereby developers can make “quick fixes.”
Sophisticated release management products can also create a delta release, which includes
those items which have changed since the previous specified release was made. This can
greatly decrease installation time and conversely reduce the amount of time that the production
system must be off-line.

CVS :
CVS is the Concurrent Versions System, the dominant open-source network-transparent
version control system. CVS is useful for everyone from individual developers to large,
distributed teams:

Its client-server access method lets developers access the latest code from anywhere there's
an Internet connection.

Its unreserved check-out model to version control avoids artificial conflicts common with the
exclusive check-out model.

Its client tools are available on most platforms.

CVS saves its version control information in RCS files stored in a directory hierarchy, called the
Repository, which is separate from the user’s working directory. CVS is intended to handle
source control for files in three major situations:

White paper: Software Configuration Management (SCM). Page 5/8


TM

Multiple developers working on the same files.

Tracking a stream of releases from a source vendor.


If you are making changes to sources distributed by someone else, the CVS feature, called
Vendor Branch, allows you to combine local modifications with repeated vendor releases.
Branching Development

Aside from the “Vendor Branch”, there are three kinds of “branches in development” that
CVS can support.Your working directory can be treated as a private branch. A development
branch can be shared by one or more developers. At release time, a branch is usually
created for bug fixes.

Disadvantages:

CVS is not a build system.

CVS is not a substitute for management.

CVS is not a substitute for developer communication.

CVS is an industry standard, reliable, free and has been around for a long time. But, CVS is
not a configuration management system. CVS is a source control system.

VSS :
VSS is not the best tool around. It only supports Windows Environment. No
Unix/Linux/MVS/OSR. It keeps all sources together in one place, keeps history of all files and
helps to work in a team by merging shared files. It also controls access to resources. It works

Disadvantages:

Own authentication with own users and passwords (independent of the system accounts).

Doesn’t work with active directory.

Cost of changing our day by day behaviour.

VSS is not so reliable, data can be easily corrupted.

VSS seems to be a black box. If something went wrong, you run its repair tool without a clue
what is going on.

White paper: Software Configuration Management (SCM). Page 6/8


TM

ClearCase :
Rational ClearCase is a configuration management product that provides version control, asset
management, build and release management, including features for merging, branching,
labeling and auditing. Using UCM eliminates the need to develop and maintain scripts and
automates project and developer workspace setup, enabling us to quickly bring new members
onto the team as needed.

Benefits of Using ClearCase:

Rational ClearCase is an extensive set of tools that you can use to manage and track software
resources, whether they are web pages, mission-critical data, documentation,or source code.
Like other source control tools, ClearCase helps you do the following with your software
resources:
Create new versions of a software resource.

Compare versions of a software resource.

Merge changes from one version into another version.

Control simultaneous changes to a software resource.

Mark certain versions as stable sources to be used in builds.

Determine the who, when, and why of a particular change.

ClearCase also provides some unique advantages:

Supports team leaders who need to coordinate the activity of people developing products
together.

Gives project managers control over the extent and frequency with which team members
synchronize their work.

Supports parallel development: developers work in private areas and do not affect the work
of team members.

Assists integrators in combining the efforts of the team in a controlled manner.

Multi-site development: ClearCase has a good multi-site development tool that allows
multiple locations to work on the same code at the same time. It has the benefit over most
other tools because it only moves changes across the net. It is highly customizable, and by
far the best solution for multi-site development out there.

White paper: Software Configuration Management (SCM). Page 7/8


ClearCase is heavy weight, and probably need a dedicated person to take care of it. It is
surely expensive.

Summary :
Development time reduction: achieved due to improved productivity and identification of
repeatable patterns in software development.

Increased business competence: structured work environment facilitates manageability


and solutions of problems. Accuracy and quality are foremost and hence customer
satisfaction is ensured.

Support Parallel Development: Allow for concurrent development by various developers.

Reduced Errors: automating processes minimizes developer/human interaction which


eliminates chances to make mistakes and saves time that would be required to correct
these.

Information Integration: sufficient, relevant and accurate information is readily available to


all the personnel/departments involved in a project - Developers, Analysts, Managers and
Auditors all have the access to pertinent information.

Automation of Software Quality: structuring and controlling SCM components, automating


version control and build management allows teams to focus on development efforts, better
analysis and planning.

Multi-site Synchronization: multi-site and multi-source development can be synchronized


by centrally controlling requirements in order to ensure product consistency with a single set
of specifications.

Tekroots Informatics Pvt. Ltd.


M9, Sector 15,
TM
Jeevan Bima Nagar,
HAL 3rd stage, Bangalore - 560 075
Karnataka, INDIA
www.tekroots.com
Phone: +91.80.2527 2758 \ 2527 4072
(C)2007 Tekroots Informatics Pvt. Ltd. Tekroots is a registered trademarks of Tekroots Informatics Pvt. Ltd.
All rights reserved worldwide. All other brand or product names are the trademarks and property of their respective holders.

White paper: Software Configuration Management (SCM). Page 8/8

You might also like