Jump to content

Software configuration management

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by 200.145.157.31 (talk) at 18:58, 29 March 2008. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

In software engineering, software configuration management (SCM) is the task of tracking and controlling changes in the software. Configuration management practises 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.

Terminology

The history 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 practise 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 Software, 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:[citation needed]

  • Configuration identification - What code are we working with?
  • Configuration control - Controlling the release of a product and its changes.
  • Status accounting - Recording and reporting the status of components.
  • Review - Ensuring completeness and consistency among components.
  • 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 our system.
  • Teamwork - Facilitate team interactions related to the process.
  • Defect tracking - Making sure every defect has traceability back to the source

SCM tools

Name Vendor
AccuRev AccuRev
AllFusion CA-Pan/LCM Configuration Manager Computer Associates
BitKeeper BitMover
Bugzilla Mozilla Corporation
Changelogic Webmedia
ClearCase IBM Rational Software
codebeamer Intland
Configuration Management Kit CM Planning Group
Fossil D. Richard Hipp
Mercurial Matt Mackall
MKS Source MKS
PVCS Professional Serena Software
Perforce Perforce Software
PureCM PureCM.com
Visible System's Razor Visible Software
Sablime Lucent Technologies
SharpForge XP Software Services
StarTeam Borland
Surround SCM Seapine
Synergy/CM Telelogic
Trac Edgewall Software
Vault Sourcegear
Visual Enabler Soft Lab
Visual Source Safe Microsoft
Visual Studio Team System Microsoft
Subversion Free Open Source Software (main sponsor is Collabnet)

References

  • 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. ISBN 0-201-74117-2.
  • 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 February 18, 2006, from http://www.combatindex.com/mil_docs/html/hdbk/0100/MIL-HDBK-61.html
  • 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 (preview). Retrieved February 18, 2006, from http://www.standards.com.au/PDFTEMP/Previews/OSH/iso/updates2003/07/ISO_10007;2003(E)-Character.pdf
  • 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 February 15, 2006, from http://www.swebok.org/stoneman/version_1.00/SWEBOK_w_correct_copyright_web_site_version.pdf

See also