Column 1
Column 1
Online at http://www.jot.fm. Published by ETH Zurich, Chair of Software Engineering ©JOT, 2007
Abstract
Configuration management, the traditional CM, has been subsumed by a new CM,
change management. The strategic organization looks ahead and this includes planning
for change. This is an area of particular interest to software product line organizations. A
product line organization must manage multiple options and control implementations of
those options. In this issue of Strategic Software Engineering I will highlight some of the
issues in old CM that are resolved by the new CM and describe some techniques for
addressing the issues.
1 INTRODUCTION
Cite this column as follows: John McGregor, “CM – Configuration Change Management”, in Journal of
Object Technology, vol. 6, no. 1, January - February 2007, pp. xx-xx http://www.jot.fm/issues/
issue_2007_01/column1
CM – CONFIGURATION CHANGE MANAGEMENT
configurations for each product in which it is composed. That same module belongs to a
development configuration that associates test cases and documentation used when the
module is to be modified.
From a tactical perspective, configuration management must provide tools that
manage the individual modifications to assets and products and a procedural environment
in which distributed, concurrent work is facilitated. (I will refer to configuration
management as CMt in the rest of this article.) An active development project faces many
issues related to how content producers will deliver their own work into the production
system and how they will be able to request/execute changes to the content of others. The
CMt tool set must include policies and processes, such as defining what constitutes a
baseline or how and when to merge their work into the baseline, that guide personnel
through their day-to-day actions.
From a strategic perspective, change management is needed to guide the long term
health of the organization’s assets and products. (I will refer to change management as
CMs in the rest of this article.) An organization’s ability to respond quickly to product
opportunities depends at least in part on its ability to manage an inventory of assets and to
rapidly configure and produce products from that inventory. In fact, I will go so far as to
say that many of the problems faced by organizations involving CMt can be resolved by
doing a better job at CMs.
In a software product line organization a variety of artifacts are managed. Production
plans, processes, and software architectures are just a few examples of reusable assets.
Each of these will evolve over time. They will evolve at different rates and be introduced
at different times as independent team execute their processes. These artifacts must be
versioned like any code artifact but there are additional issues specific to the product line
environment. For example, how is an artifact tracked through the management system
when it moves from being a product-specific asset to a core (product line-wide) asset?
I am going to assume that readers understand the basics of configuration
management and only provide a brief overview as part of discussing change management
as an introduction to the issues related to software product lines. Then I will focus on
product line-related issues.
Version control manages the change in artifacts over time. The basic management goal is
to support concurrent, distributed work while preventing the destruction of existing work
by accident or by whim. Version control systems provide a repository for managed items.
The system automatically appends a version identifier that essentially renames the artifact
to differentiate it from previous versions.
Version control activities are partially automated using tools such as CVS and
Subversion; however, there is usually some portion of the configuration management
process that relies on policies and human cooperation. Developers must branch to protect
the main stream of development, they must check in code that does not break the build,
These patterns suggest a number of features of the version tree being managed, more
about this later.
In a software product line organization artifacts vary not only in time but also in the
product variation space. Existing version control systems typically are linear in time. That
is, each revision of an artifact is considered the “next” version of the artifact with the
previous version now being out of date.
Periodically a branch is created in this linear progression. This allows a developer to
explore an idea without disturbing the linear progression until the idea has proven
valuable. Work proceeds linearly along this branch until the new idea is verified or
abandoned. Then the work on the branch is either merged into the main line of
development or is pruned from the version tree.
CMt builds on version control by maintaining a description of the set of resources
that comprise an artifact. Just as artifacts evolve, configurations also evolve. New
versions of various resources are accepted into the configuration and it must be versioned
to manage the changes. Each new version of a configuration should be regression tested
the same as any other asset.
A software product line organization also varies across its multi-dimensional
variation space. Elements may belong to multiple configurations at the same time.
Individual assets may evolve at different rates from the other assets. By extending the
CMt patterns discussed above: there should be separate version trees for each asset and
each product. This is where CMt is no longer sufficient and CMs is required because now
there should be some degree of coordination among the version trees.
4 EVOLUTION
Change management, CMs, adds a strategic view of the evolution of the assets and
products to the tactics of CMt. CMs encompasses planning, policies, and processes for
managing evolution of assets and products. In a product line organization, CMs must be
multi-dimension to accommodate the wide range of dependencies that exist among assets
and products.
Evolution is long-term change, where long-term is relative to the domain. Six
months is long-term in the cellular telephone domain but three years is more realistic in
satellite control systems. Applying patches to repair defects and extending an assets’s
behavior to meet new requirements are just some of the forces that drive the evolution of
an asset.
Figure 1 represents the Evolve Each Asset product line pattern [Clements 02]. This
pattern describes the various practices that are needed to accommodate the evolution of
Tool Support
Process
Definition
Tools
Attached Process
Testing
CM Process
Work Plan Data
Progress Configuration
and Changes
Management
6 IMPLICATIONS OF CHANGE
The change management system must help preserve three characteristics of the assets and
products:
• Correctness - Changes in assets and products must be tracked and propagated so
that the change results in the original target asset being correct and all affected
assets and products still bveing correct.
• Completeness – Changes in assets and products that modify a specification must
be reviewed to determine that the new specification is complete with respect to
the commitments made to other assets and products. Changes in assets and
products that affect the membership of the product line must be accompanied by a
validation of the scope definition.
• Consistency – Changes in assets and products must maintain “appropriate
consistency” in the asset base and the product portfolio. By “appropriate” I mean
that a product line asset base may contain contradictions among variant choices
for a specific variation point but a particular configuration of assets should be
internally consistent.
Each of these characteristics require traceability mechanisms to ensure that the
evolutionary ripples do not adversely affect related assets. Traceability is enhanced by a
development approach that emphasizes modeling. The Unified Modeling Language
(UML) provides a means of capturing relationships among conceptual entities[OMG 06].
Models of algorithms provide connections among the pieces of data. Beyond the
software, the Software Process Engineering Meta-model (SPEM) provides the basis for
models that capture relationships among process elements such as the various
workproducts being controlled [OMG 05]. Models built using the Eclipse Process
Framework MethodComposer are examples of process models[Eclipse 06] that provide
sufficient information to support predicting the impact of changes made to one asset on
the other assets. These models focus attention on the set of assets that should be inspected
or tested to ensure they are still correct, complete, and consistent.
Periodic reviews, triggered by some milestone or event such as a change request
being cleared, are needed to verify that assets still possess the appropriate properties. The
change management process must have wide participation. All stakeholders need to
participate in the reviews and be represented on change control boards to ensure that all
perspectives are represented as changes are considered.
7 SUMMARY
Change is inevitable. Anticipating and managing change can have a strategic impact on
the organization and its ability to produce products. Tools, policies, and processes are
needed to manage both the short-term changes and the long term evolution. Version
control, configuration management, and change management come together in a
comprehensive strategy to support the production capability of the organization. These
techniques provide an infrastructure that supports the controlled modification of
completed work and that manages the dependencies among the assets and products to
ensure that changes are appropriately propagated. By structuring the infrastructure to be
compatible with the relationships among assets, change management becomes more
tightly integrated and more supportive. This type of infrastructure is strategically
important in software product line organizations whose success is predicated on long-
lived, multi-use assets.
REFERENCES
[Berczuk 01] Steve Berczuk. Configuration Management Patterns, http://www.bell-
labs.com/cgi-user/OrgPatterns? ConfigurationManagementPatterns,
2001.
[Clements 02] Paul Clements and Linda M. Northrop. Software Product Lines:
Practices and Patterns. Boston, MA: Addison-Wesley, 2002.
[Eclipse 06] www.eclipse.org. Eclipse Process Framework v. 1.0, 2006.
[McGregor 03] John D. McGregor. The Evolution of Product Line Assets, Software
Engineering Institute, CMU/SEI-2003-TR-005, 2003.
[Mohan 06] Kannan Mohan and Balasubramaniam Ramesh. Change Management
Patterns in Software Product Lines, Communications of the ACM, v. 49,
n. 12, 2006.