Software Configuration Management
Table of Contents - (Generated automatically from sections below)
Definitions of SCM according to ...E. Bersoff, V. Henderson, S. SiegelSCM, like CM, is defined as the discipline of identifying the configuration of a system at discrete points in time for purposes of systematically controlling changes to this configuration and maintaining the integrity and traceability of this configuration throughout the system life cycle. -- E. Bersoff, V. Henderson, S. Siegel; Software Configuration Management, An Investment in Product Integrity; Prentice-Hall, 1980.IEEE-Std-729-1983Configuration Management is the process of identifying and defining the items in the system, controlling the change of these items throughout their life cycle, recording and reporting the status of items? and change requests, and verifying the completeness and correctness of items. -- IEEE-Std-729-1983IEEE-Std-610Configuration Management is a discipline applying technical and administrative direction and surveillance to identify and document the functional and physical characteristics of a configuration item, control changes to those characteristics, record and report change processing and implementation status, and verify compliance with specified requirements. -- IEEE-Std-610 (revision and redesignation of IEEE-Std-729-1983)H. Ronald Berlack[Software] Configuration Management is the the management of a software design as it evolves into a software product or system. It is also a means of communicating to the project's designers and developers, the technical detail and events that lead to the eventual build? and delivery of the final product. It is not a hard line of control or wielding of the proverbial billy club. Those who have employed CM offer their praises. Many who did not employ CM rue the day they turned it down, never to know what caused their projects to do so poorly. . . . Configuration Management has been described as a discipline that governs the identification, control, status accounting, and auditing of a given entity, such as a software program or system, and the components? that make up that entity. It has also been described as one of the many processes that occur within a developing engineering environment? in which several engineering, software, and manufacturing processes are performed concurrently. . . . The primary activities of configuration management are identification, change control, status accounting, and configuration audit. Also added is interface control, and subcontractor CM control. Experience has shown that these are most essential to the successful conduct of the CM process when interface and subcontractors are part of a project. -- H. Ronald Berlack; Software Configuration Management; John Wiley & Sons, 1992.DoD-Mil-Std-973Configuration Management (CM) is a discipline that applies technical and administrative direction and surveillance over the life cycle of items to:
DoN-CM-2001Configuration Management (CM) is an umbrella activity developed to (1) identify change, (2) manage that change, (3) ensure that the change is being properly implemented, (4) report the change to others who may have an interest, and (5) record the change for historical reference. These logistics-related design parameters are expressed in operational terms rather than inherent values and specifically relate to system readiness objectives and support costs of the material system. -- DoN, Configuration Management; Department of Navy, 2001.British Standard BS 6488
Anne HassConfiguration, "to form from or after," derives from the Latin com-, meaning "with" or "together," and figurare, "to form." It also means "a relative arrangement of parts or elements." Configuration management therefore refers to managing a relative arrangement of parts or elements. It's as simple as that. Configuration management, as we know it today, started in the late 1960s. In the 1970s, the American government developed a number of military standards, which included configuration management. Later, especially in the 1990s, many other standards and publications discussing configuration management have emerged. In the last few years, the growing understanding of software development as a collection of interrelated processes has influenced work on configuration management. This means that configuration management is now also considered from a process point of view. There are many definitions of configuration management and many opinions on what it really is. This chapter describes the definition on which this book is based. In short:
Wayne BabichOn any team project, a certain degree of confusion is inevitable. The goal is to minimize this confusion so that more work can get done. The art of coordinating software development? to minimize this particular type of confusion is called configuration management. Configuration management is the art of identifying, organizing, and controlling modifications to the software being built by a programming team. The goal is to maximize productivity by minimizing mistakes. -- Wayne Babich; Software Configuration Management: Coordination for Team Productivity; Addison-Wesley, 1986.K. Narayanaswamy & W. ScacchiConfiguration Management is the discipline of developing uniform descriptions of a complex product at discrete points in its lifecycle with a view to controlling systematically the manner in which the product evolves. -- K. Narayanaswamy and W. Scacchi; "Maintaining configurations of evolving software systems" IEEE Transactions on Software Engineering; March 1987, Vol. 13 No. 4, pp. 323-334.Walter F. TichyCM is the discipline of controlling the evolution of complex systems; software CM is its specialization for computer programs and associated documents. -- Walter F. Tichy; "Tools for Software Configuration Management" Proceedings of the 2nd International Workshop on Software Version and Configuration Control, 1988.David WhitgiftConfiguration Management (CM) is a collection of techniques which coordinate and control the construction of a system. Engineers have been developing complex systems for millenia. Many of the principles of CM were developed to enable hardware engineers to design and assemble the components or ever more sophisticated configurations. Some of the principles would have been familiar to the project manager charged with building the pyramids. In the 1990s millions of men and women develop complex systems using software. The systems consist of a myriad of component parts each of which evolves as it is developed and maintained. Software CM ensures that this evolution is efficient and controlled, so that the individual components fit together to form a coherent whole. -- David Whitgift; Methods and Tools for Software Configuration Management; John Wiley & Sons, 1991.Watts HumphreyThe most frustrating software problems are often caused by poor configuration management. The problems are frustrating because they take time to fix, they often happen at the worst time, and they are totally unnecessary. For example, a difficult bug that was fixed at great expense suddenly reappears; a developed and tested feature is mysteriously missing; or a fully tested program suddenly doesn't work. Configuration Management helps to reduce these problems by coordinating the work products of the many different people who work on a common project. Without such control, their work will often conflict, resulting in such problems as:
Stephen B. Compton & Guy Conner
SEI Software CMMThe purpose of Software Configuration Management is to establish and maintain the integrity of the products of the software project? throughout the project's software life cycle. Software Configuration Management involves identifying the configuration of the software (i.e., selected software works products and their descriptions) at given points in time, systematically controlling changes to the configuration, and maintaining the integrity and traceability of the configuration throughout the software lifecycle. The work products placed under software configuration management include the software products that are delivered to the customer (e.g., the software requirements document and the code) and the items that are identified with or required to create these software products (e.g., the compiler). A software baseline library is established containing the software baselines as they are developed. Changes to the baselines and the release of software products built from the baseline library are systematically controlled via the change control and configuration auditing? functions of software configuration management. -- The SEI Software Capability Maturity Model (version 1.1)Susan DartSoftware CM is a discipline for controlling the evolution of software systems? .... A CM solution is dependent on an organization's needs and how it defines CM. The standard definition for CM taken from IEEE standard 729-1983 includes:
"Spectrum of Functionality in Configuration Management Systems"; SEI Technical Report CMU/SEI-90-TR-11, December 1990; "The Past, Present, and Future of Configuration Management"; SEI Technical Report CMU/SEI-92-TR-8, July 1992. [I took the liberty of combining these two definitions since they had so much in common.] Stephen A. MacKay?The most widely used definition of software configuration management SCM comes from the standards community [IEEE87, IEEE90a, IEEE90b, Buck93]. Configuration management (CM) is a discipline that oversees the entire life cycle of a software product? or family of related products. Specifically, CM requires identification of the components to be controlled (configuration items) and the structure of the product, control over changes to the items (including documentation), accurate and complete record keeping, and a mechanism to audit or verify any actions. This definition is not complete. Dart [Dart92] suggests that the definition should be broadened to include manufacturing issues optimally managing the construction of the product? , process management? , ensuring adherence to the defined processes and team work supporting and controlling the efforts of multiple developers. Tichy [Tich88] provides a definition that is popular in the academic and research communities: software configuration management is a discipline whose goal is to control changes to large software system families, through the functions of: component identification, change tracking? , version selection and baselining, software manufacture, and managing simultaneous updates (team work). We prefer these definitions because the emphasis is on evolution of and access to software components by teams of developers, rather than control or prevention of access in the standards definition. Concurrent or parallel, distributed configuration management is simply a recognition of the true state of software development in the 1990s managing the evolution of software produced by geographically distributed teams, working semi-autonomously, but sharing a common software base. -- Stephen A. MacKay; "The State of the Art in Concurrent, Distributed Configuration Management"; Proceedings of the 5th International Workshop on Software Configuration Management (SCM5); Seattle, WA, April 24-25 1995David W. EatonWhat is Configuration Management (CM)? There are a number of different interpretations. For purposes of this newsgroup, we are talking about tracking and control of software development and its activities. That is, the management of software development projects with respect to issues such as multiple developers working on the same code at the same time, targetting multiple platforms, supporting multiple versions, and controlling the status of code (for example beta test versus real release). Even within that scope there are different schools of thought:
Steve McConnellConfiguration Management is the practice of handling changes systematically so that a system can maintain its integrity over time. Another name for it is "change control." It includes techniques for evaluating proposed changes, tracking changes, and keeping copies of the system as it existed at various points in time. -- Steve McConnell; Code Complete; Microsoft Press, 1993.Joseph H. Rawlings III[Software] Configuration Management is a combination of tools and techniques for controlling the software development process and is implemented using software tools of differing natures. The tools used are the same for all personnel, regardless of position or responsibility.... The task of configuration management is to address the classic problems of shared data, multiple maintenance, and simultaneous update, overcome communication obstacles, and provide useful information to its users. One of the basic paradigms of configuration management is that it provide a dynamic perspective of the project. To accomplish this, the entire project must be considered in a global sense. From requirements to and specifications to components, documentation and test, to the final product, each element of the product is as important as any other element ... [and] nearly every element will change in one way or another during the project lifecycle. Different groups of personnel have different needs when the global perspective of the project is considered. A developer may need to know about the various revisions of a source code module. The project manager may need to know about varius versions or releases of the project. Higher level management or marketing may only want to know about released products. The developer requires a more intimate view, that is, a fine granularity, the project manager does not. By using various options of the tool set, individuals acquire a perspective of the project suited to their particular needs. Using a single toolset, every need of each team member can be met as long as the tools used are adaptable. A good configuration management tool set should not require that the working environment be altered to conform to the requirements specified by the tools. The tool set should be adaptable to the environment. The tools should provide a vast functionality, enabling the user to match his or her needs, whether the user is a developer, documentation editor, project manager, or test engineer. -- Joseph H. Rawlings III; SCM for Network Development Environments; McGraw-Hill, 1994.Marion KellyConfiguration Management (CM) is the engineering and administrative disciples (which include configuration identification, control, status accounting, and auditing) that ensure that every part of the projects configuration is identified, reliable, traceable, and repeatable. These four disciplines are in fact very straightforward and logical ways of ensuring that:
Armstrong A. Takang & Penny A. Grubb
Luke Hohmann
Ivar Jacobsen, Martin Griss, & Patrik JonssonConfiguration Management: A supporting process whose purpose is to identify, define, and baseline items; control modifications and releases of those items; report and record status of the items and modification requests; ensure completeness, consistency, and correctness of the items; control storage, handling, and delivery of the items. -- Ivar Jacobsen, Martin Griss, and Patrik Jonsson; Software Reuse: Architecture, Process, and Organization for Business Success; Addison-Wesley, 1997.Grady Booch, Ivar Jacobsen, & James Rumbaugh
Brad Appleton and Stephen BerczukSoftware Configuration Management is the process of identifying, organizing, controlling, and tracking both the decomposition and recomposition of: software structure, functionality, evolution, and teamwork. In short, SCM is the "glue" between software artifacts, features, changes, and team members; it forms the ties that bind them all together from concept to delivery and beyond. -- Brad Appleton, Steve Berczuk, Ralph Cabrera and Robert Orenstein; Streamed Lines: Branching Patterns for Parallel Software Development; 5th Annual Conference on Pattern Languages of Program Design; Allerton Park, IL, September 1998Neil SteemanSoftware configuration management as described herein deals with managing the requirements for the product as opposed to managing the way the product is built. There are many tools on the market which can be used to manage the way the software product is built. This plan will emphasize what has to be done in order to assure that the product, as delivered, looks and performs in accordance with the customer's requirements for that product. The first step, therefor, in software CM as described herein, is to agree with the customer on the requirements for the product. In order to reach agreement, you need to prepare a document that contains the requirements as you see them and then obtain approval from the customer that they are the correct requirements. You will then need to maintain that document while you are building the software product and change it whenever you and the customer agree on a change to the requirements. -- Neil Steeman: How to Employ CM Lite for Software, 2002Jessica KeyesSoftware configuration management (SCM, or just plain CM) is an organizational framework — that is, a discipline — for managing the evolution of computer systems throughout all stages of systems development. -- Jessica Keyes; Software Configuration Management; Auerbach Publications, 2004Alexis LeonSoftware a management is a method of bringing control to the software development process. -- Alexis Leon; Software Configuration Management Handbook, Second Edition; Artech House Publishers, 2005Comments by...
Do you see your favorite SCM definition here? If not, Edit this Page to add the text of the definition along with the appropriate bibliographic reference. If you use wikiwiki format a TOC entry will be automatcially made for you. Top of the Page Edit • Attach • Print version • History: r17 < r16 < r15 < r14 < r13 • Backlinks • Raw View • Raw edit • More topic actions |
SoftwareConfigurationManagement
r17 - 18 Mar 2009 - 18:32:31 - PauloLacerda
CM > ConfigurationManagement > SoftwareConfigurationManagement CM wiki web |
