Discuss Software Configuration Management in detail.
- The SCM (Software Configuration Management) is a set of activities that have been developed to manage change throughout the software life cycle.
- Purpose: Systematically control changes to the configuration and maintain the integrity and traceability of the configuration throughout the system’s life cycle
- Four primary objectives
- To identify all items that collectively define the software configuration
- To manage changes to one or more of these items
- To facilitate the construction of different versions of an application
- To ensure that software quality is maintained as the configuration evolves over time
Layers of SCM Process
(Figure: layer of SCM process)
- Referring to the figure, SCM tasks can viewed as concentric layers
- SCIs (Software Configuration Item) flow outward through these layers throughout their useful life
- As an SCI moves through a layer, the actions implied by each SCM task may or may not be applicable. For example, when a new SCI is created, it must be identified.
- However, if no changes are requested for the SCI, the change control layer does not apply
- The SCI is assigned to a specific version of the software (version control mechanisms come into play)
- A record of the SCI (its name, creation date, version, etc.) is maintained for configuration auditing purposes
Identification Task
- Identification separately names each SCI and then organizes it in the SCM repository using an object-oriented approach
- Objects start out as basic objects and are then grouped into aggregate objects.
- Each object has a set of distinct features that identify it
- A name that is unambiguous to all other objects
- A description that contains the SCI type, a project identifier, and change and/or version information
- List of resources needed by the object
- The object realization (i.e., the document, the file, the model, etc.)
Change Control
- Change control is a procedural activity that ensures quality and consistency as changes are made to a configuration object
- A change request is submitted to a configuration control authority, which is usually a change control board (CCB).
- The request is evaluated for technical merit, potential side effects, overall impact on other configuration objects and system functions, and projected cost in terms of money, time and resources.
- An engineering change order (ECO) is issued for each approved change request. Describes the change to be made, the constraints to follow and the criteria for review and audit
Version Control
- Version control is a set of procedures and tools for managing the creation and use of multiple occurrences of objects in the SCM repository
- Version Control Capabilities
- An SCM repository that stores all relevant configuration objects
- A version management capability that stores all versions of a configuration object
- A make facility that enables the software engineer to collect all relevant configuration objects and construct a specific version of the software
- Issues or bug tracking capability that enables the team to record and track the status of all outstanding issues associated with each configuration object
Configuration Audit
- Configuration auditing is an SQA activity that helps to ensure that quality is maintained as changes are made.
- It complements the formal technical review and is conducted by the SQA group
- It addresses the following questions
- Has a formal technical review been conducted to assess technical correctness?
- Has the software process been followed and have software engineering standards been properly applied?
- Has the change been "highlighted" and "documented" in the SCI? Have the change data and change author been specified? Do the attributes of the configuration object reflect the change?
Status Reporting
- Configuration status reporting (CSR) is also called status accounting
- Provides information about each change to those personnel in an organization with a need to know
- Answers what happened, who did it, when did it happen and what else will be affected?
- Sources of entries for configuration status reporting
- Each time a SCI is assigned new or updated information
- Each time a configuration audit is conducted
- The configuration status report
- Placed in an on-line database or on a website for software developers and maintainers to read
- Given to management and practitioners to keep them appraised of important changes to the project SCIs