SCMLife.com

 找回密码
 加入SCMLife
查看: 58752|回复: 174

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

  [复制链接]

19

主题

14

好友

4584

积分

版主

Rank: 15Rank: 15Rank: 15

百元爱心捐助

发表于 2007-3-1 10:25:15 |显示全部楼层
记得第一次在国内的坛子里看到三库的讨论的时候,登时就晕了…… - _, O% h: W7 y1 {; L6 V
三库的概念被弄得挺严重,甚至被实现为物理上的多个库……2 ~. O1 v0 Q+ q, t7 H+ z
% a! G4 l  \1 ~  U+ n2 `$ D. w
这里,首先贴一下三库定义的原文、翻译,然后再谈谈个人的理解……
6 u2 u% C& ^7 {
( D' |% c* t0 u$ A  r, H0 B8 T: O==原文位置==
$ n7 ~2 E0 m0 K(中国国家标准也有三库的定义。这里就不再给出了。这里给出的是CMMI的定义,若有其它国际上比较权威的定义,烦请熟悉的同志贴一下,谢!)
% [0 J' n: y2 y: S8 a7 b
: w% H" i5 K8 F9 g4 rCMMI V1.0
3 E+ Z' {* G* p3 u=> level 2 ! S8 D' J0 `" r; y  f, B
=> Configuration Management6 Z& Y* Q8 |2 R4 [
=> SG 1 Estabish Baselines 6 c( q2 @$ Y1 M0 z0 c. r+ \* t
=> SP 1.2 Establish a Configuration Management System
* o1 B0 ], k" ^  L* U5 t=> Subpractices 2. Store and retrieve configuration items in the configuration management system.3 J; y) X" h; f- u+ ]

8 y: F( s" S9 Q# `! Z* M5 x' [+ e4 G==原文==* ]' u0 Q# p. Y  Z1 s* ]
2 P3 c4 c+ }; M8 d, Z) w! Z# o
Examples of configuration management systems include the following:3 q2 B% R9 l: Q/ I* C
  Y! i" y; i2 E! @6 S4 U7 Q" c* }) X
Dynamic (or developer's) systems contain components currently being created or revised.7 L/ m# }- l. a8 p, u' @% B
They are in the developer's workspace and are controlled by the developer.
, |( s2 o5 Q9 f5 s  X+ g# BConfiguration items in a dynamic system are under version control.
+ a! k8 A" I$ Z0 y' Z" `' i+ _
# l9 Z+ f" f; G( D8 fMaster (or controlled) systems contain current baselines and changes to them.
# R; I; O- n" B9 KConfiguration items in a master system are under full configuration management as described int ths process area.
( o4 e2 r  \1 z& K- y; F1 |: N
$ b7 m9 ~' P  I5 v! v3 mStatic systems contain archives of various baselines released for use. * }  ~' a& h1 j9 W/ t1 X; J: m' E
Static systems are under full configuration management as described in this process area., k8 j0 K$ X' |8 ]+ V0 y3 R% i+ P

9 U7 A% }% J& j6 B  p6 V/ Q$ P  \9 m==翻译==
& Q. ]; W1 h. @4 M0 q6 u, I$ W" R4 ]- J6 H% T* k" d
(感谢cmmi_cn@163.com等同志对CMMI的翻译工作!)
1 w6 X, Z6 P) l. E0 X$ b$ q  P, C3 g7 b  m9 M0 T8 K: [
CMMI V1.0 8 ^' I( ^$ B9 f4 b
=> 第二级 3 t& h3 Y1 E, ]0 C! t
=> 配置管理3 D9 T. a; g$ e8 V) {, O5 b$ h( x
=> SG 1 建立基线 ' @- Y+ k# w' G: T8 d  M( j4 N9 c7 [1 `
=> SP 1.2 建立配置管理系统
+ O) J+ M9 o: D/ P# B8 j7 d. p% [=> 子实践 2. 在配置管理系统中存取配置项# Q1 F* y* R" j6 a

/ G5 l, u- r- ]配置管理系统举例如下:
6 Q. G. e, `- e- p. j* }' P
' q- w: y8 ]7 _; T7 v动态(或开发者)系统,包含当前正在产生或修订的组件。& r8 w( t- {/ Z9 F) w( I: U: Q
它们在开发者的工作区,而且由开发者所控制。
8 k( m. U; \% q6 X" g属于动态系统的配置项,在版本控制之下。
, G! O% `# s6 o5 g' s: N
' B0 U8 T" j- `: T3 @3 s' s$ K主(或受控)系统,包含当前的基线和基线的变更。
( G/ u1 Q) U3 }, w0 M8 b属于主要系统的配置项,在本过程域所描述的完全的配置管理之下。& n6 x% M# I4 }% u; J
3 K; A/ g, y  b  e3 r+ u
稳定的系统,包含已分发使用的各种基线的保存档。* J, z; H! k6 K6 y0 v
稳定的系统,在本过程域所描述的完全的配置管理之下。$ X# k3 a0 |( I  T3 W. a+ n( c# ^

