51Testing软件测试论坛

标题: 如何理解“基线”(Baseline)这个术语【转】 [打印本页]

作者: luoyear    时间: 2004-5-17 19:32
标题: 如何理解“基线”(Baseline)这个术语【转】
转载自:http://www.devmanclub.com/ShowPost.aspx?PostID=1637


--------------------

“基线”是一个很常见的术语,在配置管理和项目管理里面都能看到,而且还有很多衍生的术语,例如基线提升、基线化、基线审计,等等等等。

我个人以前对微软的那套开发流程(就是product cycle model)以及PSP、TSP了解比较多一些,这些流程里面对“基线”的概念提的不多。但接触RUP、MSF以及项目管理以后,看到到处都有b
aseline,就觉得迷惑了。

经过我自己的理解,以及和几个同事的讨论,现在我觉得我们通常看到的“基线”这个术语有两个意思:

1)代表多个源代码文件的一组版本。

比如有三个文件,aaa.c、bbb.c和ccc.h。可以对这三个文件做一个基线,取aaa.c的版本1.1,取bbb.c的版本1.3,取ccc.h的版本1.0。(1.1,1.3,1.0)就是一个基线。换
句话说,通常在vss和cvs里面做label,就是在做基线。

这种基线对“构建审计”特别有用:在做build的时候,可以先对所有源文件做一个label,取名为"Build2394",然后再编译、集成。这样,以后如果要找到和build 2394对应的原文件,只需要
到vss或者cvs里面把所有文件对应label Build2394的版本取回来就可以了。

2)代表文档的一个稳定状态。

比如有一个项目设计文档,当设计基本完成,开发即将开始的时候,需要把这个文档固定下来,内容不能再频繁改变,否则开发人员就无所适从了,可能导致每个人所参照的文档并不是同一个文档。用一句上海这里的生活用语来
说,就叫做要把这个文档“敲定”。

一个文档如果经过讨论被通过了,被固定了,就可以说这个文档被“基线化”了,然后所有人就可以在这个“基线”的基础上工作。

当然,文档不可能一成不变,所以当对文档的修改仍然会不断进行,但这种修改并不会随时随地的添加到被“基线化”了的文档中去。因为既然是“基线”,就不能随便动。

但是到了一定时候,修改积累到一定程度,就需要把很多修改合并到原来的文档中去了,并生成一个新版本的文档作为团队中所有的人的参考标准,并把老的版本淘汰掉。这就叫做“基线提升”。



以上就是我个人对“基线”这个术语的两种不同含义的理解,大家可以讨论讨论看,是不是差不多就是这个意思。
3)合同基线
当你和客户讨论后,“敲定”的合同
4)发行基线
你会对你要发行的代码,文档版本进行label, 比如Release2.2,
这样,你可以随时取出此版本作build,进行测试,发布。

5)产品基线
当发布时,你会对产品中所有的配置项进行label,包括可执行命令,文档手册,库文件。。。
作者: tina0418    时间: 2007-5-10 13:38
谢谢
作者: skystarby    时间: 2007-5-15 16:25
thanks
作者: macco    时间: 2007-10-10 17:19
好东西!感谢!
作者: 刘洪鹏    时间: 2007-10-11 14:09
基线(Baseline)说起. 基线是软件文档或源码(或其它产出物)的一个稳定版本,它是进一步开发的基础.所以,当基线形成后,项目负责SCM的人需要通知相关人员基线已经形成,并且哪儿可以找到这基线了的版本.这个过程可被认为内部的发布.至于对外的正式发布,更是应当从基线了的版本中发布.

      基线是项目储存库中每个工件版本在特定时期的一个“快照”。它提供一个正式标准,随后的工作基于此标准,并且只有经过授权后才能变更这个标准。建立一个初始基线后,以后每次对其进行的变更都将记录为一个差值,直到建成下一个基线。

      参与项目的开发人员将基线所代表的各版本的目录和文件填入他们的工作区。随着工作的进展,基线将合并自从上次建立基线以来开发人员已经交付的工作。变更一旦并入基线,开发人员就采用新的基线,以与项目中的变更保持同步。调整基线将把集成工作区中的文件并入开发工作区。

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

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

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

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

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

      使用

      定期建立基线以确保各开发人员的工作保持同步。但是,在项目过程中,应该在每次迭代结束点(次要里程碑),以及与生命周期各阶段结束点相关联的主要里程碑处定期建立基线:

      生命周期目标里程碑(先启阶段)
      生命周期构架里程碑(精化阶段)
      初始操作性能里程碑(构建阶段)
      产品发布里程碑(产品化阶段)
作者: fireflag    时间: 2007-12-26 14:37
学习中。。。。。。。。。。。。
作者: usher911    时间: 2008-3-23 22:41
谢谢,很经典,了解!!
作者: lovemiya    时间: 2008-5-27 15:26

终于明白了baseline了,THX!
作者: 亚瑟王    时间: 2008-9-2 17:22
学习了!!!
作者: cxwtomcat    时间: 2008-10-8 12:05
谢谢,收藏。
作者: m2b2x    时间: 2008-11-21 16:04
嗯,我们测试的需求都是基于某个baseline的
作者: wangbbc    时间: 2008-12-7 15:11
你文中所指的”基线提升“含义实际应该是”推荐基线“
参考http://se.csai.cn/casepanel/CM/No107.htm
作者: majun915    时间: 2008-12-8 14:03
好东西!感谢!
作者: zhap    时间: 2009-10-16 15:02
学习中,谢谢!
作者: klyun    时间: 2010-6-22 17:54
新入行,学习中
作者: 千里    时间: 2010-6-22 18:02
简单认为就是‘里程碑’
作者: woshiagun    时间: 2010-8-6 23:35
我觉得基线的概念并不限于软件,我们的产品开发,包括软硬件,每到关键里程碑时都要将一些输出基线化。
作者: 鹿鸣春    时间: 2010-10-28 18:19
跟老师们学习了
作者: willyenillye    时间: 2010-11-2 09:45
楼主将基线理解的窄了.

基线不仅仅被放在文档控制和版本控制中,这仅仅是软件开发中的一隅.既然这个板块是质量板块,实际上我更倾向于还原基线的本意.基线就是地基打完后的一条线,或者叫基准线,或者叫其他的什么什么.

基线可以是任何东西,只要这个东西在某个度量中占据了一个确定的刻度,其他东西以该刻度为标准参考.基线可以是一个范围,例如,软件需求是软件开发的基线,也即软件开发过程在需求文档规定的范围内进行.如果是一个阶段的基线,那么就变成了一个类似于里程碑的东西,以前面的比喻就是一个个基线成为尺子上的一个个刻度.

这是我对基线的理解.
作者: dzpt2005    时间: 2011-2-28 13:16
多谢楼主了,刚接触基线这个概念,一直很难理解。
作者: koala326    时间: 2011-6-5 15:31
一直对基线这个概念理解的不够清楚,感谢楼主分享
作者: freeknighting    时间: 2011-7-21 13:45
学习
作者: criseice    时间: 2011-8-10 21:08
同意20楼对基线的理解!
作者: ggwx    时间: 2011-11-16 13:34
我觉得就是这样,说的很对~
作者: redrosemarry    时间: 2012-1-30 11:48
刚接触质量管理,学习了
作者: weiweixiaocao    时间: 2012-5-12 15:06
不错不错,楼主是个绝对高手
作者: yanzs0120    时间: 2012-5-12 17:10
有点简单
作者: xszhu123    时间: 2012-9-23 15:41
路过!!!
不发表意见……
作者: soup51    时间: 2013-7-24 22:25
答疑




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2