金钱- 4086
海拔- 650 米
- 积分
- 4584
- 精华
- 5
- 帖子
- 111
- UID
- 4019
  
|
记得第一次在国内的坛子里看到三库的讨论的时候,登时就晕了…… - _, 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
个人意见。大家拍砖吧^_^ |
-
总评分: 威望 + 5
金钱 + 5
查看全部评分
|