Software configuration management

Tracking and controlling software changes

This article includes a list of general references, but it lacks sufficient corresponding inline citations. Please help to improve this article by introducing more precise citations. (September 2010) (Learn how and when to remove this message)

|

IEEE software life cycle

* Software project management
* Software quality assurance
* Software requirements specification
* Software configuration management
* Software design description
* Software test documentation
* Software verification and validation
* Software user documentation
* Software reviews and audit

* v
* t
* e

Part of a series on

Software development

Core activities

* Data modeling
* Processes
* Requirements
* Design
* Construction
* Engineering
* Testing
* Debugging
* Deployment
* Maintenance

Paradigms and models

* Agile
* Cleanroom
* Incremental
* Prototyping
* Spiral
* V model
* Waterfall

Methodologies and frameworks

* ASD
* DevOps
* DAD
* DSDM
* FDD
* IID
* Kanban
* Lean SD
* LeSS
* MDD
* MSF
* PSP
* RAD
* RUP
* SAFe
* Scrum
* SEMAT
* TDD
* TSP
* UP
* XP

Supporting disciplines

* Configuration management
* Deployment management
* Documentation
* Software quality assurance
* Project management
* User experience

Practices

* ATDD
* BDD
* CCO
* CI
* CD
* DDD
* PP
* SBE
* Stand-up
* TDD

Tools

* Compiler
* Debugger
* Profiler
* GUI designer
* UML Modeling
* IDE
* Build automation
* Release automation
* Infrastructure as code

Standards and bodies of knowledge

* CMMI
* IEEE standards
* ISO 9001
* ISO/IEC standards
* PMBOK
* SWEBOK
* ITIL
* IREB
* OMG

Glossaries

* Artificial intelligence
* Computer science
* Electrical and electronics engineering

Outlines

* Outline of software development

* v
* t
* e

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]

This section is an excerpt from History of software configuration management.[edit]

