© 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