Loading [MathJax]/extensions/MathMenu.js
A layered architecture for uniform version management | IEEE Journals & Magazine | IEEE Xplore

A layered architecture for uniform version management


Abstract:

Version management is a key part of software configuration management. A big variety of version models has been realized in both commercial systems and research prototype...Show More

Abstract:

Version management is a key part of software configuration management. A big variety of version models has been realized in both commercial systems and research prototypes. These version models differ with respect to the objects put under version control (files, directories, entities, objects), the organization of versions (version graphs versus multidimensional version spaces), the granularity of versioning (whole software products versus individual components), emphasis on states versus emphasis on changes (state-versus change-based versioning), rules for version selection, etc. We present a uniform version model-and its support architecture-for software configuration management. Unlike other unification approaches, such as UML for object-oriented modeling, we do not assemble all the concepts having been introduced in previous systems. Instead, we define a base model that is built on a small number of concepts. Specific version models may be expressed in terms of this base model. Our approach to uniform version management is distinguished by its underlying layered architecture. Unlike the main stream of software configuration management systems, our instrumentable version engine is completely orthogonal to the data model used for representing software objects and their relationships. In addition, we introduce version rules at the bottom of the layered architecture and employ them as a uniform mechanism for expressing different version models. This contrasts to the main stream solution, where a specific version model-usually version graphs-is deeply built into the system and version rules are dependent on this model.
Published in: IEEE Transactions on Software Engineering ( Volume: 27, Issue: 12, December 2001)
Page(s): 1111 - 1133
Date of Publication: 31 December 2001

ISSN Information:


1 Introduction

Software configuration management (SCM) has been defined as the discipline of controlling the evolution of complex software systems [1]. Over their lifetime, software objects, such as requirements definitions, designs, program source code, documentations, and test data evolve into many versions. These differ with respect to the underlying operating system, window system, included bug fixes, and change requests. Thus, version management plays a central role in SCM. Versions have to be recorded and restored, the consistency relationships between versions of different objects have to be maintained, and new versions have to be created according to rule-based descriptions.

Contact IEEE to Subscribe

References

References is not available for this document.