Chapter 1 SCM
Chapter 1 SCM
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