Terms used in Software Configuration Management
Filed Under Document, Terms, Development, Software | Posted on November 21, 2007
There are a wide variety of terms used in the process of Software Configuration Management, and it does make sense to have a glossary of such terms. Here is an attempt to explain terms (inspired by several different postings and pages by a number of people).
SCM: Software Configuration Management. 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).
Audit Report: Document containing the evaluation of the conformance of software product and processes to the applicable regulations, standards, guidelines, plans, and procedures
Baseline: The identification of significant states within the revision history of a configuration item is the central purpose of baseline identification. Generally, a baseline may be a single work product, or set of work products that can be used as a logical basis for comparison. A baseline may also be established (whose work products meet certain criteria) as the basis for subsequent select activities. Such activities may be attributed with formal approval.
Traceability matrix: A traceability matrix is a table that correlates any two baselined documents that require a many to many relationship to determine the completeness of the relationship. It is often used with high-level requirements (sometimes known as marketing requirements) and detailed requirements of the software product to the matching parts of high-level design, detailed design, test plan, and test cases.
Revision control: Revision control (also known as version control (system) (VCS), source control or (source) code management (SCM)) is the management of multiple revisions of the same unit of information. It is most commonly used in engineering and software development to manage ongoing development of digital documents like application source code, art resources such as blueprints or electronic models and other critical information that may be worked on by a team of people.
Change management: Change management is a structured approach to change in individuals, teams, organizations and societies that enables the transition from a current state to a desired future state.
Configuration item: Configuration items or CIs form the basis of configuration management solutions. Typically a CI is a collection of objects related to the specific functionality of a larger system. Examples of these objects may be requirements, code, documentation, models and other files. Configuration Management systems oversee the life of the CIs through a combination of process and tools. The objective of these systems is to avoid the introduction of errors related to lack of testing or incompatibilities with other CIs.
Build Management: The build management process describes the activities necessary to support the software application transformation from development to run time. Build Management is the process by which a software application is assembled and released through the phases of a defined lifecycle.
Release: A software release is the distribution, whether public or private, of an initial or new and upgraded version of a computer software product. Each time a software program or system is changed, the software engineers and company doing the work decide on how to distribute the program or system, or changes to that program or system.
Software versioning: Software versioning is the process of assigning either unique version names or unique version numbers to unique states of computer software. Within a given version number category (major, minor), these numbers are generally assigned in increasing order and correspond to new developments in the software. At a fine-grained level, revision control is often used for keeping track of incrementally different versions of electronic information, whether or not this information is actually computer software.
Change Document: Change request, change report and engineering change order are generated as part of the configuration control activity within the SCM process. These documents are often represented as printed or electronic forms.
Concurrent Versions System: The Concurrent Versions System (CVS), also known as the Concurrent Versioning System, is an open-source version control system that keeps track of all work and all changes in a set of files, typically the implementation of a software project, and allows several (potentially widely-separated) developers to collaborate.
Commit (data management): In the context of computer science and data management, commit refers to the idea of making a set of tentative changes permanent. A popular usage is at the end of a transaction. A commit is the act of committing.
Change History: A label to correlate changes to configuration items towards the change request or work order.
Change Requests: The collection of issues processed through change management, problem management or development issue management.
Physical Audit: A type of configuration management audit. The objective of a physical audit is to provide an independent evaluation of a software product configuration item to confirm that components in the built version map to their specifications. The audit verifies that the software performs all the functions described in its design documentation and is ready for delivery.
Branching: Branching, in revision control and software configuration management, is the duplication of an object under revision control (such as a source code file, or a directory tree) in such a way that the newly created object has initially the same contents as the version branched off from, and (more importantly) development (creation of new versions) can happen in parallel along both branches.
Sandbox: A sandbox is a testing (or virtual) environment that isolates untested code changes and outright experimentation from the production environment or repository, in the context of software development including web development and revision control, and by extension in web-based editing environments.
Source Code: Computer instructions and data definitions expressed in a form suitable for input to a compiler.
Software Library: In computer science, a library is a collection of subprograms used to develop software. Libraries contain “helper” code and data, which provide services to independent programs. This allows code and data to be shared and changed in a modular fashion. Some executables are both standalone programs and libraries, but most libraries are not executables.
Leave a Reply