三库(开发库、受控库、静态库)的概念及个人的理解
作者 流水先生   查看 18948   发表时间 2007/3/1 10:25  【论坛浏览】
记得第一次在国内的坛子里看到三库的讨论的时候,登时就晕了…… ioweu
三库的概念被弄得挺严重,甚至被实现为物理上的多个库……ioweu
ioweu
这里,首先贴一下三库定义的原文、翻译,然后再谈谈个人的理解……ioweu
ioweu
==原文位置==ioweu
(中国国家标准也有三库的定义。这里就不再给出了。这里给出的是CMMI的定义,若有其它国际上比较权威的定义,烦请熟悉的同志贴一下,谢!)ioweu
ioweu
CMMI V1.0 ioweu
=> level 2 ioweu
=> Configuration Managementioweu
=> SG 1 Estabish Baselines ioweu
=> SP 1.2 Establish a Configuration Management Systemioweu
=> Subpractices 2. Store and retrieve configuration items in the configuration management system.ioweu
ioweu
==原文==ioweu
ioweu
Examples of configuration management systems include the following:ioweu
ioweu
Dynamic (or developer's) systems contain components currently being created or revised.ioweu
They are in the developer's workspace and are controlled by the developer.ioweu
Configuration items in a dynamic system are under version control.ioweu
ioweu
Master (or controlled) systems contain current baselines and changes to them.ioweu
Configuration items in a master system are under full configuration management as described int ths process area.ioweu
ioweu
Static systems contain archives of various baselines released for use. ioweu
Static systems are under full configuration management as described in this process area.ioweu
ioweu
==翻译==ioweu
ioweu
(感谢cmmi_cn@163.com等同志对CMMI的翻译工作!)ioweu
ioweu
CMMI V1.0 ioweu
=> 第二级 ioweu
=> 配置管理ioweu
=> SG 1 建立基线 ioweu
=> SP 1.2 建立配置管理系统ioweu
=> 子实践 2. 在配置管理系统中存取配置项ioweu
ioweu
配置管理系统举例如下:ioweu
ioweu
动态(或开发者)系统,包含当前正在产生或修订的组件。ioweu
它们在开发者的工作区,而且由开发者所控制。ioweu
属于动态系统的配置项,在版本控制之下。ioweu
ioweu
主(或受控)系统,包含当前的基线和基线的变更。ioweu
属于主要系统的配置项,在本过程域所描述的完全的配置管理之下。ioweu
ioweu
稳定的系统,包含已分发使用的各种基线的保存档。ioweu
稳定的系统,在本过程域所描述的完全的配置管理之下。ioweu
ioweu
ioweu
==个人理解==ioweu
ioweu
首先,三库仅仅是举例,在实践中,并不是一定要弄出三个库来。ioweu
其次,三库是逻辑上的概念,在实践中,并不是要对应到物理上的三个库。ioweu
根据定义,开发库可以大致映射为开发工程师的个人工作空间,在开发工程师本机上,个人目录下。当然,对于稍大的任务,也可以映射为存储库里的一个任务分支。ioweu
而受控库,则是开发工程师相互协作、交流最新工作成果的地方。大致上,可以映射为版本控制工具(svn/cvs/cc……)的repository(存储库)。这里,可能有不同的分支/目录做不同的用途,可能会打标签、基线。ioweu
静态库,又称基线库,指的是那些重要的基线,这些基线标志着项目的重要里程碑,或者这些基线被Release(发布)给了“外界”。在比较简单的版本控制工具里,一般可以用特定标签命名规范来把它们从其他标签、基线中区别出来;在SVN中,可以设置一个特别的Tag目录。而在比较复杂的版本控制工具里,也可以用基线/标签的某种属性(质量级别)来表达。例如,当某条基线通过了系统测试后,就把它的质量级别promote(提升)到“通过系统测试”。ioweu
对于静态库,再补充一点:对于这些基线,我们通常不仅要记录源代码,最好也保存一下编译结果/安装包。这样将来用起来会比较方便。编译结果/安装包一般就不要放到版本控制工具里去了,除非你受了商业宣传的蛊惑…… 在合适的机器上建个共享目录,设置合适的权限,来存储编译结果/安装包,一般就可以了。ioweu
ioweu
ioweu
个人意见。大家拍砖吧^_^

序号 评论者 共有评论 93   【论坛浏览】  【发表评论】 评论时间
31 流水先生

  引用:
原帖由 SnowJin 于 2007-7-23 16:49 发表
我不大赞同楼主对受控库的理解。楼主提到:“而受控库,则是开发工程师相互协作、交流最新工作成果的地方。”
我认为开发工程师相互协作、交流最新工作成果的地方恰恰是开发库(动态库)的概念。
而每个开发工 ...

很赞赏SnowJin的坦诚!我们需要这样的气氛,才能互相学习,共同进步!

我又翻看了一下英文原文,关于动态库,
Dynamic (or developer's) systems ... are in the developer's workspace and are controlled by the developer.
注意到workspace和developer用的都是单数。这么说,特定的动态库,是给特定的某一个开发者使用的。
这与SnowJin的理解不同。

而对于受控库,我则不确定当年的理解是否准确。
Master (or controlled) systems contain current baselines and changes to them.
注意到,这里不仅包含当前活跃/比较新的基线,也包括对基线的变更。
但是,这里所提的变更,是指的什么质量程度的变更呢?
如果,只要是程序员提交的,就算,那么,受控库就是开发工程师相互协作、交流最新工作成果的地方,如我当年的理解。
如果,只有通过集成的,通过测试的,才算,那么,受控库的内容,就是相对稳定的,相对正式的内容。这样,就和SnowJin和shuku的观点一致。

另外要提及的是,
三库的概念,是 Examples of configuration management systems,是些示例。
所以,在实际操作中,不必太拘泥于这套概念。重要的是理解它背后的观点:
不同的内容,用相应的合适的方法存储和控制;
适当隔离,物理上或逻辑上,以避免混乱和误操作。
2007/7/24 18:46
32 看看吧 第三个库我们一般称为产品库,是存放已冻结、供交付的基线的地方 2007/9/2 12:14
33 shaojing 非常感谢流水先生的讲解,之前只是了解到配置管理中有开发库、基线库、产品库的概念,在工作过程中并没有去深入理解三库的具体含义。当时读文档的时候总是想把他们对应到物理库上,没有想过其实它们应该是逻辑上的三库,这样就容易理解多了。
开发库对应的是开发人员的个人工作空间;
受控库对应的是用配置管理工具管理的配置库;
静态库是不是应该对应到产品库;
2007/9/2 16:13
34 zhangbq 正迷惑着呢 谢谢:0:: :0:: 2007/9/29 11:22
35 zhang88614 回复 #1 流水先生 的帖子
不错,我正想学习呢:1::
2007/10/2 20:00
36 xixiaojing666 我们一直是开发库\受控库(基线库)\产品库三库定义的,三库是逻辑上的三库,根据权限进行三库控制.
开发库大致映射为开发工程师的个人工作空间,在开发工程师本机上,个人目录下。此库开发人员有可写权限.
受控库就是经过评审或测试的工作产品,进入基线,不允许随便更改.此库开发人员只有可读权限.
产品库就是最后开发结束后形成的工作产品库.此库开发人员没有任何权限.

个人理解,!
2007/10/8 17:14
37 regina2007 很受用,多谢大家的分享.小弟刚刚接触CMM,以后还请多多指点.谢谢 2007/10/9 13:55
38 cufehx 三库概念在一个库里通过分支、基线实现应该是没有问题的。如果确实觉得有必要分开的话,静态库(产品库)单独建立物理上的库似乎可行,因为产品库存放的基本都是一些稳定的版本,相反在受控库中生成太多的基线可能不便于管理,所以我觉得是不是可以把产品库单独管理而把三库变成两库 2007/10/12 14:52
39 notata 比较赞同楼上的,三库是概念上的三库,物理上可以为一个库或者两个库,即把产品库单独作为一个库,因为这个库处于冻结阶段,只有特殊的人员才能访问。 2007/10/17 16:02
40 today603 我也受益匪浅:1:: 2007/10/28 16:18
 共有评论数 93  每页显示 10
页码 4/10  |<  <<   1 2 3 4 5 6 7 8 9   >>  >|