The history of software configuration management (SCM) can be traced back as early as the 1950s, when CM (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, and other media. The first software configuration management was a manual operation. With the advances in language and complexity, software engineering, 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.[4] Industry-wide practices were offered as solutions, either in an open or proprietary manner (such as Revision Control System). With the growing use of computers, systems emerged that handled a broader scope, including requirements management, design alternatives, quality control, and more; later tools followed the guidelines of organizations, such as the Capability Maturity Model of the Software Engineering Institute.

## 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 methodologyPages displaying wikidata descriptions as a fallback
* List of revision control software
* Infrastructure as code – Data center management method

## References

[edit]

1. ^ Gartner and Forrester Research
2. ^ Roger S. Pressman (2009). Software Engineering: A Practitioner's Approach (7th International ed.). New York: McGraw-Hill.
3. ^ Amies, A; Peddle S; Pan T M; Zou P X (June 5, 2012). "Develop cloud applications with Rational tools". IBM DeveloperWorks. IBM.
4. ^ "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.

## External links

[edit]

* SCM and ISO 9001 by Robert Bamford and William Deibler, SSQC
* Use Cases and Implementing Application Lifecycle Management
* Parallel Development Strategies for Software Configuration Management

* v
* t
* e

Computer science

Note: This template roughly follows the 2012 ACM Computing Classification System.

Hardware|

* Printed circuit board
* Peripheral
* Integrated circuit
* Very Large Scale Integration
* Systems on Chip (SoCs)
* Energy consumption (Green computing)
* Electronic design automation
* Hardware acceleration
* Processor
* Size / Form

Computer systems organization|

* Computer architecture
* Computational complexity
* Dependability
* Embedded system
* Real-time computing

Networks|

* Network architecture
* Network protocol
* Network components
* Network scheduler
* Network performance evaluation
* Network service

Software organization|

* Interpreter
* Middleware
* Virtual machine
* Operating system
* Software quality

Software notations and tools|

* Programming paradigm
* Programming language
* Compiler
* Domain-specific language
* Modeling language
* Software framework
* Integrated development environment
* Software configuration management
* Software library
* Software repository

Software development|

* Control variable
* Software development process
* Requirements analysis
* Software design
* Software construction
* Software deployment
* Software engineering
* Software maintenance
* Programming team
* Open-source model

Theory of computation|

* Model of computation
* Stochastic
* Formal language
* Automata theory
* Computability theory
* Computational complexity theory
* Logic
* Semantics

Algorithms|

* Algorithm design
* Analysis of algorithms
* Algorithmic efficiency
* Randomized algorithm
* Computational geometry

Mathematics of computing|

* Discrete mathematics
* Probability
* Statistics
* Mathematical software
* Information theory
* Mathematical analysis
* Numerical analysis
* Theoretical computer science

Information systems|

* Database management system
* Information storage systems
* Enterprise information system
* Social information systems
* Geographic information system
* Decision support system
* Process control system
* Multimedia information system
* Data mining
* Digital library
* Computing platform
* Digital marketing
* World Wide Web
* Information retrieval

Security|

* Cryptography
* Formal methods
* Security hacker
* Security services
* Intrusion detection system
* Hardware security
* Network security
* Information security
* Application security

Human–computer interaction|

* Interaction design
* Social computing
* Ubiquitous computing
* Visualization
* Accessibility

Concurrency|

* Concurrent computing
* Parallel computing
* Distributed computing
* Multithreading
* Multiprocessing

Artificial intelligence|

* Natural language processing
* Knowledge representation and reasoning
* Computer vision
* Automated planning and scheduling
* Search methodology
* Control method
* Philosophy of artificial intelligence
* Distributed artificial intelligence

Machine learning|

* Supervised learning
* Unsupervised learning
* Reinforcement learning
* Multi-task learning
* Cross-validation

Graphics|

* Animation
* Rendering
* Photograph manipulation
* Graphics processing unit
* Mixed reality
* Virtual reality
* Image compression
* Solid modeling

Applied computing|

* Quantum Computing
* E-commerce
* Enterprise software
* Computational mathematics
* Computational physics
* Computational chemistry
* Computational biology
* Computational social science
* Computational engineering
* Differentiable computing
* Computational healthcare
* Digital art
* Electronic publishing
* Cyberwarfare
* Electronic voting
* Video games
* Word processing
* Operations research
* Educational technology
* Document management

* Category
* Outline
* Glossaries

* v
* t
* e

Software engineering

Fields|

* Computer programming
* DevOps
* Empirical software engineering
* Experimental software engineering
* Formal methods
* Requirements engineering
* Search-based software engineering
* Site reliability engineering
* Social software engineering
* Software deployment
* Software design
* Software maintenance
* Software testing
* Systems analysis

Concepts|

* Abstraction
* Component-based software engineering
* Software compatibility
* Backward compatibility
* Compatibility layer
* Compatibility mode
* Forward compatibility
* Software incompatibility
* Data modeling
* Enterprise architecture
* Functional specification
* Modeling language
* Programming paradigm
* Software
* Software archaeology
* Software architecture
* Software configuration management
* Software development process/methodology
* Software quality
* Software quality assurance
* Software verification and validation
* Software system
* Structured analysis
* Essential analysis
* CI/CD

Orientations|

* Agile
* Aspect-oriented
* Object orientation
* Ontology
* Service orientation
* SDLC

Models|

| Developmental|

* Agile
* EUP
* Executable UML
* Incremental model
* Iterative model
* Prototype model
* RAD
* UP
* Scrum
* Spiral model
* V-model
* Waterfall model
* XP
* Model-driven engineering
* Round-trip engineering

|

Other|

* SPICE
* CMMI
* Data model
* ER model
* Function model
* Information model
* Metamodeling
* Object model
* Systems model
* View model

Languages|

* IDEF
* UML
* USL
* SysML

Related fields|

* Computer science
* Computer engineering
* Information science
* Project management
* Risk management
* Systems engineering

* Commons
* Category

* v
* t
* e

IEEE standards

Current|

* 488
* 693
* 730
* 754
* Revision
* 854
* 828
* 829
* 896
* 1003
* 1014
* 1016
* 1076
* 1149.1
* 1154
* 1164
* 1275
* 1278
* 1284
* 1355
* 1394
* 1451
* 1497
* 1516
* 1541
* 1547
* 1584
* 1588
* 1596
* 1603
* 1613
* 1619
* 1666
* 1667
* 1675
* 1685
* 1722
* 1733
* 1800
* 1801
* 1815
* 1849
* 1850
* 1855
* 1900
* 1901
* 1902
* 1904
* 1905
* 2030
* 2050
* 11073
* 12207
* 14764
* 16085
* 16326
* 29148
* 42010

802 series|

| 802|

* .2
* .4
* .5
* .6
* .7
* .8
* .9
* .10
* .12
* .14
* .16
* WiMAX · d · e
* .17
* .18
* .20
* .21
* .22
* .24

|

802.1|

* D
* p
* Q
* Qav
* Qat
* Qay
* Qaz
* Qbb
* w
* X
* AB
* ad
* AE
* ag
* ah
* ak
* aq
* AS
* AX (LACP)
* BA

802.3
(Ethernet)|

* -1983
* a
* b
* d
* e
* i
* j
* u
* x
* y
* z
* ab
* ac
* ad
* ae
* af
* ah
* ak
* an
* aq
* at
* au
* av
* az
* ba
* bt
* bu
* by
* bz
* ca
* cb
* cc
* cd
* ce
* cg
* ch
* ck
* cm
* cn
* cp
* cq
* cr
* cs
* ct
* cu
* cv
* cw
* cx
* cy
* cz
* da
* db
* dd
* de
* df

802.11
(Wi-Fi)|

* -1997
* legacy mode
* a
* b
* c
* d
* e
* f
* g
* h
* i
* j
* k
* n (Wi-Fi 4)
* p
* r
* s
* u
* v
* w
* y
* z
* aa
* ac (Wi-Fi 5)
* ad (WiGig)
* ae
* af
* ah
* ai
* aj
* ak
* aq
* ax (Wi-Fi 6)
* ay
* az
* ba
* bb
* bc
* bd
* be (Wi-Fi 7)
* bf
* bh
* bi
* bk
* bn (Wi-Fi 8)

802.15|

* .1 (Bluetooth)
* .2
* .3
* .4 (Zigbee)
* .4a
* .4b
* .4c
* .4d
* .4e
* .4f
* .4g
* .4z
* .5
* .6
* .7

Proposed|

* P1363
* P1619
* P1699
* P1823
* P1906.1

Superseded|

* 754-1985
* 830
* 1219
* 1233
* 1362
* 1364
* 1471

See also
IEEE Standards Association
Category:IEEE standards
*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template