0% found this document useful (0 votes)
3 views

Chapter 1 SCM

Software Configuration Management (SCM) is a systematic process for managing changes in software and documentation throughout the Software Development Life Cycle, aiming to enhance productivity while minimizing errors. It involves tasks such as identification, version control, change control, configuration audits, and status reporting, ensuring that all changes are properly managed and documented. SCM tools like Git and Team Foundation Server facilitate these processes by providing features for concurrency management, version control, and synchronization.

Uploaded by

robaatigu20
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

Chapter 1 SCM

Software Configuration Management (SCM) is a systematic process for managing changes in software and documentation throughout the Software Development Life Cycle, aiming to enhance productivity while minimizing errors. It involves tasks such as identification, version control, change control, configuration audits, and status reporting, ensuring that all changes are properly managed and documented. SCM tools like Git and Team Foundation Server facilitate these processes by providing features for concurrency management, version control, and synchronization.

Uploaded by

robaatigu20
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 24

Chapter one

Intro to
Software Configuration
Management?
SCM intro
 is a process to systematically manage, organize, and control the changes in the
documents, codes, and other entities during the Software Development Life
Cycle.
 The management of a system through control of changes made to hardware,
software, firmware, documentation, test, test fixtures and test documentation of
an automated information system, throughout the development and operational
life of a system.
 The primary goal is to increase productivity with minimal mistakes.
 SCM is part of cross-disciplinary field of configuration management and it can
accurately determine who made which revision.
 When we develop software, the product (software) undergoes many changes in
their maintenance phase; we need to handle these changes effectively.
Cont`d
 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.
Cont`d
 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).
 Software configuration management (SCM) is a supporting-software lifecycle
process that benefits project management, development and maintenance
activities, assurance activities, as well as the customers and users of the end
product.
Cont`d
 The control of changes--including the recording thereof--that are made to
the software and documentation throughout the software system lifecycle.
 the discipline of organizing and managing the evolution of large and
complex software systems.
 SCM concerns itself with answering the question: somebody did
something, how can one reproduce it?
 SCM is seen in different angles
 SCM: as a development support discipline
SCM provides functions that assist developers in performing coordinated changes to
software products and components
 SCM: as a management support discipline
SCM is concerned with controlling changes (modifications) to software products (and
their software artifacts)
Cont`d
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.
 provides the tool to ensure that changes are being properly implemented.
 has the capability of describing and storing the various constituent of software.
 keeping a system in a consistent state by automatically producing derived version
upon modification of the same component.
 Maintaining software integrity, traceability, and accountability
Below are the disadvantages:
 It needs adequate resources with full knowledge about the software configuration
management tools.
 It requires more resources to work with the configuration management process for
small industries.
 It requires a highly configured desktop/laptop for the development stages.
Why 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.
 Software should able to run on various
machines and Operating Systems
 Helps to develop coordination among
stakeholders
SCM Process
 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:
A. Identification of objects in the software configuration
B. Version Control
C. Change Control
D. Configuration Audit
E. Status Reporting
SCM process …cont`d
A) Identification
 To planning properly for the development of the application and identifies the configuration
items as per the scope of the project.
 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).
SCM process …cont`d
B) Version Control or Baseline
 Version Control combines procedures and tools to handle different version of
configuration objects that are generated during the software process.
 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.
SCM process …cont`d
C) 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.
SCM process …cont`d
 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.
SCM process …cont`d
D) 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 regulator that ensures that the integrity of the project's scope is
preserved.
SCM process …cont`d
D) Status Reporting
 Configuration Status reporting, sometimes 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.
Tasks in SCM process
I. Configuration Identification

II. Baselines

III. Change Control

IV. Configuration Status Accounting

V. Configuration Audits and Reviews


Tasks in SCM process … cont`d
I. Configuration Identification
 Is a method of determining the scope of the software system.
 With the help of this step, you can manage or control something even if you don’t
know what it is.
 It is a description that contains the CSCI type (Computer Software Configuration
Item), a project identifier and version information.
Activities during this process:
 Identification of configuration Items like source code modules, test case, and
requirements specification.
 Identification of each CSCI in the SCM repository, by using an object-oriented
approach
 The process starts with basic objects which are grouped into aggregate objects.
Details of what, why, when and by whom changes in the test are made
Tasks in SCM process … cont`d
 Every object has its own features that identify its name that is explicit to all other
