SCMLife.com

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 112818|回复: 192

[原创] 三库(开发库、受控库、静态库)的概念及个人的理解

  [复制链接]
发表于 2007-3-1 10:25:15 | 显示全部楼层 |阅读模式
记得第一次在国内的坛子里看到三库的讨论的时候,登时就晕了……
8 ?! G/ C1 p( ~9 V! w三库的概念被弄得挺严重,甚至被实现为物理上的多个库……
3 f' {! O, X4 f& r2 T8 s
2 R$ ?  ~: V5 s% K这里,首先贴一下三库定义的原文、翻译,然后再谈谈个人的理解……
+ ]5 ?3 L- t' o, s! I: f2 e- P; v9 t0 Z* ?1 [' h6 P7 L' O3 n& o
==原文位置==$ n$ V6 E/ F; ?) h* d, p. s+ d8 y
(中国国家标准也有三库的定义。这里就不再给出了。这里给出的是CMMI的定义,若有其它国际上比较权威的定义,烦请熟悉的同志贴一下,谢!)* F) i1 X4 r  e" z
7 y, P6 F' `5 R$ q# n$ _7 b; W
CMMI V1.0
# J% q$ D2 W) v" ~$ Y/ d. H9 f, q% {) B( V=> level 2 ; q! P2 O' _# n) Z  Y
=> Configuration Management
9 u, e! D* _: r! a; r- z=> SG 1 Estabish Baselines
( m' B6 s" Q, U% z# Q=> SP 1.2 Establish a Configuration Management System
" P( B6 k8 d9 I* @  n! A=> Subpractices 2. Store and retrieve configuration items in the configuration management system.
) H2 B+ g' J' I% g) z
7 g$ J& a+ L! \7 }4 c==原文==9 V) A$ d1 j  f- z
6 O/ }5 V5 ]8 ^3 d1 O* j' e
Examples of configuration management systems include the following:
- u0 Q; g3 ]+ ]* d: L2 N! W; `# D7 B, ?! ~, ~
Dynamic (or developer's) systems contain components currently being created or revised.( q! d1 Y6 a1 E
They are in the developer's workspace and are controlled by the developer.
* L1 G. K8 [! tConfiguration items in a dynamic system are under version control.
; k) n0 o* ]* p2 O8 T# y! p" c
Master (or controlled) systems contain current baselines and changes to them.. e% C' A, M2 y6 Q. B
Configuration items in a master system are under full configuration management as described int ths process area.
4 L1 g$ X' ]" L" }4 O( v
1 |: q: E8 c) Y. y. j# WStatic systems contain archives of various baselines released for use. # M0 _  h5 F7 F) u
Static systems are under full configuration management as described in this process area." i7 B6 p# O) o& X$ Z

; C, G0 [0 \. a; ?( K==翻译==
1 V7 S& V8 S. ]) A
' F) L, P! l. X  _. Q(感谢cmmi_cn@163.com等同志对CMMI的翻译工作!)
- _! ?5 n5 I; `+ R5 m/ F$ m: a
4 C( ^2 d3 n6 O& C! o$ PCMMI V1.0
' g* G0 F. F7 H6 O5 G=> 第二级 9 s* D/ s( Y' a8 ~, ?# O" \3 _
=> 配置管理
9 G+ @* f: Q0 O8 i6 U5 M=> SG 1 建立基线
2 E3 I9 s6 D2 A2 G=> SP 1.2 建立配置管理系统6 R  l2 r! O# i; D: `2 g
=> 子实践 2. 在配置管理系统中存取配置项
5 T' [9 L! J; E! @
$ Q( o1 Z. y" G7 L# N配置管理系统举例如下:
) M( d( d; d! _3 z/ H  H* N. F' m. t4 ]7 C; K0 ~
动态(或开发者)系统,包含当前正在产生或修订的组件。
3 J1 O8 }1 H. ]" i. E, o  m它们在开发者的工作区,而且由开发者所控制。
. q1 a! E8 F2 F- i$ l属于动态系统的配置项,在版本控制之下。" \& O' R5 K: _) p  o" x! G
4 i; N! X5 u" i: s
主(或受控)系统,包含当前的基线和基线的变更。
$ |& {/ u. P0 S& k" w2 e; ^& r0 D9 r% E0 E属于主要系统的配置项,在本过程域所描述的完全的配置管理之下。8 B: q5 Z  X' C  E4 m2 L& W7 R& B

7 i  E/ F  ]* ^0 m稳定的系统,包含已分发使用的各种基线的保存档。
8 z: j1 A; O6 g2 N稳定的系统,在本过程域所描述的完全的配置管理之下。; a3 W/ c! L/ B" O5 f- M; U$ B6 c+ P" F

' l, W* j" p1 V# m  i7 M
3 m+ x/ R' n! B2 u( q  v==个人理解==
6 `" n( O0 N& O2 X. E0 o* |6 w
, a! J- V+ h: t0 p9 D首先,三库仅仅是举例,在实践中,并不是一定要弄出三个库来。, t) z5 |* [' ?# _: ]
其次,三库是逻辑上的概念,在实践中,并不是要对应到物理上的三个库。
+ `- y9 ]# h  x$ X- I根据定义,开发库可以大致映射为开发工程师的个人工作空间,在开发工程师本机上,个人目录下。当然,对于稍大的任务,也可以映射为存储库里的一个任务分支。: y( f. t' c+ ]8 [4 F
而受控库,则是开发工程师相互协作、交流最新工作成果的地方。大致上,可以映射为版本控制工具(svn/cvs/cc……)的repository(存储库)。这里,可能有不同的分支/目录做不同的用途,可能会打标签、基线。
- q0 u* d6 y2 |- r静态库,又称基线库,指的是那些重要的基线,这些基线标志着项目的重要里程碑,或者这些基线被Release(发布)给了“外界”。在比较简单的版本控制工具里,一般可以用特定标签命名规范来把它们从其他标签、基线中区别出来;在SVN中,可以设置一个特别的Tag目录。而在比较复杂的版本控制工具里,也可以用基线/标签的某种属性(质量级别)来表达。例如,当某条基线通过了系统测试后,就把它的质量级别promote(提升)到“通过系统测试”。1 P5 o: o; P0 @. @- ?- }
对于静态库,再补充一点:对于这些基线,我们通常不仅要记录源代码,最好也保存一下编译结果/安装包。这样将来用起来会比较方便。编译结果/安装包一般就不要放到版本控制工具里去了,除非你受了商业宣传的蛊惑…… 在合适的机器上建个共享目录,设置合适的权限,来存储编译结果/安装包,一般就可以了。3 T7 }3 n+ u4 k

