Configuration Management Standard
Configuration Management Standard
Configuration Management Standard
Management
CxOne Standard
CxStand_ConfigurationManagement.doc
November 4, 2002
Contents
1 INTRODUCTION .......................................................................................................... 1
1.1 OVERVIEW ............................................................................................................... 1
1.2 GOALS ...................................................................................................................... 1
1.3 BACKGROUND .......................................................................................................... 1
1.4 RELATIONSHIP TO OTHER CKAS .............................................................................. 1
1.5 RELATIONSHIP TO EXTERNAL STANDARDS .............................................................. 2
1.5.1 SWEBOK.................................................................................................................... 2
1.5.2 IEEE Standards ......................................................................................................... 2
Copyright Notice
2000-2002 Construx Software Builders, Inc. All Rights Reserved.
For further information or support visit www.construx.com.
Page i
1 Introduction
This standard defines CxOnes taxonomy for the configuration management CKA, along with
standardized descriptions of configuration management processes.
1.1 Overview
CxOne defines configuration management (CM) as revision control, change management,
and release management for software projects. Although configuration management activities
may seem somewhat disparate, there is a common thread linking them: identifying the state
of project deliverables at a given point in time and ensuring project deliverables are delivered
according to plan (including scope and quality goals).
This is accomplished by identifying and tracking all elements, groups of elements, and versions of those elements (revision control); ensuring that artifacts and deliverables match the
scope of planned and actual work (change management); and providing releases of deliverables that have holistic integrity and support deployment goals (release management).
1.2 Goals
CxOne support for software configuration management focuses on the following goals:
1.3 Background
CxOne configuration management materials are synthesized from many sources including the
SWEBOK, IEEE software standards, Steve McConnells works, other industry sources and
literature, and Construxs experience with software projects, consulting, and training.
Page 1
2.
Software Configuration Identification, Control, and Status Accounting have been restructured into revision control and change control.
3.
4.
Release Management and Delivery is part of release management, except for software building which is dealt with as part of the construction CKA.
These changes were made to support a more pragmatic, usable taxonomy for materials.
Page 2
2 Configuration Management
This section covers global Configuration Management (CM) issues. The top level sections
following this one provide an overview of the revision control, change management, and
release management.
Ensuring the project planning has an appropriate level of CM structure for the project
Having one or more Change Control Boards (CCBs) and building project management workflow around the CCBs.
Defining a versioning scheme that fits the projects lifecycle and schedule
Using traceability to verify consistency between different types of artifacts (e.g., requirements and test cases)
Page 3
3 Revision Control
Revision control consists of the identification, storage, and management of projects artifacts
and the revisions over time of those artifacts. Projects use revision control to avoid inadvertent changes, determine the state of the system or project at any point in time, enable project
builds, provide support for change control, prevent tampering, etc.
Almost all aspects of revision control are supportable by modern software engineering revision control tools; it does not make sense to attempt software development without this support. CxOne requires a robust revision control tool infrastructure in place.
3.1 Identification
Projects should identify the items under revision control on the project. Identification can be
done in a variety of methods and to different levels of detail. Final selections of these are left
to the project team.
Examples of configuration items include:
Product artifacts such as executable code, source code, user documentation, etc.
Project artifacts such as project plans, work breakdown structures, specifications, test
plans test cases
Acquired elements such as software libraries, COTS packages, and test tools
Examples of identification methods include:
Revision control tools
Standard naming and/or numbering conventions
Self describing organizational structures (e.g., well named folder hierarchies)
Document maps
3.2 Storage
Projects should identify where project artifacts reside and what tools are used to control their
revision history. When appropriate, the project should discuss on how to remove, add, revise,
or recover elements from the library.
3.3 Versioning
Projects will normally have several levels of versioning for artifacts and groups of artifacts.
Revision control software greatly facilitates this process, providing revision history for individual items, and the ability to label, branch, or otherwise identify at a unique point in time
specific artifacts and versions of artifacts.
The versioning of artifacts is often tightly coupled with building the system and release management of the system.
Page 4
4 Change Management
Change management consists of the systematic identification, analysis, tracking, and control
of changes to project artifacts. Projects use change management to decrease feature creep,
increase visibility into changes, and understand changes to project scope.
In CxOne, change management has two major components, change control and Corrective
Activity Management (CAM). Change control activities deal with identifying, approving,
and executing changes to artifacts. The change management portion of CAM deals with managing the details associated with proposed changes, ensuring project planning reflects
changes, and managing the execution of approved changes.
This section deals primarily with change control. See CxPattern_CamDatabase and CxPattern_ChangeManagementDatabase for a description of change management in CAM.
Review
and Acceptance
(baseline)
Release
Accepted Stage
Changes made
informally using
revision control
Changes through
formal
change control
(CCB)
Maintenance
Stage
Maintenance
changes
t
ac
t i f ed
Ar etir
R
Draft Stage
The artifact (which may be any project artifact including a document, source code, binary
component, art work, etc.) begins life in a draft stage. As the artifact develops, changes are
Page 5
made informally and work progresses using revision control. When the artifact reaches an
expected state of completeness, it undergoes review and acceptance. Once accepted, the artifact is considered baselined and enters the formal change control stage where all changes
need to be approved by the Change Control Board (CCB).
Not all artifacts are explicitly placed under change control. Many artifacts like source code
are implicitly placed under change control because the upstream artifacts they need to remain
consistent with are under change control. CxOne defines explicit change control as direct
control by the CCB and implicit change control as control through upstream artifacts.
Once released the artifact enters a maintenance stage. How the maintenance stage is handled
is very dependent on the project, organization, and artifact in question. Eventually an artifact
is retired, which normally means it is no longer in use (or at least no longer supported).
Page 6
Page 7
the project in terms of schedule, cost, risk, or other factor should be estimated, along with the
estimated benefit of making the change.
The CCB will use this information as a starting point and ensure that all stakeholders are
informed of the change and agree with the cost/benefit analysis.
Page 8
5 Release Management
Release management consists of the identification, packaging, and delivery of the elements of
the product to an external or internal customer.
Identification determines what is released the customer, e.g., user documentation, executables, release notes, etc. Packaging determines the form in which it is released, e.g., zip file vs.
install program. Delivery determines how it is released to the customer, e.g., shrink-wrap
vs. web download, etc.
Deliverables These are the intended deliverables defined for the release. They could
range from initial project documentation to gold master images for a product.
Versioning Releases normally have one or more versions that represent a particular
configuration of release deliverables.
Release Documentation Information about the release delivered apart from the deliverables. Often used to capture deviations between the planned and actual release.
Release Map Formal releases use this to describe the physical contents of the release and any other pertinent CM information related to the release.
5.3 Versioning
Versioning allows the deliverables that make up a release to be managed and for differences
in system deliverable configuration over time to be communicated.
Versioning at the revision control level allows for proper identification of artifacts to be released. There may also be versioning to control different versions of sub-systems that are put
together to make a final release version. There is usually a global release version which defines a snapshot of the state of all artifacts that make up a release. There may be customer
Page 9
Page 10