---
title: "Versioning process and its components"
subject: "Software Engineering"
chapter: 10
key: "semester_5/software_engineering:versioning-process"
source: https://www.bctengineer.com/q/semester_5/software_engineering/versioning-process
site: BCT Engineering
---

# Versioning process and its components

Software Engineering · Chapter 10: Configuration Management

- Asked in: year not given, 5 marks
- Answer checked by Claude Opus 5.5 (high effort) on 2026-10-14
- Page: https://www.bctengineer.com/q/semester_5/software_engineering/versioning-process
- Whole chapter: https://www.bctengineer.com/md/semester_5/software_engineering/chapter-10

## Question

Explain versioning process with all the associated components.

## Short answer

Versioning tracks versions of configuration items in a repository, using version identification, codelines, baselines, check-in/check-out, deltas, branching and merging, and releases. The process is: identify CIs, store them, set a baseline, check out/change/check in, branch and merge, create new baselines, and release.

## Answer

**Versioning** (version management) is the process of keeping track of the different versions of software components and systems, so that changes made by different developers do not interfere and any earlier version can be retrieved. It is a core part of software configuration management (SCM).

#### Components of the versioning process

1. **Configuration items (CIs):** the objects placed under version control, such as source code, SRS, design models, test cases and build scripts.
2. **Repository (project database):** the store that holds every version of every configuration item, along with information about who changed it, when and why.
3. **Version identification:** a unique name for each version, by version numbering (1.0, 1.1, 2.0), attribute-based naming (date, platform, customer), or change-oriented naming (by the change sets applied).
4. **Codeline:** the sequence of versions of a component, each derived from the one before it.
5. **Mainline:** the main sequence of system versions developed from an original baseline.
6. **Baseline:** a formally reviewed and approved set of component versions that forms a fixed base for further work. It can be changed only through formal change control.
7. **Workspace and check-in/check-out:** developers check out files into a private workspace, make changes, and check them in, creating new versions.
8. **Deltas:** instead of storing complete copies, the system stores one full version plus the differences (deltas) between versions, to save space.
9. **Branching and merging:** a branch is a separate codeline (for a bug fix, a customer variant or a new feature); merging combines changes from branches back into the mainline.
10. **Release:** a version distributed to customers, with a recorded list of all component versions used to build it.

```text
         Baseline V1           Baseline V2
             |                     |
Mainline: A1.0 -> A1.1 -> A1.2 -> A2.0 -> A2.1
                    |               ^
Branch:             +-> A1.1.1 -----+  (merge)
```

**Process:** identify CIs, put them in the repository, set an initial baseline, check out and change items, check them in as new versions, branch and merge when needed, create new baselines at milestones, and release.

**Tools:** Git, Subversion, CVS and Mercurial automate these steps.

## Check yourself

The answer's key points as multiple-choice questions, with the correct option and why.

1. What is the main purpose of versioning in SCM?
   A. To track versions of components so developers' changes do not interfere and earlier versions can be retrieved
   B. To speed up program execution
   C. To translate code to other languages
   D. To estimate project cost
   Answer: A. Version management keeps track of different versions so changes do not clash and any earlier version can be recovered. (Key point: Purpose of versioning)

2. What is a baseline?
   A. Any file a developer is currently editing
   B. A branch used for bug fixes
   C. A formally reviewed and approved set of component versions that can be changed only through formal change control
   D. The first line of source code
   Answer: C. A baseline is a fixed, approved base for further work and changes need formal change control. (Key point: Baseline)

3. Why does a version system store deltas, and what does merging do?
   A. Deltas encrypt the code; merging deletes branches
   B. Deltas save space by storing one full version plus differences; merging combines branch changes back into the mainline
   C. Deltas store complete copies; merging creates a branch
   D. Deltas record who changed files; merging assigns version numbers
   Answer: B. Storing one full version plus differences saves space, and merging brings branch changes back to the mainline. (Key point: Deltas and branching)

## Related in other subjects

- [Software process models and effort estimation](https://www.bctengineer.com/question.md?key=semester_5%2Finstrumentation_ii%3Asw-process-models) — Instrumentation II, chapter 9, asked 2×
- [Knowledge management and KM triangle](https://www.bctengineer.com/question.md?key=semester_8%2Finformation_system%3Aknowledge-management-hierarchy) — Information System, chapter 4
- [Principle and complexities of route location](https://www.bctengineer.com/question.md?key=semester_6%2Ftransportation_engineering_i%3Alocation-principle-complexities) — Transportation Engineering I, chapter 2
