0% found this document useful (0 votes)
239 views24 pages

Software Configuration Management

Software configuration management (SCM) involves identifying, controlling, auditing and reporting modifications to software. It establishes baselines during development and uses version control procedures and tools. Change control and configuration audits help ensure quality, while status reporting improves communication.

Uploaded by

Haveit12
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
239 views24 pages

Software Configuration Management

Software configuration management (SCM) involves identifying, controlling, auditing and reporting modifications to software. It establishes baselines during development and uses version control procedures and tools. Change control and configuration audits help ensure quality, while status reporting improves communication.

Uploaded by

Haveit12
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 24

Software

Software Configuration
Configuration
Management
Management (SCM)
(SCM)
 Overview
 What is SCM?
 What are the processes of SCM?
 How does each process do?
 Summary
Software
Software Configurations
Configurations

 Software configuration -- the output


 Computer programs (source and executables)
 Documents
 Data
 Software Configuration Management (SCM)
 The art of identifying, organizing and controlling
modifications to the software being built
Why
Why Do
Do We
We Need
Need SCM?
SCM?
 First Law of System Engineering
 No matter where you are in the system life
cycle, the system will change and the desire to
change it will persist throughout the life cycle
 Sources of Change
 New business or market conditions
 new customer needs
 Organization and/or business downsizing
 Budgetary or scheduling constraints
Baseline Concept
 IEEE defines a baseline as:
 A specification or product that has been formally
reviewed and agreed upon, that thereafter serve as the
basis for further development, and that can be changed
only through formal change control procedures
 A baseline is a milestone in the development of
software that marked the delivery of one or more
software configuration items
Common Baselines

System engineering
System specification
Requirement analysis
Software requirement
Software design specification
Design specification
Coding
Source code
Testing
Test plans/Procedures/Data
Release
Operational system
Software Configuration Item (SCI)
 Information created as part of SE process
 SCIs used as target in SCM:
 System specification
 Software project plan
 Software requirements specification
 Preliminary user manual
 Design specification
 Source code listing
SCI (Cont’d)
 Test specification
 Operation and installation manuals
 Executable program
 Database description
 As-built user manual
 Maintenance documents
 Standards and procedures for SE
SCI Modification Process
SCM Process

 Identification
 Version control
 Change control
 Configuration auditing
 Status reporting
Object identification in SW configuration

 SCI can be named and organized using OO


approach
 Two types of objects:
 basic object: ‘unit of text’ created during
analysis, design, coding, or testing.
 Aggregated objects: a collect of basic objects
Object identification in SW
configuration (cont’d)

 Features of objects:
 name: a character string
 description: a list of data items to identify the SCI
type and a project id, version information, etc.
 resources: entity that are provided, processed,
referenced by the object
 Realization: a pointer to ‘unit of text’ for a basic
object or null for an aggregate object
Object identification in SW
configuration (cont’d)

 Relationships between objects


 part-of: a hierarchical relationship
 interrelated: a cross-structural relationship
 Object identification methods
 evolution graph
 automated SCM tools
 module interconnection language
Configuration
Configuration Objects
Objects
Evolution Graph

obj obj
1.3 1.4
obj obj obj
1.0 1.1 1.2
obj obj
2.0 2.1

obj obj
1.1.1 1.1.2
Version Control
 Some of the issues
 When an executable is built, the versions of its
constituents must be consistent.
 If A depends upon B and B is recompiled, A may
also need to be recompiled.
 What if multiple people need to modify same SCI?
 Need to know what version different customers have
 How do you keep track of 100’s or 1000’s of
modules?
Version
Version Control
Control

 Evolution graph to represent different


versions
 Uses an object pool representing components,
variants and versions, and their relationship
 RCS (Revision Control System) is common
tool.
 Use for documentation as well as code
development.
Version
Version Control
Control Support
Support

 At the language level (in Ada):


With B;
Spec A Spec B
Body A Body B

 If only body of B changes, no change to A


 If spec of B changes, A must be recompiled
Change Control

Change request from user

Developer evaluates

Change report is generated

Change control authority makes decision

Request is queued, Change request is denied


persons are assigned
User is informed
“Check out” SCI(s)
Change Control (cont’d)
Make the change/review change

‘Check in’ changed SCIs

Establish a baseline for testing

Do SQA and ‘promote’ changes for inclusion in next


release

Rebuild appropriate version

Audit the SCI changes/ include changes in new version

Release the new version


Access and Synchronization Control
Configuration Audit
 Two approaches can be used to ensure proper
implementation of change:
 formal technical review
 software configuration audit
 CA assesses a configuration object for characteristics that
are not generally not considered during review
 CA generally checks:
•Changes incorporated •SCM procedures followed
•FTR conducted •all related SCIs properly updated
•SE standards followed •change date and author specified
Status Reporting

 Event occurred -- An SCI received updated ID


 people involved
 Time happened
 Effects on others
 Generated on a regular basis
 To improve communication among all parties
Summary

 SCM identifies, controls, audits and reports


modifications
 An object becomes a baseline once developed
and reviewed
 Version control is the set of procedures and
tools for managing the use of these objects
Summary
Summary

 Change control is a procedure activity


necessary to achieve quality and consistency
 Configuration audit is an SQA activity to
help ensure quality is maintained
 Reporting provides information for better
communication

You might also like