Classic Movies and Books

Learn Software Development

All about the processes involved in software development

Search this site
Google
 

The process of Software Configuration Management

Filed Under Document, Techniques, Process, Development, Software | Posted on November 7, 2007




SCM is not one of the easiest of things to easily explain and understand. It is easiest to understand if you have been in a situation where SCM is required, and more, important been affected by not having a SCM process in place. Configuration management is a complex undertaking, embracing a number of disciplines. The process requires a range of skills and knowledge sets, and should be planned as every other major project. It should cover not only the core task, but requisite support activities, such as justification and awareness. The main goal of SCM is to identify, control, maintain, and verify the versions of software configuration items.

Software Configuration Management Process

(From http://en.wikipedia.org/wiki/Image:SCM_activities2.png)

And what is this process all about ?

The above diagram gives a brief encapsulation of the steps involved. When trying to break down the diagram, the details for each of the steps are:

1. Management of the SCM process: To plan this process it is essential to know the organizational structures and their relationships. You need to have a good understanding of the context (the physical and software environment) where the SCM process has to be implemented
2. Software Configuration Identification: The primary goal of this step is to identify the Software Configuration items, and is accomplished by breaking down the entire baseline into separate items and parts. Once these items are generated, tools for managing these items can be selected and acquired. As new items are added to the SCM process, this step can be repeated.
3. Software Configuration Control: When changes are required to configuration items during a normal software development cycle, this is the step that provides the facility for managing these changes. Typically, such changes are through the process of change control. Initiation of these changes can be done by users or developers of the software. The change control document should describe the formal procedures for the deposit and recording of change requests, for the evaluation of costs and impacts, and finally for the acceptation, modification, or rejection of those requests. When the change request is approved by the Software Configuration Control Board, an implementation plan is created.
4. Software Configuration Status Accounting: To control the configuration items, it is essential to record and report about the current state of affairs. An automated system will be used to capture and report all relevant information during the life cycle of a software configuration item. The collected information will be used as input for the development team, the maintenance team, project management, and quality assurance activities. This feedback can be used to improve the system.
5. Software Configuration Auditing & Validation: The auditing checks whether the software configuration items and the software meets the required guidelines, regulations, and plans instituted for software configuration management. Think of it as a way of determining whether the required process is being followed.
6. Software Release Management & Delivery: This last phase of the SCM process is dedicated to the release of a version of a software product. The correct baseline, composed of baseline versions of configuration items, is compiled to an executable program. This executable can be delivered to any recipient, for purposes of testing or distribution to the customer. Specific build instructions are needed to guarantee that the build steps are taken and that they are performed in the right sequence. Sometimes different versions of the same product should be built (for platform, customer, functionality, etc.). The area of software engineering concerned with this process is build management.


Leave a Reply