在软件开发过程中,由于各种原因,可能需要变动需求、预算、进度和设计方案等,尽管这些变动请求中绝大部分是合理的,但在不同的时机作不同的变动,难易程度和造成影响差别甚大,为了有效地控制变动,软件配置管理引入基线(baseline)的概念。
IEEE对于基线的定义是:已经通过正式复审和批准的某规约或产品,它因此可以作为进一步开发的基础,并且只能通过正式的变更控制过程进行改变简单地说,基线就是项目储存库中每个工件版本在特定时期的一个“快照”。它提供一个正式标准,随后的工作基于这个标准进行,并且只有经过授权后才能变更这个标准。建立一个初始基线后,以后每次对它进行的变更都将记录为一个差值,直到建成下一个基线。
基线标志软件开发过程的各个里程碑,任一软件配置项( Software Configuration Item,简写作SCI)(例如,设计师说明书),一旦形成文档并复审通过,即形成一个基线,它标志开发过程中一个阶段的结束。对于已成为基线的SCI,虽然可以修改,但必须按照一个特殊的、正式的过程进行评估,确认每一处修改。相反,对于未成为基线的SCI,可以进行非正式修改。
虽然基线可在任何级别上定义,但一般最常用的软件基线如下图所示。
某个SCI一旦成为基线,随即被放入项目数据库(project database)。此后,若开发小组中某位成员与、欲改动SCI,首先要将它拷贝到私有工作区并在项目数据库中锁住,不允许他人使用。在私有工作区中完成修改控制过程并复审通过之后,再把修改后的SCI推出并回到项目数据库,同时解锁。随着工作的进展,基线将合并自从上次建立基线以来开发人员已经交付的工作。变更一旦并入基线,开发人员就采用新的基线,以与项目中的变更保持同步。调整基线将把集成工作区中的文件并入开发工作区。
一般来讲,基线是软件文档或源码(或其它产出物)的一个稳定版本,它是进一步开发的基础。所以,当基线形成后,项目负责软件配置管理( Software COnfiguration Management, 简写作SCM)的人需要通知相关人员基线已经形成,并且哪儿可以找到这基线了的版本.这个过程可被认为内部的发布.至于对外的正式发布,更是应当从基线了的版本中发布.
建立基线的三大原因是:重现性、可追踪性和报告。
重现性是指及时返回并重新生成软件系统给定发布版的能力,或者是在项目中的早些时候重新生成开发环境的能力。可追踪性建立项目工件之间的前后继承关系。其目的在于确保设计满足要求、代码实施设计以及用正确代码编译可执行文件。报告来源于一个基线内容同另一个基线内容的比较。基线比较有助于调试并生成发布说明。
建立基线后,需要标注所有组成构件和基线,以便能够对其进行识别和重新建立。
建立基线有以下几个优点:
基线为开发工件提供了一个定点和快照。
新项目可以从基线提供的定点之中建立。作为一个单独分支,新项目将与随后对原始项目(在主要分支上)所进行的变更进行隔离。
各开发人员可以将建有基线的构件作为他在隔离的私有工作区中进行更新的基础。
当认为更新不稳定或不可信时,基线为团队提供一种取消变更的方法。
您可以利用基线重新建立基于某个特定发布版本的配置,这样也可以重现已报告的错误。
使用
定期建立基线以确保各开发人员的工作保持同步。但是,在项目过程中,应该在每次迭代结束点(次要里程碑),以及与生命周期各阶段结束点相关联的主要里程碑处定期建立基线:
生命周期目标里程碑(先启阶段)
生命周期构架里程碑(精化阶段)
初始操作性能里程碑(构建阶段)
产品发布里程碑(产品化阶段)
一般软件配置需包括下列SCI:
1. 系统规格说明书
2. 软件项目规划
3. 要求分析结果
a. 软件需求规格说明书
b. 可执行的或“纸样”原形
4. 初步用户手册
5. 设计规格说明书
a. 数据设计描述
b. 总体结构设计描述
c. 模块设计描述
d. 界面设计描述
e. 对象描述(若采用面向对象技术)
6. 源代码清单
7. 测试规格说明书
a. 测试计划和过程
b. 测试用例与实验结果
8. 操作和安装手册
9. 可执行程序
a. 每个模块的可执行代码
b. 链接到一起的代码
10. 数据库描述
a. 数据模型和文件结构
b. 初始化映象
11. 联机用户手册
12. 维护文档
a. 软件问题报告单
b. 维护申请单
c. 预计变动的顺序
13. 软件工程的标准
除此之外,有时把软件工具也列入配置管理的范畴,即把软件开发中选用的编辑器,编译器和其他一些CASE工具固定地作为软件配置的一部分,当配置中其他的SCI发生变化时,, 时考虑这些工具是否与之适应和匹配。
普遍认为,用面向对象的方法组织项目数据库最自然、合理。此时,将每个SCI看作一个配置对象,它有自己的名字和一组属性,各SCI之间的联系用对象间的关系表示。以下图为例,“设计规格说明书”、“数据模块:”、“模块N”、“源代码”、和“测试规格说明书”分别为五个配置对象,对象之间的关系用有向连线表示。有向曲线说明对象的部分-整体关系。例如,“数据模型”和“模型N”都是“设计规格说明书”的组成部分。双向连线说明对象间的内在联系。例如,一个模块的源代码一旦变动对应的测试用例亦需修改,随之需要重新执行测试过程。
参考:
(1) 软件配置管理中的基线技术 http://www.51cto.com/art/200512/16088.htm
(2) 基线 中程在线 http://www.itisedu.com/phrase/200603130850315.html
(3) 什么是基线 http://hi.baidu.com/hxjing/blog/item/d04c21db42deda66d0164ecf.html