Introduction
Lehman’s Law of Software Evolution predicts that change in software is inevitable and it is not a consequence of bad programming. There are also limit to what can be achieved by a software evolution team in safely implementing changes and new functionality. Software evolution reacts to the need of changes on the software system for various reason including bug fixes, declining performance, increasing complexity and adapting to new platform.
Software being either a system, utility of application software consists of set of instructions, which form components known as module or subsystem. Changes in software can occur every day in development stages and the changes continues along the life cycle, hence the software evolution. This can leads to software problems such as reappearing of difficult bugs that previously was fixed at a great expense; missing developed and tested components/features or fully tested system suddenly does not work. The root cause of these problems may be the non-existence of a process to control and coordinate work products of many people working on a common project. The missing link is what known as configuration management. Software Configuration Management is the task of controlling and tracking software changes and helps to avoid work conflict and reduce some of the mentioned software problems.
Overview of Software Configuration Management
Software changes faster than hardware, even a small software system developed by a single team can experience a significant rate of changes in a day. The change and update activities can be huge in a big and complex system such as telecommunications system and can be difficult to manually managed. This dynamic changing environment is what bring the needs to have a Software Configuration Management (SCM).
Specifically, SCM is one of software engineering discipline, which consists of standard processes and techniques used by organization to manage