SOFTWARE CONFIGURATION MANAGEMENT
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 the changes in its software products. SCM plan developed in organization should comply with the IEEE Standard 828 Software Configuration Management Plan. SCM helps to identify individual software elements and configurations, tracking changes, version control and selection and baseline. It also helps to ensure that all the system’s component parts can be assembled and plugged together to work as required when a final version of the entire software system is produced. SCM concerns with policies, process and tools to manage changing software system.
Overview of SCM is as in Figure 1.
Figure 1 Overview of Software Configuration Management (SCM)
Figure 1 shows there are 4 main activities in SCM, which mapped to 4 Configuration Management (CM) process define in IEEE Standard 828. The 4 processes are :
1. Planning and identification where a system is divided into uniquely identifiable components (configuration items) for the purpose of software configuration management. The components include project plan, specifications, design documents, source codes, test plans and test data, executables, make files, tools, SCM plan and project baselines; 2. Control of the identified components to be changed. Configuration items can be changed only through formal change control procedures including evaluation, coordination, approval or disapproval and implementation of changes to configuration items; 3. Status accounting deals with recording and reporting of information needed to manage a configuration effectively. This includes list of the approved configuration identification, status of proposed changes and implementation status of approved changes. This will enable stakeholders involve in the software configuration to have access to the records; 4. Configuration audit ensure the software has been built according to specified requirements, determine whether all the items identified as configuration items present in the product baseline and...
References:  Sommerville I. (2011). Software Engineering, 9th Edition. Addison Wesley, p 681-701.
 Mette A, Hass J. (2003). Configuration Management Principles and Practice. Addison-Wesley Professional, p1-14. Retrieved from www.pearsonhighered.com/samplechapter/0321200195.pdf
 Koskela J. (2003) Software Configuration Management in Agile Methods. VTT Technical Research Publication 514.
 Durrani U K, Pita Z, Richardson J. (2014) The Tetrad Influences: A Case Study of an Adaptable Software Configuration Management Process. International Journal of Strategic Decision Sciences, Volume 5 Issue 2, p 30-42.
 Krikhaar R, Wim M, Niels V, Chris V. (2009) Enabling System Evolution Through Configuration Management on the Hardware Software Boundary. Journal of System Engineering, Volume 12, Issue 3, p233-264.
 Pala N, Erbas C. (2010) Aligning Software Configuration Management with Governance Structure. Proceedings of the 2010 KSE Workshop on Software Development Governance, p 1-8.
 www.scmwise.com (Software Configuration Management website)
 www.en.wikibooks.org / Introduction to Software Engineering / Deployment / Evolution
Please join StudyMode to read the full document