Chapter 29
Software Configuration Management
Slide Set to accompany
Software Engineering: A Practitioner’s Approach, 8/e
by Roger S. Pressman and Bruce R. Maxim
Slides copyright © 1996, 2001, 2005, 2009, 2014 by Roger S. Pressman
For non-profit educational use only
May be reproduced ONLY for student use at the university level when used in conjunction
with Software Engineering: A Practitioner's Approach, 8/e. Any other reproduction or use is
prohibited without the express written permission of the author.
All copyright information MUST appear if these slides are posted on a website for student
use.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e
(McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 1
The “First Law”
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.
Bersoff, et al, 1980
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e
(McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 2
What Are These Changes?
changes in
business requirements
changes in
technical requirements
changes in
user requirements other
documents
software models
Project
Plan
data
Test
code
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e
(McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 3
The Software Configuration
programs documents
The pieces data
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e
(McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 4
Baselines
The IEEE (IEEE Std. No. 610.12-1990)
defines a baseline as:
• A specification or product that has been formally
reviewed and agreed upon, that thereafter serves 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 is marked by the delivery of one
or more software configuration items and the
approval of these SCIs that is obtained through
a formal technical review
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e
(McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 5
Baselines
modified
SCIs
Project database
approved
Software Formal
engineering SCIs technical SCIs
tasks reviews
stored
SCIs
extracted
SCM SCIs
controls
BASELINES:
System Specification
Software Requirements
Design Specification
Source Code
Test Plans/Procedures/Data
Operational System
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e
(McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 6
Software Configuration Objects
Data model
Design specification
data design
architectural design
module design
interface design
Component N
interface description
algorithm description
Test specification PDL
test plan
test procedure
test cases
Source code
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e
(McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 7
SCM Repository
The SCM repository is the set of mechanisms
and data structures that allow a software team
to manage change in an effective manner
The repository performs or precipitates the
following functions [For89]:
Data integrity
Information sharing
Tool integration
Data integration
Methodology enforcement
Document standardization
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e
(McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 8
Repository Content
use-cases
analysis model source code
business rules
business functions scenario-based diagrams object code
organization structure flow-oriented diagrams system build instructions
information architecture class-based diagrams
behavioral diagrams Construction
design model Content
architectural diagrams
Business interface diagrams
Content component-level diagrams
technical metrics test cases
test scripts
test results
quality metrics
Model
Content
V&V
Content
Project
Management
project estimates Content
project schedule
SCM requirements
Project Plan
change requests Documents SCM/ SQA Plan
change reports
System Spec
SQA requirements
Requirements Spec
project reports/ audit reports
Design Document
project metrics
Test Plan and Procedure
Support documents
User manual
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e
(McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 9
Repository Features
Versioning.
saves all of these versions to enable effective management of product
releases and to permit developers to go back to previous versions
Dependency tracking and change management.
The repository manages a wide variety of relationships among the data
elements stored in it.
Requirements tracing.
Provides the ability to track all the design and construction components
and deliverables that result from a specific requirement specification
Configuration management.
Keeps track of a series of configurations representing specific project
milestones or production releases. Version management provides the
needed versions, and link management keeps track of interdependencies.
Audit trails.
establishes additional information about when, why, and by whom
changes are made.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e
(McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 10
SCM Elements
Component elements—a set of tools coupled within a file
management system (e.g., a database) 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 (and
related activities) for all constituencies involved in the
management, engineering and use of computer software.
Construction elements—a set of tools that automate the
construction of software by ensuring that the proper set of
validated components (i.e., the correct version) have been
assembled.
Human elements—to implement effective SCM, the software
team uses a set of tools and process features (encompassing
other CM elements)
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e
(McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 11
The SCM Process
Addresses the following questions …
How does a software team identify the discrete elements of
a software configuration?
How does an organization manage the many existing
versions of a program (and its documentation) in a manner
that will enable change to be accommodated efficiently?
How does an organization control changes before and after
software is released to a customer?
Who has responsibility for approving and ranking changes?
How can we ensure that changes have been made
properly?
What mechanism is used to appraise others of changes that
are made?
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e
(McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 12
The SCM Process
Software
Vm.n
reporting
configuration auditing
version control
change control
identification
SCIs
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e
(McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 13
Version Control
Version control combines procedures and tools to manage
different versions of configuration objects that are created
during the software process
A version control system implements or is directly integrated
with four major capabilities:
a project database (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.
an issues tracking (also called bug tracking) capability that
enables the team to record and track the status of all outstanding
issues associated with each configuration object.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e
(McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 14
Change Control
STOP
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e
(McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 15
Change Control Process—I
need for change is recognized
change request from user
developer evaluates
change report is generated
change control authority decides
request is queued for action
change request is denied
user is informed
change
change control
control process—II
process—II
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e
(McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 16
Change Control Process-II
assign people to SCIs
check-out SCIs
make the change
review/audit the change
establish a “baseline” for testing
change
change control
control process—III
process—III
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e
(McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 17
Change Control Process-III
perform SQA and testing activities
check-in the changed SCIs
promote SCI for inclusion in next release
rebuild appropriate version
review/audit the change
include all changes in release
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e
(McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 18
Auditing
Change
Requests SQA
Plan
SCIs
SCM Audit
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e
(McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 19
Status Accounting
Change
Change
Reports ECOs
Requests
SCIs
Status Accounting
Reporting
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e
(McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 20
SCM for Web and Mobile
Engineering-I
Content.
A typical Web or Mobile App contains a vast array of
content—text, graphics, applets, scripts, audio/video files,
forms, active page elements, tables, streaming data, and
many others.
The challenge is to organize this sea of content into a
rational set of configuration objects (Section 29.2.1) and
then establish appropriate configuration control
mechanisms for these objects.
People.
Because a significant percentage of Web and Mobile App
development continues to be conducted in an ad hoc
manner, any person involved in the App can (and often
does) create content.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e
(McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 21
SCM for Web and Mobile
Engineering-II
Scalability.
As size and complexity grow, small changes can have far-
reaching and unintended affects that can be problematic.
Therefore, the rigor of configuration control mechanisms
should be directly proportional to application scale.
Politics.
Who ‘owns’ a App?
Who assumes responsibility for the accuracy of the
information displayed by the App?
Who assures that quality control processes have been
followed before information is published to the site?
Who is responsible for making changes?
Who assumes the cost of change?
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e
(McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 22
Content Management-I
The collection subsystem encompasses all actions required
to create and/or acquire content, and the technical functions
that are necessary to
convert content into a form that can be represented by a mark-
up language (e.g., HTML, XML)
organize content into packets that can be displayed effectively
on the client-side.
The management subsystem implements a repository that
encompasses the following elements:
Content database—the information structure that has been
established to store all content objects
Database capabilities—functions that enable the CMS to search
for specific content objects (or categories of objects), store and
retrieve objects, and manage the file structure that has been
established for the content
Configuration management functions—the functional elements
and associated workflow that support content object
identification, version control, change management, change
auditing, and reporting.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e
(McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 23
Content Management-II
The publishing subsystem extracts from the repository,
converts it to a form that is amenable to publication, and
formats it so that it can be transmitted to client-side
browsers. The publishing subsystem accomplishes these
tasks using a series of templates.
Each template is a function that builds a publication using
one of three different components [BOI02]:
Static elements—text, graphics, media, and scripts that require
no further processing are transmitted directly to the client-side
Publication services—function calls to specific retrieval and
formatting services that personalize content (using predefined
rules), perform data conversion, and build appropriate
navigation links.
External services—provide access to external corporate
information infrastructure such as enterprise data or “back-
room” applications.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e
(McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 24
Content Management - III
configuration objects
database Content
Management
System
templates
HTML code client-side browser
+ scripts
server-side
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e
(McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 25
Change Management for Web and
Mobile Apps-I
classify the
requested change
class 1 change class 4 change
class 2 change class 3 change
acquire related objects develop brief written develop brief written
description of change description of change
assess impact of change
transmit to all team transmit to all stake-
members for review holders for review
changes
required
in related
objects
further further
evaluation evaluation
is required OK to make is required OK to make
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e
(McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 26
Change Management for Web and
Mobile Apps-II
check out object(s)
to be changed
make changes
design, construct, test
check in object(s)
that were changed
publish to WebApp
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e
(McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 27