1. Software configuration management is concerned with tracking and controlling changes to software work products throughout the development and maintenance lifecycles.
2. It involves identifying work products under configuration control, implementing a change control process to authorize changes, and using configuration management tools to track revisions, versions, and variants of work products.
3. The goals of configuration management include preventing unauthorized changes, coordinating changes across variants, and accurately determining the current project status.
2. • A systematic software configuration management(SCM) process with
appropriate tool support needs to be deployed.
• It is concerned with tracking and controlling changes to the software.
• Maintenance phase-work products associated with software change.
• Each member of development or maintenance team would assign to handle
modification requests.
• In the above situation, unless a proper configuration management system is
deployed, several problems can appear.
3. • Context in which configuration management is necessary:
• Development phase- work products get modified.
• Maintenance phase- work products change due to various types of enhancements.
• State of work products change both during development as well as maintenance
phase.
• The state of all work products at any point of time is called the configuration of the
software product.
• Effectively tracking and controlling the configuration of a product through entire life
cycle.
• Configuration management tool- effective.
4. • Few Terminologies:
• Configuration:
• Work products referred as configuration items.
• Assume as a set of files representing various work products.
• Work products(W1,W2,…Wn).
• Version:
• Development and maintenance activities are carried-the configuration keeps
on changing.
• Refer last week/month configuration.
• Version is a configuration that existed at certain point in time.
• It is a numbering scheme that helps us identify a specific configuration at
certain point of time.
5. • Revision:
• It is numbering scheme that is used to identify that state of configuration item at any time.
• Each time work product updated its change.
• Work product goes through series of updates till it reaches desired state.
• Successive states of work products-successive revisions.
• Baseline:
• It is a software configuration that has been formally reviewed and agreed upon and serves
as a basis for further development.
• Variant:
• Variants are versions that are intended to coexist.
• Different variants may be needed to run the software on different operating systems or
different hardware platforms.
• Even the initial delivery of software might consist of several versions and more variants mat
be created later.
6. • Purpose of software configuration management:
• Problems associated with concurrent access:
• Important reason for configuration management is to control the access to the
different deliverable objects.
• Example: single copy is maintained, several developers working on it. One /
two developers carry out changes to same work product leads to problem.
• Undoing Changes:
• It becomes easy to undo some part of a version or even rollback development
to a certain version.
• Unless proper configuration management systems is in place, it become svery
difficult to undo a change.
7. • System Accounting:
• It denotes keeping track of who made a particular change to a configuration item,
what change was exactly made.
• Knowing what, who, and when changes will help understanding why changes were
made.
• Handling Variants:
• If you have several variants of the same module and find that a bug exists in one of
them.
• Then it has to be fixed in all versions and revisions.
• Making a change to one program should reflected in all relevant versions and
revisions.
8. • Accurate Determination of project status normally:
• Project manager-responsible for using configuration management tool.
• With the help of it, PM can easily determine the current state of the project.
• Preventing Unauthorized access to the work products:
• CM helps to implement a controlled change process.
• It therefore becomes possible to prevent unauthorized changes to the work
products.
• Configuration Management Process:
• Two principal activities:
• Configuration Identification:
• Deciding which parts of the system should be kept under configuration
management.
• Configuration Control:
• Ensure that the changes to a system occur smoothly.
9. • Configuration Identification:
• PMs classify the work products associated with a software development
process in three main categories
• Controlled-work products that are put under configuration control. TMs
should follow some formal procedure to change these.
• Pre-controlled-not yet under configuration control, but will be.
• Uncontrolled-will not be subject to configuration control.
• Controllable work products:
• Requirement specification
• Design documents
• Tolls used to build system(linkers, analysers, parsers,etc.,)
• Source code for each module
• Test cases
• Problem reports.
10. • Configuration Control:
• It is a part of configuration management system- most directly affects the day-today
operations of developers.
• It allows only authorized changes to the controlled objects and prevents unauthorized
changes.
• PM-give permission to some members.
11. • Modification to a work Product under Configuration Control:
• Made a reserve request when there is a need for change.
• A reserve request will be honoured only if authorization has been given by PM to that member.
• After the reserve command successfully executes, a private copy th work product is created in their
local directory.
• Once they have satisfactorily completed all necessary changes to the work product on their private
copy, the changes need to be restores in Configuration management repository.
• However, restoring the changed work product to the system configuration requires the permission of
a change control board(CCB).
• Change is well motivated.
• Developer has considered and documented the effects of the change.
• Changes interact well with other developers.
• CCB have validated the change.
• Release Management:
• A release management process systematizes the work carried out by the developers to provide a
new release of software.
• Minimal effort on the part of the developer to upload a new release of software.