software configuration management
software configuration management
Management
Introduction
• Software systems always change during development and
use.
• Bugs are discovered and have to be fixed.
• System requirements change, and you have to implement
these changes in a new version of the system.
• New versions of hardware and system platforms become
available and you have to adapt your systems to work
with them.
• Competitors introduce new features in their system that
you have to match.
• As changes are made to the software, a new
version of a system is created.
• Most systems, therefore, can be thought of as a
set of versions, each of which has to be
maintained and managed.
Software Configuration Mangement
• In Software Engineering, Software
configuration management is the task of
tracking and controlling changes in the
software.
• Configuration management (CM) is
concerned with the policies, processes, and
tools for managing changing software systems.
• Software configuration management (SCM) is
an umbrella activity that is applied throughout
the software process. Because change can
occur at any time.
• You need to manage evolving systems because
it is easy to lose track of what changes and
component versions have been incorporated
into each system version.
• Versions implement
– proposals for change,
– corrections of faults, and
– adaptations for different hardware and operating systems.
• There may be several versions under development
and in use at the same time.
• If you don’t have effective configuration
management procedures in place, you may waste
effort modifying the wrong version of a system, deliver
the wrong version of a system to customers, or forget
where the software source code for a particular
version of the system or component is stored.
• Configuration management is useful for
individual projects as it is easy for one person
to forget what changes have been made.
• It is essential for team projects where several
developers are working at the same time on a
software system.
• Some time it may happens that, when the software is
getting developed, a new requirement or set of new
requirements will come.
• Now what will happen?
• Whether that requirements will be implemented in the
same version or not?
• This will be sanctioned by higher authorities.
• And they will check whether this particular
requirement implementation will go beyond the
budget or over on the time.
• So depending upon these criteria, decision will be
taken that
• Whether those new requirements are to be developed
in present developing version or later version.
Configuration Management
• Configuration Management is a process of
tracking and controlling the changes in
software in terms of the requirements, design,
functions and development of the product.
Configuration Management
IEEE defines it as “the process of
• defining the items in the system,
• controlling the change of these items
throughout their lifecycle,
• recording and reporting the status of items
and change requests and
• verifying the completeness and correctness of
items.
• Generally once SRS is finalized, there is less
chance of change of requirement from user. If
they occur, changes are addressed only with
prior approval of higher management, as
there is possibility of cost and time overrun.
Why Change Request?
• Software must be adapted to meet the
requirement of new computing environments
and technology.
• Software must be integrated to implement new
business requirements.
• Software must be extended to make it
interoperable with other more modern
technology platform or different databases.
• Software must be re-architected to make to
make it compatible with new networking
environment.
• Versions implement
– proposals for change,
– corrections of faults, and
– adaptations for different hardware and operating
systems.
• Customers want to modify requirements.
• Developers want to modify the technical
approach.
• Managers want to modify the project strategy.
• Changes may be required to modify or update any
existing solution or to create a new solution for a
problem.