Project architecture in Software Configuration Management

Introduction

From a developer point of view, software configuration management (SCM) is often associated with a specific SCM tool, being open or proprietary.

Indeed, the used SCM tool is important and may engage a project team or a company for a long time.

But the configuration architecture also is important. Moreover, the SCM architecture for a project does not necessarily correspond to the software architecture. A Software Configuration Item (SCI) is not always a software modules or componants.

Why using configuration management ?

To keep history

The first need for a configuration management system is tracing the files history : date, version, contents.

How often a SCM user wishes to have the same system for its word processing documents !

To share between development team

When many people share the same code base, the SCM tool facilitates synchronization between them.

To manage the product life cycle

A product life does not stop once commercialized. Depending on products, a client may ask for changes many years after. Indeed, a software that no more changes should be considered as dead (see Allan Kelly’s point of view).

So, at any time, we should be able to retrieve and re-generate a whole project :

Documentation : specifications, test reports, …

Source code (sometimes only to investigate), including build configurations