3 R/ ?0 A* b  R; T6 l1 T2 E/ Z! m: u1 z$ h( ^
==个人理解==
( R$ X5 i% j3 h' j$ n5 l0 k: r( V) w
首先,三库仅仅是举例,在实践中,并不是一定要弄出三个库来。1 ]1 ~& ^$ U# A) x
其次,三库是逻辑上的概念,在实践中,并不是要对应到物理上的三个库。
7 f3 H: N. R4 j& \* T) ^, ?  _2 u1 K  K根据定义,开发库可以大致映射为开发工程师的个人工作空间,在开发工程师本机上,个人目录下。当然,对于稍大的任务,也可以映射为存储库里的一个任务分支。  o. z) Z- F7 r
而受控库,则是开发工程师相互协作、交流最新工作成果的地方。大致上,可以映射为版本控制工具(svn/cvs/cc……)的repository(存储库)。这里,可能有不同的分支/目录做不同的用途,可能会打标签、基线。
' \; I  k8 }$ a* }6 b* C" {4 X静态库,又称基线库,指的是那些重要的基线,这些基线标志着项目的重要里程碑,或者这些基线被Release(发布)给了“外界”。在比较简单的版本控制工具里,一般可以用特定标签命名规范来把它们从其他标签、基线中区别出来;在SVN中,可以设置一个特别的Tag目录。而在比较复杂的版本控制工具里,也可以用基线/标签的某种属性(质量级别)来表达。例如,当某条基线通过了系统测试后,就把它的质量级别promote(提升)到“通过系统测试”。
: O, W% a) i! K2 g. H) N对于静态库,再补充一点:对于这些基线,我们通常不仅要记录源代码,最好也保存一下编译结果/安装包。这样将来用起来会比较方便。编译结果/安装包一般就不要放到版本控制工具里去了,除非你受了商业宣传的蛊惑…… 在合适的机器上建个共享目录,设置合适的权限,来存储编译结果/安装包,一般就可以了。
0 q1 H4 b4 [5 ]+ v" A6 ]5 D
9 n& H) q& T! o" i+ z" T( d6 D2 D, r2 x6 I0 K3 |/ U
个人意见。大家拍砖吧^_^
已有 1 人评分威望 金钱 收起 理由
rocky_rup + 5 + 5 精彩的解释

总评分: 威望 + 5  金钱 + 5   查看全部评分

欢迎访问俺家http://www.dongyue.name

15

主题

0

好友

375

积分

小学二年级

Rank: 2Rank: 2

荣誉版主 教父

发表于 2007-3-1 14:51:39 |显示全部楼层
楼主写得很详细,比较赞同这种想法!
  A3 U, j: \1 F2 n0 t* n4 U! t
, O. j6 P- Z( P尤其是"其次,三库是逻辑上的概念,在实践中,并不是要对应到物理上的三个库。", ?; s3 f  f  j" u- s/ Z

# D6 b7 n9 d0 ]. h* M很多人可能都存在误解,觉得一定是要有严格意义的三个库.
回复

使用道具 举报

8

主题

9

好友

2674

积分

小学六年级

Rank: 6Rank: 6

发表于 2007-3-1 15:01:29 |显示全部楼层
如果在物理上将这三个库分开,管理起来就过于繁琐了
ed
回复

使用道具 举报

0

主题

0

好友

9

积分

幼稚园

发表于 2007-3-1 15:10:32 |显示全部楼层
现在很多公司在CMMI的考虑上面可能是为了过级,书上说什么内容就在库里面给出什么内容。9 L' T8 n: `* ]( }
理解其中的意思,选择正确的工具进行受控的管理
回复

使用道具 举报

19

主题

14

好友

4584

积分

版主

Rank: 15Rank: 15Rank: 15

百元爱心捐助

发表于 2007-3-1 15:53:51 |显示全部楼层
谢谢大家!谢谢!其实三库的概念是我自己不太吃得准的概念,写出来特别想知道大家的意见…… 看到大家亦有类似的见解,很高兴啊……
欢迎访问俺家http://www.dongyue.name
回复

使用道具 举报

38

主题

0

好友

764

积分

小学三年级

Rank: 3

发表于 2007-3-1 17:32:28 |显示全部楼层
逻辑上独立,物理上一起
回复

使用道具 举报

32

主题

1

好友

525

积分

小学三年级

Rank: 3

百元爱心捐助

发表于 2007-3-1 18:47:52 |显示全部楼层
三库也好,一个库也好,都是为了更好的保护软件资产.那么建几个库,要根据实际的要求.
0 A. D' k* F" }$ y比如使用CC工具,完全可以建立两个库,开发库和产品库,受控库可以是包含的基线的内容.
共同创建和谐论坛
婚纱小店http://shop35835245.taobao.com/
回复

使用道具 举报

21

主题

0

好友

414

积分

小学二年级

Rank: 2Rank: 2

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

愚见

个人也认为所谓的三库应该指项目过程的三个状态,就像上面所的应该只是逻辑上的关系。' U: m9 B1 x3 x( y

' X( q% p. ~; ?4 {* P动态库应该强调项目组成员日常的工作成果,比如日常开发的代码,为成形的文档,项目管理类的文档,配置库的使用应该也包括对这些日常工作成果的管理,当然这种管理应该是最低层次的管理,主要目的是为了保护他们的工作成果,当然还有也为度量之用。
' Y2 g9 G9 H' ~6 l% e
2 A$ u+ P. S5 s- B$ a受控库应该说的是通过评审的文档,测试的程序的控制库。这个应该是配置管理的重点,包括版本,标志,审计,状态统计的重点。
6 Q* {. P+ ^* V1 G) i
8 c2 p" `. n1 }5 G' D' [; e9 V3 g静态库应该主要指阶段性的成果,基线,里程碑成果等。
回复

使用道具 举报

8

主题

9

好友

2674

积分

小学六年级

Rank: 6Rank: 6

发表于 2007-3-2 10:19:03 |显示全部楼层
原帖由 longtcg 于 2007-3-1 18:47 发表) _) D7 D1 \$ s* ~' n
三库也好,一个库也好,都是为了更好的保护软件资产.那么建几个库,要根据实际的要求.. n& U5 U3 `' t" `8 L' N) z
比如使用CC工具,完全可以建立两个库,开发库和产品库,受控库可以是包含的基线的内容.
6 b1 J& q' s: B: N
CC中的View就相当于这个所谓的“开发库”7 M% g3 ^9 L; B8 @
" v+ s3 d( u/ ?3 W; W; P
大部分CM工具都会在一定程度上支持“工作空间管理”
ed
回复

使用道具 举报

15

主题

0

好友

375

积分

小学二年级

Rank: 2Rank: 2

荣誉版主 教父

发表于 2007-3-2 17:40:08 |显示全部楼层
嗯,一般配置管理工具都会支持配置库的建立。
2 W. {4 _1 P. M+ t* H. y 5 U1 g. ?" q4 l5 F# U7 n9 b0 d
但如何建立和管理还是需要结合公司的实际情况。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入SCMLife


关闭

SCMLife推荐上一条 /4 下一条

手机版|Archiver|SCMLife.com

GMT+8, 2012-5-19 20:09 , Processed in 0.041563 second(s), 9 queries , Gzip On, Memcache On.

Powered by JoyShare Licensed

回顶部