Concepts:
Baselining
Topics
A baseline is a 'snapshot' in time of one version of each artifact in the
project repository. It provides an official standard on which subsequent work is
to be based, and to which only authorized changes can be made. After an initial
baseline is established every subsequent change to a baseline is recorded as a
delta until the next baseline is set.
Developers on joining a project populate their work areas with versions of
directories and files represented by a baseline. As work proceeds, a baseline
incorporates work that developers have delivered since the last baseline was
created. Once changes have been incorporated into a baseline, developers rebase
to the new baseline to stay current with changes in the project. Rebasing merges
files from the integration workspace into the development workspace.
The three main reasons for creating baselines are reproducibility,
traceability, and reporting.
Reproducibility is the ability to go back in time and reproduce a given
release of a software system, or reproduce a development environment at a prior
time in the project. Traceability establishes the predecessor-successor
relationship between project artifacts. Its purpose is to ensure that design
fulfills requirements, code implements the design, and executables are built
from the correct code. Reporting is based on comparing the contents of one
baseline against another. Baseline comparison assists in debugging and
generating release notes.
When baselines are created, all constituent components and baselines need to
be labeled such that they are uniquely identifiable and re-creatable.
There are several
advantages to creating baselines:
- A baseline provides a stable point, and a snapshot of the development
artifacts.
- Baselines provide a stable point from which new projects can be created.
The new project, as a separate branch, would be isolated from subsequent
changes to the original project (on the main branch).
- Individual developers can take baselined components as a basis for updates
in their isolated private workspaces.
- A baseline provides a way for a team to roll back changes in case the
updates are considered to be unstable or suspect.
- A baseline provide a way to reproduce reported bugs given that you can
recreate the configuration when a particular release was built.
Make baselines regularly to make
sure that developers stay in sync with each other's work. However, during the
course of the project baselines should be created routinely at the ends of
iterations (minor milestones) and major milestones associated with the end of
the lifecycle phases:
- Lifecycle Objectives Milestone (Inception Phase)
- Lifecycle Architecture Milestone (Elaboration Phase)
- Initial Operational Capability Milestone (Construction Phase)
- Product Release Milestone (Transition Phase)
Copyright
© 1987 - 2001 Rational Software Corporation
|