Change Management: - Introduction - SCM Repository - The SCM Process
Change Management: - Introduction - SCM Repository - The SCM Process
Chapter 27
- Introduction
- SCM repository
- The SCM process
3
What is Change Management
(continued)
• SCM is initiated when the project begins and terminates when the software is
taken out of operation
• View of SCM from various roles
• Project manager -> an auditing mechanism
4
Software Configuration
5
Origins of Software Change
6
Elements of a Configuration Management
System
• Configuration elements
• A set of tools coupled with a file management (e.g., database) system that
enables access to and management of each software configuration item
• Process elements
• A collection of procedures and tasks that define an effective approach to
change management for all participants
• Construction elements
• A set of tools that automate the construction of software by ensuring that
the proper set of valid components (i.e., the correct version) is assembled
• Human elements
• A set of tools and process features used by a software team to implement
effective SCM
7
Have you established a baseline yet?
8
Baseline
• An SCM concept that helps practitioners to control change without
seriously impeding justifiable change
• IEEE Definition: A specification or product that has been formally
reviewed and agreed upon, and that thereafter serves as the basis
for further development, and that can be changed only through
formal change control procedures
• It is a milestone in the development of software and is marked by the
delivery of one or more computer software configuration items
(CSCIs) that have been approved as a consequence of a formal
technical review
• A CSCI may be such work products as a document (as listed in MIL-
STD-498), a test suite, or a software component
9
Baselining Process
10
11
The SCM Repository
Paper-based vs. Automated Repositories
13
Automated SCM Repository
(Functions and Tools)
Requirements
Versioning
tracing
SCM Repository
Functions
Dependency Data integrity Configuration
tracking Information sharing management
Tool integration
Data integration
Methodology enforcement
Document standardization
Change Audit
management trails
14
15
Functions of an SCM Repository
• Data integrity
• Validates entries, ensures consistency, cascades modifications
• Information sharing
• Shares information among developers and tools, manages and controls multi-
user access
• Tool integration
• Establishes a data model that can be accessed by many software engineering
tools, controls access to the data
• Data integration
• Allows various SCM tasks to be performed on one or more CSCIs
• Methodology enforcement
• Defines an entity-relationship model for the repository that implies a specific
process model for software engineering
• Document standardization
• Defines objects in the repository to guarantee a standard approach for creation
of software engineering documents
16
Toolset Used on a Repository
• Versioning
• Save and retrieve all repository objects based on version number
• Dependency tracking and change management
• Track and respond to the changes in the state and relationship of all objects in
the repository
• Requirements tracing
• (Forward tracing) Track the design and construction components and
deliverables that result from a specific requirements specification
• (Backward tracing) Identify which requirement generated any given work
product
• Configuration management
• Track a series of configurations representing specific project milestones or
production releases
• Audit trails
• Establish information about when, why, and by whom changes are made in the
repository
17
Summary of CM Tools
http://www.daveeaton.com/scm/CMTools.html
http://www.laatuk.com/tools/SCM_tools.html
http://www.snuffybear.com/ucmcentral_new_vendorlinks.htm
http://www.google.com/Top/Computers/Software/
Configuration_Management/Tools/
http://stason.org/TULARC/business/config-version-management-tools/69-
CM-Tools-With-World-Wide-Web-Sites.html
http://www.cmcrossroads.com/cm-resources/tools/commercial-cm-tools
18
The SCM Process
Primary Objectives of the
SCM Process
20
SCM Questions
21
SCM Tasks
Status reporting
Configuration auditing
Version control
Change control
Identification
CSCI CSCI
CSCI CSCI
23
Identification Task
24
Change Control Task
25
Version Control Task
• Version control is a set of procedures and tools for managing the creation and use
of multiple occurrences of objects in the SCM repository
• Required version control capabilities
• An SCM repository that stores all relevant configuration objects
• A version management capability that stores all versions of a configuration object (or
enables any version to be constructed using differences from past versions)
• A make facility that enables the software engineer to collect all relevant configuration
objects and construct a specific version of the software
• Issues tracking (bug tracking) capability that enables the team to record and track the
status of all outstanding issues associated with each configuration object
• The SCM repository maintains a change set
• Serves as a collection of all changes made to a baseline configuration
• Used to create a specific version of the software
• Captures all changes to all files in the configuration along with the reason for changes and
details of who made the changes and when
26
Configuration Auditing Task
• Configuration auditing is an SQA activity that helps to ensure that quality is maintained
as changes are made
• It complements the formal technical review and is conducted by the SQA group
• It addresses the following questions
• Has the change specified in the ECO been made? Have any additional modifications been
incorporated?
• Has a formal technical review been conducted to assess technical correctness?
• Has the software process been followed, and have software engineering standards been
properly applied?
• Has the change been "highlighted" and "documented" in the CSCI? Have the change data and
change author been specified? Do the attributes of the configuration object reflect the change?
• Have SCM procedures for noting the change, recording it, and reporting it been followed?
• Have all related CSCIs been properly updated?
• A configuration audit ensures that
• The correct CSCIs (by version) have been incorporated into a specific build
• That all documentation is up-to-date and consistent with the version that has been built
27
Status Reporting Task
• Configuration status reporting (CSR) is also called status accounting
• Provides information about each change to those personnel in an organization
with a need to know
• Answers what happened, who did it, when did it happen, and what else will be
affected?
• Sources of entries for configuration status reporting
• Each time a CSCI is assigned new or updated information
• Each time a change is approved by the CCB and an ECO is issued
• Each time a configuration audit is conducted
• The configuration status report
• Placed in an on-line database or on a website for software developers and
maintainers to read
• Given to management and practitioners to keep them appraised of important
changes to the project CSCIs
28
Summary
• Introduction
• SCM Repository
• SCM Process
• Identification
• Change control
• Version control
• Configuration auditing
• Status reporting
29