Software configuration management
Encyclopedia
In software engineering
, software configuration management (SCM) is the task of tracking and controlling changes in the software. Configuration management
practices include revision control
and the establishment of baselines
.
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.
According to another simple definition: Software Configuration Management is how you control the evolution of a software project.
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 management
is a related practice often used to indicate that a variety of artifacts may be managed and versioned, including software code, hardware, documents, design models, and even the directory structure itself.
Atria (later Rational Software
, now a part of IBM), used "SCM" to mean "software configuration management". Gartner and Forrester Research use the term software change and configuration management.
Software engineering
Software 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
Configuration management
Configuration management is a field of management that focuses on establishing and maintaining consistency of a system or product's performance and its functional and physical attributes with its requirements, design, and operational information throughout its life.For information assurance, CM...
practices include revision control
Revision control
Revision control, also known as version control and source 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 change the same files...
and the establishment of baselines
Baseline (configuration management)
Configuration 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.
According to another simple definition: Software Configuration Management is how you control the evolution of a software project.
Terminology
The historyHistory of software configuration management
The 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 management
Revision control
Revision control, also known as version control and source 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 change the same files...
is a related practice often used to indicate that a variety of artifacts may be managed and versioned, including software code, hardware, documents, design models, and even the directory structure itself.
Atria (later Rational Software
Rational Software
Rational 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 and Forrester Research use the term software change and configuration management.
Purposes
The goals of SCM are generally:- Configuration identification - Identifying configurations, configuration itemConfiguration itemThe 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...
s and baselinesBaseline (configuration management)Configuration 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 boardChange control boardIn 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 - Managing the process and tools used for builds.
- Process managementProcess managementProcess management is the ensemble of activities of planning and monitoring the performance of a process. The term usually refers to the management of business processes and manufacturing processes...
- Ensuring adherence to the organization's development process. - Environment management - Managing the software and hardware that host the system.
- TeamworkTeamworkTeamwork is action performed by a team towards a common goal. A team consists of more than one person, each of whom typically has different responsibilities....
- Facilitate team interactions related to the process. - Defect tracking - Making sure every defect has traceability back to the source.
See also
- Application lifecycle managementApplication lifecycle managementApplication Lifecycle Management is a continuous process of managing the life of an application through governance, development and maintenance...
- Change controlChange ControlChange control within Quality management systems and Information Technology systems is a formal process used to ensure that changes to a product or system are introduced in a controlled and coordinated manner...
- Comparison of open source configuration management softwareComparison of open source configuration management softwareThis 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 softwareComparison of revision control softwareThe following is a comparison of revision control software. The following tables includes general and technical information for notable revision control and software configuration management software.- General information :Table Explanation...
- Configuration itemConfiguration itemThe 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 managementConfiguration managementConfiguration management is a field of management that focuses on establishing and maintaining consistency of a system or product's performance and its functional and physical attributes with its requirements, design, and operational information throughout its life.For information assurance, CM...
- List of revision control software
External links
- Software Configuration Management and ISO 9001 by Robert Bamford and William Deibler, SSQC
- Use Cases and Implementing Application Lifecycle Management
- Parallel Development Strategies for Software Configuration Management
- iNTCCM, iNTernational Certification for Configuration Management professionals