Identifying a project baseline

In your role as project integrator, you are responsible for telling developers which baselines to use when they join the project and when they rebase their development streams. You could keep track of a list of baselines, one for each component. However, a more efficient practice is to use a composite baseline to represent the project baseline (see the following figure).
Figure 1. Using a system-level composite baseline

Project X with a system component has two lines, one to Project A and one to Project B.

Project A uses a composite baseline, PA, to select baselines in the GUI and Admin components. Project B also uses a composite baseline, PB. Baselines that are selected by a composite baseline are referred to as members. A composite baseline is said to depend on the member baseline.

After you create a composite baseline to represent the project baseline, the next time you invoke the make baseline operation on the component that contains the project baseline, UCM performs the operation recursively. If a component that contributes to the composite baseline has changed since its latest baseline, UCM creates a new baseline in that component. For example, assume that developers made changes to files in the GUI component after the integrator created the 1 baseline. The next time you make a new project baseline, UCM creates a new baseline in the GUI component that incorporates the changed files, and the new project baseline selects the new GUI baseline.

A composite baseline can select other composite baselines. Thus, member baselines may themselves be composite baselines. The chain of dependencies forms an acyclic directed graph, with no limit on the depth of the membership. Composite baselines do not necessarily have to model any source or build dependencies.

For example, if your system is so large that it consists of multiple projects, you may want to use a composite baseline to represent the system baseline. In the figure, SB is a composite baseline that selects the PA and PB baselines of Project A and Project B, respectively.

In addition to using a composite baseline to represent the project, you can use multiple composite baselines within the same project. When working with multiple composite baselines, you can encounter situations where two composite baselines select different baselines of the same component. When this happens, you need to resolve the conflict by choosing one of the member baselines. To avoid these conflicts, choose a simple baseline design, rather than one that uses a complex hierarchy of composite baselines.