Unit-4-Software Configuration Management
Unit-4-Software Configuration Management
Unit-4-Software Configuration Management
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.
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.
CM is used to essential due to the inventory management, library management, and updation
management of the items essential for the project.
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:
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."
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.