在软件开发过程中,由于各种原因,可能需要变动需求、预算、进度和设计方案等,尽管这些变动请求中绝大部分是合理的,但在不同的时机作不同的变动,难易程度和造成影响差别甚大,为了有效地控制变动,软件配置管理引入基线(baseline)的概念。

  IEEE对于基线的定义是:已经通过正式复审和批准的某规约或产品,它因此可以作为进一步开发的基础,并且只能通过正式的变更控制过程进行改变简单地说,基线是项目储存库中每个工件版本在特定时期的一个“快照”。它提供一个正式标准,随后的工作基于这个标准进行,并且只有经过授权后才能变更这个标准。建立一个初始基线后,以后每次对它进行的变更都将记录为一个差值,直到建成下一个基线。

  基线标志软件开发过程的各个里程碑,任一软件配置项( Software Configuration Item,简写作SCI)(例如,设计师说明书),一旦形成文档并复审通过,即形成一个基线,它标志开发过程中一个阶段的结束。对于已成为基线的SCI,虽然可以修改,但必须按照一个特殊的、正式的过程进行评估,确认每一处修改。相反,对于未成为基线的SCI,可以进行非正式修改。

  虽然基线可在任何级别上定义,但一般常用的软件基线如下图所示。

  某个SCI一旦成为基线,随即被放入项目数据库(project database)。此后,若开发小组中某位成员与、欲改动SCI,首先要将它拷贝到私有工作区并在项目数据库中锁住,不允许他人使用。在私有工作区中完成修改控制过程并复审通过之后,再把修改后的SCI推出并回到项目数据库,同时解锁。随着工作的进展,基线将合并自从上次建立基线以来开发人员已经交付的工作。变更一旦并入基线,开发人员采用新的基线,以与项目中的变更保持同步。调整基线将把集成工作区中的文件并入开发工作区。

  一般来讲,基线是软件文档或源码(或其它产出物)的一个稳定版本,它是进一步开发的基础。所以,当基线形成后,项目负责软件配置管理( Software COnfiguration Management, 简写作SCM)的人需要通知相关人员基线已经形成,并且哪儿可以找到这基线了的版本.这个过程可被认为内部的发布.至于对外的正式发布,更是应当从基线了的版本中发布.

建立基线的三大原因是:重现性、可追踪性和报告。

重现性是指及时返回并重新生成软件系统给定发布版的能力,或者是在项目中的早些时候重新生成开发环境的能力。可追踪性建立项目工件之间的前后继承关系。其目的在于确保设计满足要求、代码实施设计以及用正确代码编译可执行文件。报告来源于一个基线内容同另一个基线内容的比较。基线比较有助于调试并生成发布说明。

建立基线后,需要标注所有组成构件和基线,以便能够对其进行识别和重新建立。

建立基线有以下几个优点:

基线为开发工件提供了一个定点和快照。
新项目可以从基线提供的定点之中建立。作为一个单独分支,新项目将与随后对原始项目(在主要分支上)所进行的变更进行隔离。
各开发人员可以将建有基线的构件作为他在隔离的私有工作区中进行更新的基础。
当认为更新不稳定或不可信时,基线为团队提供一种取消变更的方法。
您可以利用基线重新建立基于某个特定发布版本的配置,这样也可以重现已报告的错误。