Software configuration management (SCM), a.k.a.
software change and configuration management (SCCM), is the
software engineering
Software engineering is a branch of both computer science and engineering focused on designing, developing, testing, and maintaining Application software, software applications. It involves applying engineering design process, engineering principl ...
practice of tracking and controlling changes to a
software system
A software system is a system of intercommunicating software component, components based on software forming part of a computer system (a combination of Computer hardware, hardware and software). It "consists of a number of separate Computer progr ...
; part of the larger cross-disciplinary field of
configuration management
Configuration management (CM) is a management process for establishing and maintaining consistency of a product's performance, functional, and physical attributes with its requirements, design, and operational information throughout its life. ...
(CM). SCM includes
version control
Version control (also known as revision control, source control, and source code management) is the software engineering practice of controlling, organizing, and tracking different versions in history of computer files; primarily source code t ...
and the establishment of
baselines.
Goals
The goals of SCM include:
* Configuration identification - Identifying configurations,
configuration items and
baselines.
* Configuration control - Implementing a
controlled change process. This is usually achieved by setting up a
change control board 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 management - Ensuring adherence to the organization's development process.
* Environment management - Managing the software and hardware that host the system.
*
Teamwork
Teamwork is the collaborative effort of a group to achieve a common goal or to complete a task in an effective and efficient way. Teamwork is seen within the framework of a team, which is a group of interdependent individuals who work toge ...
- Facilitate team interactions related to the process.
* Defect tracking - Making sure every defect has traceability back to the source.
With the introduction of
cloud computing
Cloud computing is "a paradigm for enabling network access to a scalable and elastic pool of shareable physical or virtual resources with self-service provisioning and administration on-demand," according to International Organization for ...
and
DevOps
DevOps is the integration and automation of the software development and information technology operations. DevOps encompasses necessary tasks of software development and can lead to shortening development time and improving the development life ...
the purposes of SCM tools have become merged in some cases. The SCM tools themselves have become virtual appliances that can be instantiated as virtual machines and saved with state and version. The tools can model and manage cloud-based virtual resources, including virtual appliances, storage units, and software bundles. The roles and responsibilities of the actors have become merged as well with developers now being able to dynamically instantiate virtual servers and related resources.
History
Examples
*
*
*
*
*
*
*
*
*
*
See also
*
*
*
*
*
*
References
Further reading
*
* Aiello, R. (2010). ''Configuration Management Best Practices: Practical Methods that Work in the Real World'' (1st ed.). Addison-Wesley. .
* Babich, W.A. (1986). ''Software Configuration Management, Coordination for Team Productivity''. 1st edition. Boston: Addison-Wesley
* Berczuk, Appleton; (2003). ''Software Configuration Management Patterns: Effective TeamWork, Practical Integration'' (1st ed.). Addison-Wesley. .
* Bersoff, E.H. (1997). Elements of Software Configuration Management. ''IEEE Computer Society Press, Los Alamitos, CA,'' 1-32
* Dennis, A., Wixom, B.H. & Tegarden, D. (2002). ''System Analysis & Design: An Object-Oriented Approach with UML.'' Hoboken, New York: John Wiley & Sons, Inc.
* Department of Defense, USA (2001). ''Military Handbook: Configuration management guidance (rev. A) (MIL-HDBK-61A)''. Retrieved January 5, 2010, from http://www.everyspec.com/MIL-HDBK/MIL-HDBK-0001-0099/MIL-HDBK-61_11531/
* Futrell, R.T. ''et al.'' (2002). ''Quality Software Project Management.'' 1st edition. Prentice-Hall.
* International Organization for Standardization (2003). ''ISO 10007: Quality management systems – Guidelines for configuration management''.
* Saeki M. (2003). Embedding Metrics into Information Systems Development Methods: An Application of Method Engineering Technique. ''CAiSE 2003,'' 374–389.
* Scott, J.A. & Nisse, D. (2001). Software configuration management. In: ''Guide to Software Engineering Body of Knowledge''. Retrieved January 5, 2010, from http://www.computer.org/portal/web/swebok/htmlformat
* Paul M. Duvall, Steve Matyas, and Andrew Glover (2007). ''Continuous Integration: Improving Software Quality and Reducing Risk''. (1st ed.). Addison-Wesley Professional. .
External links
SCM and ISO 9001 by Robert Bamford and William Deibler, SSQCUse Cases and Implementing Application Lifecycle Management Parallel Development Strategies for Software Configuration Management
{{DEFAULTSORT:Software Configuration Management
Configuration management
Software engineering
IEEE standards
Types of tools used in software development