Component repository management
Encyclopedia
Component repository management is a field of configuration management
Configuration management
Configuration management is a field of management that focuses on establishing and maintaining consistency of a system or product's performance and its functional and physical attributes with its requirements, design, and operational information throughout its life.For information assurance, CM...

 that seeks to ensure the safe storage of different components of a software product and all its versions. This topic includes product model, revision control
Revision control
Revision control, also known as version control and source control , is the management of changes to documents, programs, and other information stored as computer files. It is most commonly used in software development, where a team of people may change the same files...

, and software configuration management
Software configuration management
In software engineering, software configuration management is the task of tracking and controlling changes in the software. Configuration management practices include revision control and the establishment of baselines....

.

Product model

The product model describes the structure
Structure
Structure is a fundamental, tangible or intangible notion referring to the recognition, observation, nature, and permanence of patterns and relationships of entities. This notion may itself be an object, such as a built structure, or an attribute, such as the structure of society...

 of a software product in a single version system, which means the version model is not taken into consideration. It can be represented by a product graph in which nodes and edges represent the software objects and their relationships.

Software object

A software object records the result of a development or maintenance activity. A SCM
Software configuration management
In software engineering, software configuration management is the task of tracking and controlling changes in the software. Configuration management practices include revision control and the establishment of baselines....

 system has to manage all kinds of software objects created throughout the software lifecycle
New product development
In business and engineering, new product development is the term used to describe the complete process of bringing a new product to market. A product is a set of benefits offered for exchange and can be tangible or intangible...

, including requirements specification
Requirements specification
Requirements specification in systems engineering and software engineering is the direct result of a requirement analysis and can refer to*Software Requirements Specification*Hardware Requirements Specificationor both.-See also:*Design specification...

s, design
Design
Design as a noun informally refers to a plan or convention for the construction of an object or a system while “to design” refers to making this plan...

s, documentations, program code
Code
A code is a rule for converting a piece of information into another form or representation , not necessarily of the same type....

, test
Software testing
Software testing is an investigation conducted to provide stakeholders with information about the quality of the product or service under test. Software testing can also provide an objective, independent view of the software to allow the business to appreciate and understand the risks of software...

 plans, test cases, user manuals, project plans and so on.

Relationship

Relationships are the connectors of software objects. In the product model diagram, they are the edges between nodes. Composition relationships and dependency relationships are the two main relationships used in the product model.

Composition relationships are used to organize software objects with respect to their granularity. For example, the subsystems of a software product which in turn consist of modules.

Dependency relationships or in short dependency
Dependency (project management)
In a project network, a dependency is a link amongst a project's terminal elements.There are four kinds of dependencies with respect to ordering terminal elements :# Finish to start...

 establish directed connections between objects that are orthogonal to composition relationships. They include lifecycle
New product development
In business and engineering, new product development is the term used to describe the complete process of bringing a new product to market. A product is a set of benefits offered for exchange and can be tangible or intangible...

 dependencies between requirements specification
Requirements specification
Requirements specification in systems engineering and software engineering is the direct result of a requirement analysis and can refer to*Software Requirements Specification*Hardware Requirements Specificationor both.-See also:*Design specification...

s, designs and module implementation
Implementation
Implementation is the realization of an application, or execution of a plan, idea, model, design, specification, standard, algorithm, or policy.-Computer Science:...

s.

Version model

A version model defines the items to be versioned, the common properties shared by all versions of an item, and the delta
Delta (letter)
Delta is the fourth letter of the Greek alphabet. In the system of Greek numerals it has a value of 4. It was derived from the Phoenician letter Dalet...

s. It also determines the way version sets are organized. It introduces dimensions of evolution such as revision
Revision
Revision is the process of revising.More specifically, it may refer to:* Update, a modification of software or a database* Revision control, the management of changes to sets of computer files* Belief revision...

s and variants, it defines whether a version is characterized in terms of the state it represents or in terms of some changes relative to some baseline, it selects a suitable representation for the version graphs, and it also provides operations for retrieving old versions and constructing new versions.

Another field related to version model is software history. It records all the versions of a software product safely and properly, it also records who created the revision along with what comment. Delta
Delta (letter)
Delta is the fourth letter of the Greek alphabet. In the system of Greek numerals it has a value of 4. It was derived from the Phoenician letter Dalet...

 is used to reduce the spaces needed for storage, since two successive versions are often very similar (98% same on average).

It also provides supports for multi-user management. The traditional locking
Lock (computer science)
In computer science, a lock is a synchronization mechanism for enforcing limits on access to a resource in an environment where there are many threads of execution. Locks are one way of enforcing concurrency control policies.-Types:...

 method is still used while a new advanced synchronizing
Synchronizing
In telecommunication, the term synchronizing has the following meanings:# Achieving and maintaining synchronism.# In fax, achieving and maintaining predetermined speed relations between the scanning spot and the recording spot within each scanning line....

 method can greatly improve the efficiency.

Version and product model structures

Because product model only considers the software structure of a single version model, and the version model does not take software structure in to consideration, methods to integrate the two models will be discussed in this section. In particular, we will investigate which items are put under version control and how versions of different items are interrelated with each other.

According to the selection order during the configuration process, we can classify the structures into 3 categories, product first, version first and intertwined:

Product first means that the product structure is selected before the version models of components. This approach is followed, for example, by SCCS
Source Code Control System
Source Code Control System is an early revision control system, geared toward program source code and other text files. It was originally developed in SNOBOL at Bell Labs in 1972 by Marc J. Rochkind for an IBM System/370 computer running OS/360 MVT...

 and RCS
Revision Control System
The Revision Control System is a software implementation of revision control that automates the storing, retrieval, logging, identification, and merging of revisions. RCS is useful for text that is revised frequently, for example programs, documentation, procedural graphics, papers, and form...

. But this method suffers from the restriction that structural versioning can not be expressed (it is because the product structure is fixed for all configurations).

Version first means the version of product is selected first and uniquely determines the component versions. Different product versions may be structured in different ways. For example, a version of a component is contained only in the product version 1.0 but not 2.0. PCTE is an example of an SCM system using this organization.

Intertwined means that the selections of version model and component structure are performed in alternating order. Intertwined structure is relatively more flexible than the two methods mentioned above, because when a new change happens or a new component need to be added in the configuration
Computer configuration
In communications or computer systems, a configuration is an arrangement of functional units according to their nature, number, and chief characteristics. Often, configuration pertains to the choice of hardware, software, firmware, and documentation...

, for most of time it is not necessary to change the whole configuration structure.

In addition, version first and intertwined both take in to account that different versions of a certain object may vary with respect to their relationships of other objects. This means that in addition to objects, relationships are versioned as well.

A meta-model of the AND / OR method

As shown in the intertwined configuration structure, an AND / OR graphs can be used to illustrate the interplay of product model and version model. The graphs consist of nodes and edges, and selections of the nodes represent the configuration of a certain software product of a certain version. There are two types of nodes — AND nodes and OR nodes. Analogously, a distinction is made between AND and OR edges, which emanate from AND and OR nodes, respectively. A meta-model is presented in the following figure:

An unversioned product graph can be represented by exclusively AND nodes/edges. Then this AND/OR graph will be the same as the product model or product compositions. While versioning of the product graph is modeled by introducing OR nodes. Versioned objects and their versions are represented by OR nodes and AND nodes, respective.

The dependency relationships and composition relationships can be both represented by AND edges.
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK