© Louis J. M. Taborda, 2004. All rights reserved.
Material may be quoted with correct referencing – see end of paper for details.
The Release Matrix for Component-Based Software
Louis J. M. Taborda
Macquarie Graduate School of Management,
Macquarie University, NSW 2109, Australia
Louis.Taborda @ proCentric.com
Abstract. The challenge of managing the development and evolution of
complex, component-based software is increasingly being recognized as the
development of such systems becomes more common. This paper attempts to
understand the relevance of current management best practices by utilizing a
simple meta-model to illustrate the impact that architectural complexity and
reusable components have on management patterns. The model serves as a
heuristic device and supports the view that products based on a framework of
reusable software components pose new challenges and have to be managed
simultaneously at a number of different levels. This provides a rationale for the
Release Matrix, a generalization of a software release plan, previously proposed
as a technique for managing software product lines. The Release Matrix has
practical applications for tracking the evolution of complex component-based
systems and is shown via the model to be a natural consequence of increased
architectural complexity and component reuse. This paper has relevance for
developers seeking simple techniques to help them manage challenging
component-based programs, as well as researchers interested in the conceptual
basis and limits of current management practices.
1 Introduction
Software intensive systems continue to grow in complexity and while component-
based architectures provide benefits in terms of productivity and quality; they also
represent a growing management challenge. Beyond traditional software development
expertise necessary to assure component quality, component-based development
(CBD) must address new challenges including component selection, reuse, assembly,
as well as the integration testing and evolution of a configuration of inter-dependent
components [1]. These challenges are markedly different from one-off systems
development and new methods, and techniques are needed to tackle the management
of such componentized systems [2, 3, 4].
A significant benefit offered by CBD is the potential to reuse components across a
number of products (alternatively, applications or systems depending upon the
terminology preferred). CBD methods, like their object-oriented predecessors,
encourage the design of components for future reuse and means of easily identifying
and utilizing these components in the construction of software systems is an area of