0% found this document useful (0 votes)
293 views15 pages

Chapter 22 - Software Configuration Management

Uploaded by

malik assad
Copyright
© © All Rights Reserved
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)
293 views15 pages

Chapter 22 - Software Configuration Management

Uploaded by

malik assad
Copyright
© © All Rights Reserved
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/ 15

Chapter 22

 Software Configuration Management


Slide Set to accompany
Software Engineering: A Practitioner’s Approach, 7/e
by Roger S. Pressman

Slides copyright © 1996, 2001, 2005, 2009 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, 7/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, 7/e
(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 1
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, 7/e
(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 2
The Software Configuration

programs documents

The pieces data

These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 3
What is Software Configuration Management?

• Definition Software Configuration Management:


• A set of management disciplines within a software
engineering process to develop a baseline
• Software Configuration Management encompasses the
disciplines and techniques of initiating, evaluating and
controlling change to software products during and
after a software project
• Standards
• IEEE 828: Software Configuration Management Plans
• IEEE 1042: Guide to Software Configuration
Management.

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 4
Configuration Management Activities
• Configuration item identification
• Modeling the system as a set of evolving components
• Promotion management
• the creation of versions for other developers
• Release management
• the creation of versions for clients and users
• Change management
• the handling, approval & tracking of change requests
• Branch management
• the management of concurrent development
• Variant management
• the management of synchronized versions

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 5
Terminology

• We will define the following terms


• Baseline
• SCM Directories
• Version
• Revision
• Release

 The definitions for these terms follow the IEEE


standard.

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 6
Terminology

• Release: The formal distribution of an approved


version
• Version: An initial release or re-release of a
configuration item associated with a complete
compilation or recompilation of the item.
Different versions have different functionality
• Revision: Change to a version that corrects only
errors in the design/code, but does not affect
the documented functionality.

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 7
Terminology: Baseline

Baseline: “A specification or product that has been


formally reviewed and agreed to by responsible
management, that thereafter serves as the basis
for further development, and can be changed
only through formal change control procedures.”

• Examples:
• Baseline A: The API has been completely been defined;
the bodies of the methods are empty
• Baseline B: All data access methods are implemented
and tested
• Baseline C: The GUI is implemented.

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 8
Naming Schemes for Baselines

• Many naming scheme for baselines exist (1.0,


6.01a, ...)
• A 3 digit scheme is quite common:

7.5.5

Major, Minor, Small Revision


External Release Internal Release (Developer)
(Customer) (Developer)

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 9
Transitions between Baselines

Baseline A (developmental)

Baseline B (functional, first prototype)

Baseline C (product, beta test)

Release

How do we manage changes in baselines?


=> Change Management
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java Time 10
Change Management

• Change management is the handling of change


requests
• The general change management process:
• The change is requested
• The change request is assessed against requirements and
project constraints
• Following the assessment, the change request is accepted
or rejected
• If it is accepted, the change is assigned to a developer
and implemented
• The implemented change is audited.

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 11
Controlling Changes

• Two types of controlling change:


• Promotion: The internal development state of a
software is changed
• Release: A changed software system is made visible
outside the development organization.

User
Programmer Master Software
Promotion Directory Release Repository

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 12
Terminology: SCM Directories
• Programmer’s Directory (IEEE: Dynamic Library)
• Library for holding newly created or modified software
entities
• The programmer’s workspace is controlled by the
programmer only
• Master Directory (IEEE: Controlled Library)
• Manages the current baseline(s) and for controlling
changes made to them
• Changes must be authorized
• Software Repository (IEEE: Static Library)
• Archive for the various baselines released for general
use
• Copies of these baselines may be made available to
requesting organizations.

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 13
Standard SCM Directories

• Programmer’s Directory
• (IEEE Std: “Dynamic Library”)
• Completely under control of one
programmer Promotion

• Master Directory Central source


• (IEEE Std: “Controlled Library”) code archive
• Central directory of all promotions
Release
• Software Repository
• (IEEE Std: “Static Library”)
Foo’95 Foo’98
• Externally released baselines.

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 14
Change Policies

• The purpose of change policies is to guarantee


that each promotion or release conforms to
commonly accepted criteria.

• Examples for change policies:


“No developer is allowed to promote source code
which cannot be compiled without errors and
warnings.”

“No baseline can be released without having been


beta-tested by at least 500 external persons.”

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 15

You might also like