6/16/25, 2:38 PM System configuration management - Software Engineering - GeeksforGeeks
Search...
System configuration management - Software
Engineering
Last Updated : 30 Jan, 2024
Whenever software is built, there is always scope for improvement and
those improvements bring picture changes. Changes may be required to
modify or update any existing solution or to create a new solution for a
problem. Requirements keep on changing daily so we need to keep on
upgrading our systems based on the current requirements and needs to
meet desired outputs. Changes should be analyzed before they are
made to the existing system, recorded before they are implemented,
reported to have details of before and after, and controlled in a manner
that will improve quality and reduce error. This is where the need for
Software TestingConfiguration
Course SoftwareManagement
Engineering Tutorial Software Development Life Cy Sign In
System comes. System Configuration
Management (SCM) is an arrangement of exercises that controls
change by recognizing the items for change, setting up connections
between those things, making/characterizing instruments for overseeing
diverse variants, controlling the changes being executed in the current
framework, inspecting and revealing/reporting on the changes made. It
is essential to control the changes because if the changes are not
checked legitimately then they may wind up undermining a well-run
programming. In this way, SCM is a fundamental piece of all project
management activities.
Processes involved in SCM - Configuration management provides a
disciplined environment for smooth control of work products. It involves
the following activities:
1. Identification and Establishment - Identifying the configuration
items from products that compose baselines at given points in time
(a baseline is a set of mutually consistent Configuration Items, which
has been formally reviewed and agreed upon, and serves as the
[Link] 1/8
6/16/25, 2:38 PM System configuration management - Software Engineering - GeeksforGeeks
basis of further development). Establishing relationships among
items, creating a mechanism to manage multiple levels of control and
procedure for the change management system.
2. Version control - Creating versions/specifications of the existing
product to build new products with the help of the SCM system. A
description of the version is given below:
Suppose after some changes, the version of the configuration object
changes from 1.0 to 1.1. Minor corrections and changes result in
versions 1.1.1 and 1.1.2, which is followed by a major update that is
object 1.2. The development of object 1.0 continues through 1.3 and
1.4, but finally, a noteworthy change to the object results in a new
evolutionary path, version 2.0. Both versions are currently supported.
3. Change control - Controlling changes to Configuration items (CI).
The change control process is explained in Figure below:
[Link] 2/8
6/16/25, 2:38 PM System configuration management - Software Engineering - GeeksforGeeks
A change request (CR) is submitted and evaluated to assess
technical merit, potential side effects, the overall impact on other
configuration objects and system functions, and the projected cost of
the change. The results of the evaluation are presented as a change
report, which is used by a change control board (CCB) —a person or
group who makes a final decision on the status and priority of the
change. An engineering change Request (ECR) is generated for each
approved change. Also, CCB notifies the developer in case the
change is rejected with proper reason. The ECR describes the change
to be made, the constraints that must be respected, and the criteria
for review and audit. The object to be changed is "checked out" of the
project database, the change is made, and then the object is tested
again. The object is then "checked in" to the database and
appropriate version control mechanisms are used to create the next
version of the software.
4. Configuration auditing - A software configuration audit
complements the formal technical review of the process and product.
It focuses on the technical correctness of the configuration object that
has been modified. The audit confirms the completeness, correctness,
and consistency of items in the SCM system and tracks action items
from the audit to closure.
5. Reporting - Providing accurate status and current configuration data
to developers, testers, end users, customers, and stakeholders
through admin guides, user guides, FAQs, Release notes, Memos,
Installation Guide, Configuration guides, etc.
System Configuration Management (SCM) is a software engineering
practice that focuses on managing the configuration of software
systems and ensuring that software components are properly
controlled, tracked, and stored. It is a critical aspect of software
development, as it helps to ensure that changes made to a software
system are properly coordinated and that the system is always in a
known and stable state.
SCM involves a set of processes and tools that help to manage the
different components of a software system, including source code,
[Link] 3/8
6/16/25, 2:38 PM System configuration management - Software Engineering - GeeksforGeeks
documentation, and other assets. It enables teams to track changes
made to the software system, identify when and why changes were
made, and manage the integration of these changes into the final
product.
Importance of Software Configuration Management
1. Effective Bug Tracking: Linking code modifications to issues that have
been reported, makes bug tracking more effective.
2. Continuous Deployment and Integration: SCM combines with
continuous processes to automate deployment and testing, resulting
in more dependable and timely software delivery.
3. Risk management: SCM lowers the chance of introducing critical
flaws by assisting in the early detection and correction of problems.
4. Support for Big Projects: Source Code Control (SCM) offers an
orderly method to handle code modifications for big projects,
fostering a well-organized development process.
5. Reproducibility: By recording precise versions of code, libraries, and
dependencies, source code versioning (SCM) makes builds
repeatable.
6. Parallel Development: SCM facilitates parallel development by
enabling several developers to collaborate on various branches at
once.
Why need for System configuration management?
1. Replicability: Software version control (SCM) makes ensures that a
software system can be replicated at any stage of its development.
This is necessary for testing, debugging, and upholding consistent
environments in production, testing, and development.
2. Identification of Configuration: Source code, documentation, and
executable files are examples of configuration elements that SCM
helps in locating and labeling. The management of a system's
constituent parts and their interactions depend on this identification.
3. Effective Process of Development: By automating monotonous
processes like managing dependencies, merging changes, and
resolving disputes, SCM simplifies the development process. Error
[Link] 4/8
6/16/25, 2:38 PM System configuration management - Software Engineering - GeeksforGeeks
risk is decreased and efficiency is increased because of this
automation.
Key objectives of SCM
1. Control the evolution of software systems: SCM helps to ensure
that changes to a software system are properly planned, tested, and
integrated into the final product.
2. Enable collaboration and coordination: SCM helps teams to
collaborate and coordinate their work, ensuring that changes are
properly integrated and that everyone is working from the same
version of the software system.
3. Provide version control: SCM provides version control for software
systems, enabling teams to manage and track different versions of
the system and to revert to earlier versions if necessary.
4. Facilitate replication and distribution: SCM helps to ensure that
software systems can be easily replicated and distributed to other
environments, such as test, production, and customer sites.
5. SCM is a critical component of software development, and effective
SCM practices can help to improve the quality and reliability of
software systems, as well as increase efficiency and reduce the risk
of errors.
The main advantages of SCM
1. Improved productivity and efficiency by reducing the time and effort
required to manage software changes.
2. Reduced risk of errors and defects by ensuring that all changes were
properly tested and validated.
3. Increased collaboration and communication among team members by
providing a central repository for software artifacts.
4. Improved quality and stability of software systems by ensuring that
all changes are properly controlled and managed.
The main disadvantages of SCM
1. Increased complexity and overhead, particularly in large software
systems.
[Link] 5/8
6/16/25, 2:38 PM System configuration management - Software Engineering - GeeksforGeeks
2. Difficulty in managing dependencies and ensuring that all changes
are properly integrated.
3. Potential for conflicts and delays, particularly in large development
teams with multiple contributors.
Comment More info Next Article
COCOMO Model - Software
Advertise with us Engineering
Similar Reads
1. Change Management in Software Engineering
2. Software Project Management Complexities | Software Engineering
3. Software Project Management (SPM) - Software Engineering
4. Classification of Software - Software Engineering
5. Changing Nature of Software - Software Engineering
6. Information System Life Cycle - Software Engineering
7. Objectives of Software Configuration Management
8. Release Management in Software Engineering
9. System Design Strategy - Software Engineering
10. Software Maintenance - Software Engineering
Corporate & Communications Address:
A-143, 7th Floor, Sovereign Corporate
Tower, Sector- 136, Noida, Uttar Pradesh
(201305)
Registered Address:
K 061, Tower K, Gulshan Vivante
Apartment, Sector 137, Noida, Gautam
Buddh Nagar, Uttar Pradesh, 201305
[Link] 6/8