objects
 List of resources required such as the document, the file, tools, etc.
Example:
 Instead of naming a File login.php its should be named login_v1.2.php where v1.2
stands for the version number of the file
 Instead of naming folder “Code” it should be named “Code_D” where D
represents code should be backed up daily.
Tasks in SCM process … cont`d
II. Baseline
 A baseline is a formally accepted version of a software configuration item.
 It is designated and fixed at a specific time while conducting the SCM process.
 It can only be changed through formal change control procedures.
Activities during this process:
 Facilitate construction of various versions of an application
 Defining and determining mechanisms for managing various versions of these
work products
 The functional baseline corresponds to the reviewed system requirements
 Widely used baselines include functional, developmental, and product
baselines
 In simple words, baseline means ready for release.
Tasks in SCM process … cont`d
III. Change Control
 Change control is a procedural method which ensures quality and consistency
when changes are made in the configuration object.
 In this step, the change request is submitted to software configuration manager.
Activities during this process:
 Control ad-hoc change to build stable software development environment.
Changes are committed to the repository.
 The request will be checked based on the technical merit, possible side effects
and overall impact on other configuration objects.
 It manages changes and making configuration items available during the
software lifecycle.
Tasks in SCM process … cont`d
IV. Configuration Status Accounting
 Tracks each release during the SCM process.
 This stage involves tracking what each version has and the changes that lead to
this version.
Activities during this process:
 Keeps a record of all the changes made to the previous baseline to reach a
new baseline
 Identify all items to define the software configuration
 Monitor status of change requests
 Complete listing of all changes since the last baseline
 Allows tracking of progress to next baseline
 Allows to check previous releases/versions to be extracted for testing
Tasks in SCM process … cont`d
V. Configuration Audits and Reviews
• Software Configuration audits verify that all the software product satisfies
the baseline needs.
• It ensures that what is built is what is delivered.
Activities during this process:
• Configuration auditing is conducted by auditors by checking that defined
processes are being followed and ensuring that the SCM goals are satisfied.
• To verify compliance with configuration control standards. auditing and
reporting the changes made
• SCM audits also ensure that traceability is maintained during the process.
• Ensures that changes made to a baseline comply with the configuration
status reports
• Validation of completeness and consistency
Participant of SCM process
1. Configuration Manager/CM
 Is the head who is Responsible for identifying configuration items, Ensures team follows the SCM process. The CM
Needs to approve or reject change requests
2. Developer
 Needs to change the code as per standard development activities or change requests. He is responsible for
maintaining configuration of code, should check the changes and resolves conflicts
3. Auditor
 The auditor is responsible for SCM audits and reviews. Need to ensure the consistency and completeness of
release.
4. Project Manager:
 Ensure that the product is developed within a certain time frame,
and Monitors the progress of development and recognizes issues in
the SCM process. Generate reports about the status of the software
system. Make sure that processes and policies are followed for
creating, changing, and testing
5. User
 The end user should understand the key SCM terms to ensure he
has the latest version of the software.
SCM Tools
• Any Change management software should have the following 3 Key features:
 Concurrency Management:
 When two or more tasks are happening at the same time, it is known as concurrent
operation. Concurrency in context to SCM means that the same file being edited by
multiple persons at the same time.
 If concurrency is not managed correctly with SCM tools, then it may create many
pressing issues.
 Version Control:
 SCM uses archiving method or saves every change made to file. With the help of
archiving or save feature, it is possible to roll back to the previous version in case of
issues.
 Synchronization:
 Users can checkout more than one files or an entire copy of the repository. The user
then works on the needed file and checks in the changes back to the repository.
 They can synchronize their local copy to stay updated with the changes made by other
team members.
SCM Tools ..cont`d
1. Git: Git is a free and open source tool which helps version control. It is
designed to handle all types of projects with speed and efficiency.
Download link: https://git-scm.com/
2. Team Foundation Server: Team Foundation is a group of tools and
technologies that enable the team to collaborate and coordinate for
building a product.
Download link: https://azure.microsoft.com/en-us/services/devops/server/
3. Ansible: It is an open source Software configuration management
tool. Apart from configuration management it also offers application
deployment & task automation.
Download link: https://www.ansible.com/

You might also like