- Not to be confused with revision control
Revision control is the management of changes to documents, programs, and other information stored as computer files. It is most commonly used in software development, where a team of people may be changing the same files...
.
In
software engineeringSoftware engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software....
,
software configuration management (SCM) is the task of tracking and controlling changes in the software. Configuration management practices include
revision controlRevision control is the management of changes to documents, programs, and other information stored as computer files. It is most commonly used in software development, where a team of people may be changing the same files...
and the establishment of
baselinesConfiguration management is the process of managing change in hardware, software, firmware, documentation, measurements, etc. As change requires an initial state and next state, the marking of significant states within a series of several changes becomes important...
.
SCM concerns itself with answering the question "Somebody did something, how can one reproduce it?" Often the problem involves not reproducing "it" identically, but with controlled, incremental changes. Answering the question thus becomes a matter of comparing different results and of analysing their differences. Traditional configuration management typically focused on controlled creation of relatively simple products. Now, implementers of SCM face the challenge of dealing with relatively minor increments under their own control, in the context of the complex system being developed.
Terminology
The
historyThe history of software configuration management in computing can be traced back as early as the 1950s, when CM , originally for hardware development and production control, was being applied to software development. The first software configuration management was most likely done manually...
and terminology of SCM (which often varies) has given rise to controversy. Roger Pressman, in his book
Software Engineering: A Practitioner's Approach, states that SCM is a "set of activities designed to control change by identifying the work products that are likely to change, establishing relationships among them, defining mechanisms for managing different versions of these work products, controlling the changes imposed, and auditing and reporting on the changes made."
Source configuration managementRevision control is the management of changes to documents, programs, and other information stored as computer files. It is most commonly used in software development, where a team of people may be changing the same files...
is a related practice often used to indicate that a variety of artifacts may be managed and versioned, including software code, documents, design models, and even the directory structure itself.
Atria (later
Rational SoftwareRational Machines was founded by Paul Levy and Mike Devlin in 1981 to provide tools to expand the use of modern software engineering practices, particularly explicit modular architecture and iterative development...
, now a part of IBM), used "SCM" to mean "software configuration management". Gartner uses the term
software change and configuration management.
Purposes
The goals of SCM are generally:
- Configuration identification - Identifying configurations, configuration items
The term configuration item or CI refers to the fundamental structural unit of a configuration management system. Examples of CIs include individual requirements documents, software, models, plans, and people. Configuration Management systems oversee the life of the CIs through a combination of...
and baselinesConfiguration management is the process of managing change in hardware, software, firmware, documentation, measurements, etc. As change requires an initial state and next state, the marking of significant states within a series of several changes becomes important...
.
- Configuration control - Implementing a controlled change process. This is usually achieved by setting up a change control board
In software development, a Change Control Board or Software Change Control Board is a committee that makes decisions regarding whether or not proposed changes to a software project should be implemented. The change control board is constituted of project stakeholders or their representatives...
whose primary function is to approve or reject all change requests that are sent against any baseline.
- Configuration status accounting - Recording and reporting all the necessary information on the status of the development process.
- Configuration auditing - Ensuring that configurations contain all their intended parts and are sound with respect to their specifying documents, including requirements, architectural specifications and user manuals.
- Build management
Software build management is the defined and controlled process of delivering the right artifacts efficiently.- Software Build Management Characteristics :* Build rightly* Build automatically* Build traceably* Build integrally* Build speedup...
- Managing the process and tools used for builds.
- Process management
Process management is the ensemble of activities of planning and monitoring the performance of a process. Especially in the sense of business process, often confused with reengineering....
- Ensuring adherence to the organization's development process.
- Environment management - Managing the software and hardware that host our system.
- Teamwork
Teamwork is a joint action by two or more people, in which each person contributes with different skills and express his or her individual interests and opinions to the unity and efficiency of the group in order to achieve common goals...
- Facilitate team interactions related to the process.
- Defect tracking - Making sure every defect has traceability back to the source.
SCM tools
- See Application lifecycle management tools
See also
- Application lifecycle management
Application lifecycle management is the marriage of business management to software engineering made possible by tools that facilitate and integrate requirements management, architecture, coding, testing, tracking, and release management.- Benefits :...
- Business Technology Optimization
Business Technology Optimization , is an enterprise software product category focused on helping businesses ensure that every dollar invested in information technology, every resource allocated, and every application in development or production meets business goals...
- Change control
Change control is a formal process used to ensure that changes to a product or system are introduced in a controlled and coordinated manner. It reduces the possibility that unnecessary changes will be introduced to a system without forethought, introducing faults into the system or undoing changes...
- Comparison of open source configuration management software
This is a comparison of free and open source configuration management software.- Basic properties :- Platform support :Note: This means platforms on which a recent version of the tool has actually been used successfully, not platforms where it should theoretically work since it's written in good...
- Comparison of revision control software
The following tables compare general and technical information for notable revision control and software configuration management software. This article is not all-inclusive and may become out of date quickly.-General information:Table Explanation...
- Configuration item
The term configuration item or CI refers to the fundamental structural unit of a configuration management system. Examples of CIs include individual requirements documents, software, models, plans, and people. Configuration Management systems oversee the life of the CIs through a combination of...
- Configuration management
Configuration management is a field of management that focuses on establishing and maintaining consistency of a system's or product's performance and its functional and physical attributes with its requirements, design, and operational information throughout its life...
- List of revision control software
External links