Software Configuration Management Fundamentals
Classified in Computers
Written on in
English with a size of 2.77 KB
Software Configuration Management (SCM)
Definition of Software Configuration Management
Software Configuration Management (SCM) is a set of management disciplines within a software engineering process used to develop a baseline. SCM encompasses the disciplines and techniques of initiating, evaluating, and controlling change to software products during development and maintenance.
Administering SCM
Administering Software Configuration Management is a crucial project function with the goal of making technical and managerial activities more effective. SCM can be administered in several ways:
- Organization-wide: A single SCM team manages configuration for the whole organization.
- Project-specific: A separate configuration management team is established for each project.
- Distributed among the project members: Each team member performs specific SCM activities.
- Mixture of all of the above.
Key SCM Activities
The following activities constitute the core of Software Configuration Management:
- Configuration item identification
- Promotion management
- Release management
- Branch management
- Variant management
- Change management
Note on Order: These activities are usually performed in different ways (formally or informally) depending on the project type and life-cycle phase (e.g., research, development, maintenance).
Detailed Activity Descriptions
- Configuration Item Identification
- Modeling the system as a set of evolving components.
- Promotion Management
- The creation of versions for use by other developers.
- Release Management
- The creation of versions for clients and users.
- Change Management
- The handling, approval, and tracking of change requests.
- Branch Management
- The management of concurrent development efforts.
- Variant Management
- The management of coexisting versions (e.g., different operating system builds).
SCM Roles and Responsibilities
- Configuration Manager
- Responsible for identifying configuration items. This role is also often responsible for defining the procedures for creating promotions and releases.
- Change Control Board Member
- Responsible for approving or rejecting change requests.
- Developer
- Creates promotions triggered by change requests or the normal activities of development. The developer checks in changes and resolves conflicts.
- Auditor
- Responsible for the selection and evaluation of promotions for release and for ensuring the consistency and completeness of this release.