Monday, July 18, 2005

A Vocabulary for Software Configuration Management

The beginning of any good conversation requires that a lingua franca be created so that the participants have a common vocabulary and thus assurance that they are comparing apples to apples. SCM is certainly no different. Therefore, in the interest of laying a foundation for further postings, below is an abreviated list of concepts and terms that will help us understand one another:

  • Attribute - An attribute is similar to a label. An attribute is a named value that is associated with a version. One use for attributes is to tag a version with a change request number to identify which change it is a part of. Some systems allow attributes to be applied to other objects, such as branches, as well.
  • Branch - A branch is a point of divergence. It starts a new, uniquely named series of versions from an existing version. Different systems use different naming schemes. In RCS [Tich85], a new numbering sequence is added. Creating a branch off of 1.1 in RCS might create a new sequence such as,,, etc. In ClearCase [Rati96], there is an initial branch, /main, which begins a sequence that looks like this: /main/1, /main/2, etc. Creating a branch off of /main/2 in ClearCase would record internally that the branch was rooted at /main/2 and the new sequence would look like this: /main/gizmo/1, /main/gizmo/2, etc.
  • Change-set - A change-set represents a logical change. It is the set of all changes that must be applied to a previous configuration to derive a new configuration.
  • Configuration - CM is typically applied to logical groupings of objects. For instance, you might want to use CM to manage all of the files that are used to build a product or all of the files contained in a web site. A configuration is one instantiation of whatever it is you are managing. You might have a configuration that represents version 1.0 of a product, or a configuration that represents new product development.
  • Configuration Definition - A configuration definition is a recipe that is used to specify the exact contents of a configuration. The definition is constructed from the names, versions, timestamps, labels, branches, attributes, and/or change-sets from one or more repositories.
  • Configuration Name - A configuration name is a reference that is directly understood by the CM system and can be used to specify the configuration definition. The system uses its configuration name dictionary to automatically translate configuration names into configuration definitions. Object - Typically files and directories.
  • Label - A mnemonic name (alias) used to refer to a particular version.
  • Object Mastership - When using replication, each object that has a copy at multiple sites is mastered at one and only one site. That is, that site owns the object and updates to that object may only be made at that site.
  • Object Name - Typically file and directory names, but can be anything used to uniquely identify objects in a repository.
  • Repository - A repository provides storage of all names, versions, labels, branches, attributes, change-sets, and configuration definitions.
  • Replication - For efficiency, it is often desirable to make a copy of all of or part of a repository at one or more geographically separated sites.
  • Synchronization - Periodically, it is necessary to update replicated repositories with new information. This process is called synchronization.
  • Timestamp - The time at which an action was performed. Usually, each version is timestamped in addition to being numbered. Timestamps are often the time at which a transaction was performed.
  • Version - Usually a monotonically increasing positive integer starting with 1 used to designate the different contents of an object over time. Any designation which uniquely identifies a version will suffice.

This is a good start... next onto what these terms mean in the context of SCM.


todsshoesstores said...

You need to be brisk to maintain equilibrium while executing mind blowing shots. Moncler Sale And tennis sneakers are a heck helpful in this regard. Tennis sneakers are ideal in providing support to the sides Belstaff Leather
of your feet while you make side to side movements. They are lightweight and flexible.Belstaff Womens Jackets
Herringbone patterned rubber outsole offer you excellent grip on all courts. These sneakers are well cushioned to comfort your Ugg Boots Salefeet and assure you a bombastic performance. So, shop a pair of tennis sneakers of your choice to meet your court needs and sore high on the success of your game. Kick the ball for a fine goal with cool football or soccer sneakers.

Amani Phoenix said...

An agile process tends to focus on iterations, and client feedback, to allow for the inevitability of changing requirements whereas a waterfall process tries to define all requirements up front, and tends to be inflexible to changing requirements. You can learn more about agile and scrum by referring to some free resources ( provided by scrumstudy or by attending any agile scrum certification courses. I would personally suggest Agile Expert Certified course or a Scrum Master Certification to you.