9 U" j5 J2 j) m4 Q6 X0 w- Z* e. D
9 E4 b' Q4 W/ o2 i) `个人意见。大家拍砖吧^_^

评分

参与人数 1威望 +5 金钱 +5 收起 理由
rocky_rup + 5 + 5 精彩的解释

查看全部评分

本帖被以下淘专辑推荐:

发表于 2007-3-22 12:08:11 | 显示全部楼层
谢谢大家的指导,特别感谢流水先生把我提的问题进行详细讨论. H' S. V# l6 I1 [4 i* R
' w; U+ P5 e' M$ j9 F
“逻辑上独立,物理上一起”
6 D- ~, v: z& F' ?1 G
0 R. t$ h: F, A( [$ ?3 a现在基本明白了,还要在以后实践中继续体会
回复 支持 0 反对 1

使用道具 举报

发表于 2007-3-2 17:40:08 | 显示全部楼层
嗯,一般配置管理工具都会支持配置库的建立。0 I/ m( _* [  N2 Y3 V9 o% G9 e4 L
) o, ]% n1 ~# Y6 r1 ^  O
但如何建立和管理还是需要结合公司的实际情况。
回复 支持 1 反对 0

使用道具 举报

发表于 2007-3-1 14:51:39 | 显示全部楼层
楼主写得很详细,比较赞同这种想法!
% f5 w% Y& a+ u& [6 e3 Y
" H5 X! Y: s5 a- X尤其是"其次,三库是逻辑上的概念,在实践中,并不是要对应到物理上的三个库。"
* x" M+ A' K  t; \
. r  b$ B5 r% O9 P& M很多人可能都存在误解,觉得一定是要有严格意义的三个库.
回复 支持 反对

使用道具 举报

发表于 2007-3-1 15:10:32 | 显示全部楼层
现在很多公司在CMMI的考虑上面可能是为了过级,书上说什么内容就在库里面给出什么内容。
' s6 S4 u! d  I5 f" ~( t4 z* |# F3 w理解其中的意思,选择正确的工具进行受控的管理
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-3-1 15:53:51 | 显示全部楼层
谢谢大家!谢谢!其实三库的概念是我自己不太吃得准的概念,写出来特别想知道大家的意见…… 看到大家亦有类似的见解,很高兴啊……
回复 支持 反对

使用道具 举报

发表于 2007-3-1 18:47:52 | 显示全部楼层
三库也好,一个库也好,都是为了更好的保护软件资产.那么建几个库,要根据实际的要求.
# _6 ]" U, D' C' {比如使用CC工具,完全可以建立两个库,开发库和产品库,受控库可以是包含的基线的内容.
回复 支持 反对

使用道具 举报

发表于 2007-3-1 20:13:14 | 显示全部楼层

愚见

个人也认为所谓的三库应该指项目过程的三个状态,就像上面所的应该只是逻辑上的关系。
0 \) h+ N: u5 a" Y5 ~8 p+ N
$ j- E2 {& z) f( J动态库应该强调项目组成员日常的工作成果,比如日常开发的代码,为成形的文档,项目管理类的文档,配置库的使用应该也包括对这些日常工作成果的管理,当然这种管理应该是最低层次的管理,主要目的是为了保护他们的工作成果,当然还有也为度量之用。: L1 h: q' }% {

: M! O; q( C: m* a" q* `( y受控库应该说的是通过评审的文档,测试的程序的控制库。这个应该是配置管理的重点,包括版本,标志,审计,状态统计的重点。& q$ V& i$ O% u# s
' d9 F6 s% Y: ^) F& O9 q5 E5 p
静态库应该主要指阶段性的成果,基线,里程碑成果等。
回复 支持 反对

使用道具 举报

发表于 2007-3-3 19:56:03 | 显示全部楼层
觉得只要控制好权限, O5 N- F. C: T: E/ T/ |. U4 A
所谓的三库不过是状态标识而已,通过基线,分支可以做到 物理的单独一个库
回复 支持 反对

使用道具 举报

发表于 2007-4-28 10:41:54 | 显示全部楼层
谢谢大家的见解,使我对于三库的抽象概念与现实的配置环境有了更好的对应,从而对三库有了更深刻的理解。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

SCMLife推荐上一条 /5 下一条

QQ|小黑屋|手机版|无图版|SCMLife.com ( 京ICP备06056490号-1 )

GMT+8, 2020-2-28 09:32 , Processed in 0.084220 second(s), 11 queries , Gzip On, MemCache On.

Powered by SCMLife X3.4 Licensed

© 2001-2017 JoyShare.

快速回复 返回顶部 返回列表