Software configuration management
This article includes a list of general references, but it lacks sufficient corresponding inline citations. (September 2010) |
IEEE software life cycle |
---|
Part of a series on |
Software development |
---|
Software configuration management (SCM), a.k.a. software change and configuration management (SCCM),[1] is the software engineering practice of tracking and controlling changes to a software system; part of the larger cross-disciplinary field of configuration management (CM).[2] SCM includes version control and the establishment of baselines.
Goals
[edit]The goals of SCM include:[citation needed]
- 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 - 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 and DevOps 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.[3]
History
[edit]Examples
[edit]- Ansible – Open-source software platform for remote configuring and managing computers
- CFEngine – Configuration management software
- Chef – Configuration management tool
- LCFG – Computer configuration management system
- NixOS – Linux distribution
- OpenMake Software – DevOps company
- Otter – infrastructure automation tool
- Puppet – Open source configuration management software
- Salt – Configuration management software
- Rex – remote execution, configuration management and software deployment software
See also
[edit]- Application lifecycle management – Product management of computer programs throughout their development lifecycles
- Comparison of open source configuration management software
- Comparison of version control software
- Continuous configuration automation – software configuration and deployment methodology
- List of revision control software
- Infrastructure as code – Data center management method
References
[edit]- ^ Gartner and Forrester Research
- ^ Roger S. Pressman (2009). Software Engineering: A Practitioner's Approach (7th International ed.). New York: McGraw-Hill.
- ^ Amies, A; Peddle S; Pan T M; Zou P X (June 5, 2012). "Develop cloud applications with Rational tools". IBM DeveloperWorks. IBM.
- ^ "1988 "A Guide to Understanding Configuration Management in Trusted Systems" National Computer Security System (via Google)
Further reading
[edit]- 828-2012 IEEE Standard for Configuration Management in Systems and Software Engineering. 2012. doi:10.1109/IEEESTD.2012.6170935. ISBN 978-0-7381-7232-3.
- Aiello, R. (2010). Configuration Management Best Practices: Practical Methods that Work in the Real World (1st ed.). Addison-Wesley. ISBN 0-321-68586-5.
- 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 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. ISBN 0-321-33638-0.