Unit-4-Software Configuration Management

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

When we develop software, the product (software) undergoes many changes in their maintenance

phase; we need to handle these changes effectively.

Several individuals (programs) works together to achieve these common goals. This individual
produces several work product (SC Items) e.g., Intermediate version of modules or test data used
during debugging, parts of the final product.

The elements that comprise all information produced as a part of the software process are
collectively called a software configuration.

As software development progresses, the number of Software Configuration elements (SCI's) grow
rapidly.

These are handled and controlled by SCM. This is where we require software configuration
management.

A configuration of the product refers not only to the product's constituent but also to a particular
version of the component.

Therefore, SCM is the discipline which

o Identify change
o Monitor and control change
o Ensure the proper implementation of change made to the item.
o Auditing and reporting on the change made.

Configuration Management (CM) is a technic of identifying, organizing, and controlling


modification to software being built by a programming team.

The objective is to maximize productivity by minimizing mistakes (errors).

CM is used to essential due to the inventory management, library management, and updation
management of the items essential for the project.

Why do we need Configuration Management?


Multiple people are working on software which is consistently updating. It may be a method where
multiple version, branches, authors are involved in a software project, and the team is
geographically distributed and works concurrently. It changes in user requirements, and policy,
budget, schedules need to be accommodated.
Importance of SCM
It is practical in controlling and managing the access to various SCIs e.g., by preventing the two
members of a team for checking out the same component for modification at the same time.

It provides the tool to ensure that changes are being properly implemented.

It has the capability of describing and storing the various constituent of software.

SCM is used in keeping a system in a consistent state by automatically producing derived version
upon modification of the same component.

SCM Process
It uses the tools which keep that the necessary change has been implemented adequately to the
appropriate component. The SCM process defines a number of tasks:

o Identification of objects in the software configuration


o Version Control
o Change Control
o Configuration Audit
o Status Reporting
Identification

Basic Object: Unit of Text created by a software engineer during analysis, design, code, or test.

Aggregate Object: A collection of essential objects and other aggregate objects. Design
Specification is an aggregate object.

Each object has a set of distinct characteristics that identify it uniquely: a name, a description, a
list of resources, and a "realization."

The interrelationships between configuration objects can be described with a Module


Interconnection Language (MIL).

Version Control

Version Control combines procedures and tools to handle different version of configuration objects
that are generated during the software process.

Clemm defines version control in the context of SCM: Configuration management allows a user
to specify the alternative configuration of the software system through the selection of appropriate
versions. This is supported by associating attributes with each software version, and then allowing
a configuration to be specified [and constructed] by describing the set of desired attributes.
Change Control

James Bach describes change control in the context of SCM is: Change Control is Vital. But the
forces that make it essential also make it annoying.

We worry about change because a small confusion in the code can create a big failure in the
product. But it can also fix a significant failure or enable incredible new capabilities.

We worry about change because a single rogue developer could sink the project, yet brilliant ideas
originate in the mind of those rogues, and

A burdensome change control process could effectively discourage them from doing creative
work.

A change request is submitted and calculated to assess technical merit; potential side effects, the
overall impact on other configuration objects and system functions, and projected cost of the
change.

The results of the evaluations are presented as a change report, which is used by a change control
authority (CCA) - a person or a group who makes a final decision on the status and priority of the
change.

The "check-in" and "check-out" process implements two necessary elements of change control-
access control and synchronization control.

Access Control governs which software engineers have the authority to access and modify a
particular configuration object.

Synchronization Control helps to ensure that parallel changes, performed by two different
people, don't overwrite one another.

Configuration Audit

SCM audits to verify that the software product satisfies the baselines requirements and ensures
that what is built and what is delivered.

SCM audits also ensure that traceability is maintained between all CIs and that all work requests
are associated with one or more CI modification.
SCM audits are the "watchdogs" that ensures that the integrity of the project's scope is preserved.

Status Reporting

Configuration Status reporting (sometimes also called status accounting) providing accurate status
and current configuration data to developers, testers, end users, customers and stakeholders
through admin guides, user guides, FAQs, Release Notes, Installation Guide, Configuration Guide,
etc.

You might also like