Software configuration management
   HOME

TheInfoList



OR:

In
software engineering Software engineering is a systematic engineering approach to software development. A software engineer is a person who applies the principles of software engineering to design, develop, maintain, test, and evaluate computer software. The term '' ...
, software configuration management (SCM or S/W CM) is the task of tracking and controlling changes in the software, part of the larger cross-disciplinary field of configuration management. SCM practices include
revision control In software engineering, version control (also known as revision control, source control, or source code management) is a class of systems responsible for managing changes to computer programs, documents, large web sites, or other collections o ...
and the establishment of baselines. If something goes wrong, SCM can determine the "what, when, why and who" of the change. If a configuration is working well, SCM can determine how to replicate it across many hosts. The acronym "SCM" is also expanded as source configuration management process and software change and configuration management. However, "configuration" is generally understood to cover changes typically made by a
system administrator A system administrator, or sysadmin, or admin is a person who is responsible for the upkeep, configuration, and reliable operation of computer systems, especially multi-user computers, such as servers. The system administrator seeks to en ...
.


Purposes

The goals of SCM are generally: *Configuration identification - Identifying configurations,
configuration item The term configuration item (CI) refers to the fundamental structural unit of a configuration management system. Examples of CIs include individual Computer hardware, hardware or software components. The configuration-management system oversees the ...
s 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 the most effective and efficient way. This concept is seen within the greater framework of a team, which is a group of interdependent individua ...
- 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 the on-demand availability of computer system resources, especially data storage ( cloud storage) and computing power, without direct active management by the user. Large clouds often have functions distributed over mu ...
and
DevOps DevOps is a set of practices that combines software development (''Dev'') and IT operations (''Ops''). It aims to shorten the systems development life cycle and provide continuous delivery with high software quality. DevOps is complementary to ...
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

The history of software configuration management (SCM) in computing can be traced back as early as the 1950s, when CM (for Configuration Management), originally for hardware development and production control, was being applied to software development. Early software had a physical footprint, such as cards,
tapes Tape or Tapes may refer to: Material A long, narrow, thin strip of material (see also Ribbon (disambiguation): Adhesive tapes * Adhesive tape, any of many varieties of backing materials coated with an adhesive * Athletic tape, pressure-sensiti ...
, and other media. The first software configuration management was a manual operation. With the advances in language and complexity,
software engineering Software engineering is a systematic engineering approach to software development. A software engineer is a person who applies the principles of software engineering to design, develop, maintain, test, and evaluate computer software. The term '' ...
, involving configuration management and other methods, became a major concern due to issues like schedule, budget, and quality. Practical lessons, over the years, had led to the definition, and establishment, of procedures and tools. Eventually, the tools became systems to manage software changes."1988 "A Guide to Understanding Configuration Management in Trusted Systems" National Computer Security System (vi
Google
Industry-wide practices were offered as solutions, either in an open or proprietary manner (such as
Revision Control System Revision Control System (RCS) is an early implementation of a version control system (VCS). It is a set of UNIX commands that allow multiple users to develop and maintain program code or documents. With RCS, users can make their own revisions of ...
). With the growing use of computers, systems emerged that handled a broader scope, including
requirements management Requirements management is the process of documenting, analyzing, tracing, prioritizing and agreeing on requirements and then controlling change and communicating to relevant stakeholders. It is a continuous process throughout a project. A requi ...
, design alternatives, quality control, and more; later tools followed the guidelines of organizations, such as the Capability Maturity Model of the
Software Engineering Institute The Software Engineering Institute (SEI) is an American research and development center headquartered in Pittsburgh, Pennsylvania. Its activities cover cybersecurity, software assurance, software engineering and acquisition, and component capabi ...
.


See also

*
Application lifecycle management Application lifecycle management (ALM) is the product lifecycle management (governance, development, and maintenance) of computer programs. It encompasses requirements management, software architecture, computer programming, software testing, ...
* Comparison of open source configuration management software *
Comparison of version control software In software development, version control is a class of systems responsible for managing changes to computer programs or other collections of information such that revisions have a logical and consistent organization. The following tables includ ...
* Continuous configuration automation *
List of revision control software This is a list of notable software for version control. Local data model In the local-only approach, all developers must use the same file system. Open source * Revision Control System (RCS) – stores the latest version and backward del ...
*
Infrastructure as Code Infrastructure as code (IaC) is the process of managing and provisioning computer data centers through machine-readable definition files, rather than physical hardware configuration or interactive configuration tools. The IT infrastructure managed ...


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