About components, baselines, activities, and streams

UCM uses baselines, activities, and streams to control modifications to a project's components.

UCM users rely on a project manager to create a project, structure the project's shared resources (files and directories) into components, and then specify baselines, activities, and streams that guide the team in modifying and integrating the components.


A UCM component is a collection of shared resources that the team develops, integrates, and releases as a unit (a class library, for example, or a user interface module). A UCM project includes one or (usually) more components, which are often shared with other projects. A component is usually created as a top-level directory in a VOB. A VOB can include one or more components, but a component cannot contain other components.


A baseline specifies one version of each element in a component and represents a version of the entire component at a particular stage of its development. As work on a component progresses, the project manager periodically creates new baselines and gives each one a promotion level that indicates its maturity or readiness for use by the team. When you rebase a UCM VersionVault view, you update its configuration to select the versions selected by a particular baseline (usually the project's recommended baseline).

You can use the VersionVault Navigator to create and recommend baselines in a UCM project.


In a VersionVault UCM view, any time you add a resource to source control or modify a resource that is already under source control, you must associate your action with a UCM activity, which identifies a set of versions created during a specific development task.

Each activity includes a headline, an activity ID, and a change set. The headline is a text string, the activity ID is a unique identifier generated by VersionVault, and the change set specifies one version of each file that you modified (or added to source control) while working on the activity.

When you create a new activity or select an existing one to associate with an operation, that activity becomes the current activity for the VersionVault view in which you are working. Each VersionVault UCM view can have no more than one current activity.

An activity is not limited to a particular scope of work, although UCM project managers usually establish guidelines that help users assign work to an activity. For example, a project manager may decide that the versions that you create while fixing a defect or adding a new feature constitute an activity. An activity could also encompass all of the changes required to port an application to a new operating system or hardware platform

You can use the VersionVault Navigator view to view activities in a UCM view.


Every UCM VersionVault view is bound to a stream, which includes a set of activities and baselines and determines which versions of elements are in the view. Every project has an integration stream, to which all project members deliver their work. In addition, a project can define one or more development streams that allow individuals to work in greater isolation before delivering their changes to the integration stream. When you join a single-stream UCM project, you create an integration view, which is bound to the project's integration stream. When you join a multiple-stream UCM project, you create an integration view and a development view. The development view is bound to a development stream.

In a single-stream project, all team members work on activities in an integration view and complete them by checking them in to the integration stream. As soon as a change is checked in, any developer can see it by updating his integration view. In a multiple-stream project, individuals work on activities in a development view and periodically deliver them to the project's integration stream. Before the results of these activities can be seen by other team members, the activities must be included in a baseline and the team members must rebase their development streams to that baseline. With a multistream UCM project, allows developers more control over their development environment.

You can use the VersionVault Navigator view to view the streams in a UCM project.