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

序号 评论者 共有评论 93   【论坛浏览】  【发表评论】 评论时间
81 酸汤鱼 和和。。。这么多年我一直理解的是三个库物理分开的,看来是没有明白其真正的用途用意~~~~ 2008/7/21 14:20
82 binglian 做了一个多月之后,觉得对这三个库的概念有些生疏了,回来回忆一下 2008/7/21 14:44
83 lijiefenger 那么了解三库是为了什么呢?了解配置库的状态? 2008/7/25 13:01
84 liruixuan 三个库建立起来,不好管理,但是轻重方面比较分明,如果只是一个库的话,也不好控制,本人是这方面菜鸟,正在学习中。 2008/8/5 14:31
85 Dreamsgirl

  引用:
原帖由 lijiefenger 于 2008-7-25 13:01 发表 点击查看大图


那么了解三库是为了什么呢?了解配置库的状态?

其实了解三库,我觉得其真正目的是要你了解配置项的状态迁移的过程。
配置项的状态也不外乎 自由状态,受控状态及最终的发布状态
一旦你真正的理解了配置项的状态迁移的过程,三个库的概念及意义自然而然就会理解了
2008/8/6 14:28
86 xuehuahe1982 以前对三库一直不太了解,今天看完大家的解释,总算明白了 2008/9/8 14:21
87 beyond52 哎,看到这个库字,我也是以为会有物理上的三个东东.那根据我公司来看,开发库可以=开发人员所建立的view了,受控库=测试的环境,静态库=发布生产环境。 2008/10/5 22:24
88 jbcm 关于配置管理三库
我们有最新版的青鸟软件配置管理系统三库版试用版,符合ISO9000-3和CMM软件质量保证体系的要求,有兴趣的可以和我们联系:qq:594175250 Email:jbcase@beidasoft.com 电话:62757039 地址:北京大学理科1号楼1726N
大家可以通过试用体会一下配置管理三库的一些概念。
2008/10/6 10:06
89 fjqandy 我觉得这个库是可以根据自己的需要建立的。可以建三个也可以建两个。 2008/10/20 16:42
90 futurism 个人观点,三库其实是两库,开发库肯定是跟另外两库分开的,而静态库跟受控库可以是在同一个repository(存储库)中,至少目前我们公司是这么做的,不知道如果实现物理三库,即静态库跟受控库也分开,其意义何在? 2008/10/21 11:58
 共有评论数 93  每页显示 10
页码 9/10  |<  <<   4 5 6 7 8 9 10   >>  >|