Configuration Management Concepst
Configuration Management Concepst
Susan Dart
Software Engineering Institute
Carnegie-Mellon University
Pittsburgh, PA. 15123-3890
USA
dart@sei.cmu.edu
Sponsored by the U.S. Department of Defense
Abstract: There has been considerable progress con- 1.1 Definition of Configuration Management
cerning support for software configuration management Software CM is a discipline for controlling the evolution
(CM) in environments and tools. This paper’s intent is to of software systems. Classic discussions about CM are
highlight the user concepts provided by existing CM sys- given in texts such as [3] and [4]. A standard definition
tems. These are shown as a spectrum. In the spectrum, taken from IEEE standard 729-1983 [16] highlights the fol-
concepts are seen as extensions to, or generalizations of, lowing operational aspects of CM:
other concepts. There is difficulty associated with extract-
ing concepts from CM systems since there is no common- • Identification: an identification scheme
reflects the structure of the product, identifies
ality in terminology concerning CM functionality through- components and their type, making them
out the software engineering community and many CM unique and accessible in some form.
systems implement variations on concepts. As a result, each
• Control: controlling the release of a product
concept presented is described as it exists in one particular and changes to it throughout the lifecycle by
CM system. A part of highlighting the concepts involves having controls in place that ensure consistent
discussing the scope of issues important to users of CM software via the creation of a baseline product.
systems. No single CM system provides all the function- • Status Accounting: recording and reporting
ality required by the different kinds of users of CM sys- the status of components and change requests,
tems. Rather, each CM system addresses some part of the and gathering vital statistics about components
in the product.
spectrum of concepts. To complete the report, the CM ca-
pabilities of the systems used as examples are briefly de- • Audit and review: validating the complete-
ness of a product and maintaining consistency
scribed.
among the components by ensuring that the
product is a well-defined collection of compo-
nents.
1 Introduction
It becomes evident upon surveying existing configura- The definition includes terminology such as configura-
tion management (CM) systems that there has been tion item, baseline, release and version. Most CM systems
progress concerning support for software CM in environ- incorporate functionality of varying degrees to support
ments and tools. This is evident from the spectrum of con- these aspects. And some CM systems provide functionality
cepts provided by CM systems. The intention of this paper that goes beyond the above definition. This is due (amongst
is to highlight that spectrum. To begin, a broadened defini- other reasons) to the recognition of different user roles
tion of CM and a CM system are given along with a typical (discussed further in sections 1.3 and 2.1), disparate operat-
CM scenario. ing environments such as heterogeneous platforms, and
programming-in-the-large support such as enabling teams
of software engineers to work on large projects in a har-
monious manner. To capture this extra functionality, it is
worthwhile to broaden the definition of CM to include: who is in charge of a software group, a configuration man-
ager who is in charge of the CM procedures and policies,
• Manufacture: managing the construction and the software engineers who are responsible for developing
building of the product in an optimal manner.
and maintaining the software product, the tester who
• Process management: ensuring the carrying validates the correctness of the product, the quality as-
out of the organization’s procedures, policies
surance (QA) manager who ensures the high quality of the
and lifecycle model.
product, and the customer who uses the product.
• Team work: controlling the work and inter-
actions between multiple users on a product. Each role comes with its own goals and tasks. For the
In sum, the CM capabilities provided by existing systems project manager, the goal is to ensure that the product is
encompass identification, control, status accounting, audit developed within a certain time frame. Hence, the manager
and review, manufacture, process management and team monitors the progress of development and recognizes and
work. reacts to problems. This is done by generating and analyz-
ing reports about the status of the software system and by
performing reviews on the system.
1.2 The Definition of a CM System
As to what constitutes a CM system, there is no univer- The goals of the configuration manager are to ensure that
sally accepted definition. That is, there is no unified notion procedures and policies for creating, changing, and testing
of a CM system. For instance, if a system has version of code are followed, as well as to make information about
control, is it a CM system? Ideally speaking, a CM system the project accessible. To implement techniques for main-
is one that provides all functionality based on the definition taining control over code changes, this manager introduces
given above. But practically speaking, any system that pro- mechanisms for making official requests for changes, for
vides some form of version control, configuration identifi- evaluating changes (via a Change Control Board (CCB)
cation, system structuring, system modelling, and has the that is responsible for approving changes to the software
intent of providing CM (to some degree) is considered by system), and for authorizing changes. The manager creates
the software engineering (and sales) community to be a CM and disseminates task lists for the engineers and basically
system. It should be noted that existing CM systems pro- creates the project context. Also, the manager collects sta-
vide their own combination of functionality rather than a tistics about components in the software system, such as
standard set. This report mentions 15 CM systems, yet information determining which components in the system
there are at least 40 CM systems that can be acquired for are problematic.
use today.
For the software engineers, the goal is to work effec-
It is worthwhile clarifying one minor notion for this tively in creating the product. This means engineers do not
paper, the notion of a CM system and a CM tool. A CM unnecessarily interfere with each other in the creation and
system can be considered part of an environment where the testing of code and in the production of supporting docu-
CM support is an integral part of the environment and the ments. But, at the same time, they communicate and coor-
CM system is sold in that manner as part of a package. For dinate efficiently. They use tools that help build a consis-
instance, the Rational [14] environment has CM function- tent software product and they communicate and coordinate
ality that is an integral part of it. A CM tool can be consid- by notifying one another about tasks required and tasks
ered a stand-alone tool. For instance, the Revision Control completed. Changes are propagated across each other’s
System(RCS) [15]) is a CM tool since it is intended to be work by merging them and resolving and conflicts. A his-
installed into an existing environment. But because the tory is kept of the evolution of all components in the prod-
distinction is not important to this paper, the term CM uct along with a log with reasons for changes and a record
system will be used to represent both notions. of what actually changed. The engineers have their own
work area for creating, changing, testing, and integrating
code. At a certain point, the code is made into a baseline
1.3 A Typical CM User Scenario from which further development continues and from which
Before discussing CM systems, a simple, typical, CM parallel development for variants of other target machines
user scenario of an organization is described in order to emerges.
present a frame of reference. The scenario involves various
people with different responsibilities: a project manager
The tester’s goal is to make sure all the product is tested • User roles: there are different kinds of users
and found satisfactory. This involves testing a particular of CM systems and, consequently, different
version of the product and keeping a record of which tests functionality requirements for CM systems.
apply to which version of the product along with the results • Integration: the various kinds of integration
of the tests. Any errors are reported back to the appropriate affect the usability (or "power") of the CM sys-
tem.
people and fixes are put through regression testing.
• When to start using CM: the point at which a
The QA manager’s goal is to ensure the high quality of project group may start using a CM system de-
the product. This means that certain procedures and pends on the capabilities of the CM system.
policies must be fulfilled with the appropriate approval. • Control Level: a CM system can impose dif-
Bugs must be fixed and fixes propagated to the appropriate ferent levels of control over the product and its
management.
variants of the product with the correct amount of testing
applied to each variant. Customer complaints about the • Process and product: an ideal CM system
provides for the CM process as well as for the
product must be followed up.
product and its artifacts.
The customers use the product — most likely, different • Automation level: fulfilling CM functions is
customers use different versions and variants of it. Cus- generally a combination of using both manual
and automated procedures.
tomers follow certain procedures for requesting changes
and for indicating bugs and improvements for the product. • Functionality: CM systems have features that
implement a spectrum of CM functionality.
Ideally, a CM system suited to this scenario should sup-
These are discussed below in further detail.
port all these goals, roles and tasks. That implies, these
roles, tasks and goals determine the functionality required
of a CM system. This paper presents some concepts that 2.1 User Roles
attempt to address these. As indicated by the scenario of Section 1.3, there are
different kinds of users of CM systems.1 Each of these
users has a specific role and can have a different view of
1.4 Organization of This Paper
CM and, hence, different requirements for a CM system.
The introduction has given a definition of CM and a CM
These requirements are distinct and generally complemen-
system and an example of a typical CM scenario, thereby
tary. Figure 1 highlights a set of functionality that project
hinting at requirements for CM systems. Section 2 de-
managers, configuration managers, software engineers,
scribes the scope of CM issues important for users of a CM
testers, QA managers and customers expect of a CM sys-
system. These issues affect users’ expectations for a CM
tem. Each box in Figure 1 represents a major functionality
system. Section 3 illustrates the spectrum of CM concepts.
area. The topology of Figure 1 is intended to indicate that
Section 4 makes some observations about the future of CM
the outside boxes (auditing, accounting, controlling, com-
systems, and Section 5 gives a conclusion. The appendix
ponents, structure and construction) are functionality areas
presents an overview of the CM systems referenced in this
that could exist by themselves in any CM system, but when
paper.
combined with team and process functionality, a holistic
(or comprehensive) CM system results.
2 Issues for Users of CM Systems
Many issues related to CM affect the user of a CM sys-
tem. Existing CM systems address these issues in a variety
of ways. Although the intent of this paper is to discuss
some of the features in existing CM systems, it is worth-
while presenting the issues because all affect the user’s
expectations for a CM system. The issues are:
1
There are other kinds of roles pertinent to CM systems: the
environment/tool builder and the environment/tool integrator. These roles
are not strictly user roles in the sense that this paper presents. They are
really related to developing a CM system for the above kinds of users.
CONSTRUCTION STRUCTURE
Workspaces
Conflict resolution
AUDITING Families
Versions
History Configurations
Traceability Versions of configurations
Logging Baselines
Project contexts
Repository
Lifecycle Support Kinds of components
Task Management
Communication
Documentation COMPONENTS
Access control
Statistics Change requests
Status Bug tracking
Reports Change propagation
Partitioning
PROCESS
ACCOUNTING CONTROLLING
The functionality areas are: For components’ requirements, users need to: record
versions of components, their differences, and reasons for
• Components: identifies, classifies, stores and those differences; identify a group of components that
accesses the components that make up the
product. make up a configuration and versions of those; denote
baselines for a product and extensions to those; identify
• Structure: represents the architecture of the
project contexts that represent the collection of components
product.
and artifacts related to a particular project. Furthermore,
• Construction: supports the construction of the users need repositories or libraries to store and capture
product and its artifacts.
components and CM information as well as the different
• Auditing: keeps an audit trail of the product kinds of components such as source and object code, ex-
and its process.
ecutables, diagrams, documentation and baselines.
• Accounting: gathers statistics about the prod-
uct and the process. For structure requirements, users need to: model the
• Controlling: controls how and when changes structure of the product via a system model that represents
are made. the inventory of components for that product; specify inter-
• Process: supports the management of how the faces among components, versions, and configurations,
product evolves. thereby making them reusable; identify and maintain
• Team: enables a project team to develop and relationships between components; and select compatible
maintain a family of products. components to be made into a valid and consistent version
of the product.
The requirements for these areas are discussed in further
detail. For construction requirements, users need: means to eas-
ily construct or build the product; the ability to take a snap- 2.2 Integration of a CM System
shot or freeze the status of the product at any time; Any CM system has some notion of integration level
mechanisms for optimizing efforts at constructing systems with its environment. A CM system can co-exist with other
by reducing the need to recompile components and saving tools or be fully integrated. Integration pertains to various
space; facilities for doing change impact analysis that aspects of the environment: process, toolset, and database.
predict all ramifications of making a change; and easy Process integration means incorporating the usage pattern
regeneration of any phase or part of the product at any of the CM system (which makes up the CM process) with
point in time. the usage pattern of the environment (which pertains to the
software lifecycle process). Toolset integration means in-
For auditing requirements, users require: a history of all stalling the CM system into the environment so that it can
changes; traceability between all related components in the at least co-exist with all the other tools in that environment.
product and their evolution; and a log of all the details of For instance, the user would like to invoke CM functions to
work done. create a new version every time the "save" command is
issued while in the editor. Database integration concerns
For accounting requirements, users need: a mechanism to
the (logical) positioning of the CM database — whether it
record statistics, to examine the status of a product, and to
is combined in some way with the extant environment’s
easily generate reports about all aspects of the product and
database, or whether its database is a separate entity, and
process.
whether it makes use of information in other databases. All
these kinds of integration are general tool integration and
For controlling requirements, users need: cautious ac-
technology transition issues. But since CM is intended to
cess to components in the system to avoid any unwarranted
affect most objects in an environment and throughout all
changes or change conflicts; on-line support for change re-
phases of the lifecycle of an object, integration of a CM
quest forms and problem reports; means for tracking bugs
system is bound to have significant impacts on many of the
and how, when, and by whom they are dealt with; propaga-
tools in the environment. Most CM systems co-exist with
tion of changes, in a controlled manner, across different,
the other tools, and some environments have CM as an
but related, versions of the product; and a way of partition-
inherent part of themselves.
ing the product for limiting the effects of changes to it.
Example system
Context
Context
management
management Transaction
Lifecycle NSE*
Lifecycle PowerFrame*
model
model
CCC* Distributed Transparent
component view
SMS*
Sherpa DMS*
Change
Change
request
request Workspace
LIFESPAN*
LIFESPAN*
shape*
Consistency
Contract
Contract Change set Subsystem maintenance
ISTAR*
ISTAR* ADC*
ADC* Rational* CMA*