马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?免费注册用户名
×
GB/T19001-2008 IDT ISO9001-2008质量管理体系要求标准的7.6中有这样一段要求: 2 [7 Z/ E U* q! v3 Q
* l# N+ L) w: J0 k$ u* B2 W“当计算机软件用于规定要求的监视和测量时,应确认其满足预期用途的能力。确认应在初次使用前进行,并在必要时予以重新确认。 注:确认计算机软件满足预期用途能力的典型方法包括验证和保持其适用性的配置管理(技术状态管理)。” 这一段要求是一个审核难点。 其一,需识别和确定哪些计算机软件是用于产品规定要求的监视和测量的计算机软件? 其二,原来GB/T19001-2000标准中没有“注”时,对如何确认“用于规定要求的监视和测量的计算机软件满足预期用途的能力”不好理解和操作。人者见仁、智者见智。有: A)说:是按照所用计算机软件的使用说明书安装后对产品作模拟测试,如能满足说明书给定的功能则可以确认它的能力; B)说:是用该软件去测量预期测量的产品,如产品交付被客户放行,则能满足要求。 总没有一个可以被大众接受的确认方法。 GB/T19001-2008 d9 G5 `, e7 o+ S) n
idt* i t! ?- J$ [
ISO9001-2008 新标准在“注”中给出了两个确认方法: 1)是:通过验证计算机软件满足预期用途能力来确认。也就是我们已经认识并在用的A方法; 2)是:保持其适用性的“配置管理(技术状态管理)”。 但什么是计算机软件的“配置”?如何“管理”?“技术状态和技术状态管理”又指什么?很多非计算机专业的审核员就不熟悉了。 为了帮助这些同仁理解标准的这一要求,笔者借公司这一份不定期刊物,抛砖引玉,作些说明。 一、计算机软件的配置管理主要依据: 1)GB/T 12505-90《计算机软件配置管理计划规范》 (Specification for computer software configuration management plan )实施的。也可作为非计算机软件企业对计算机配置管理的依据。 2)GBT 19003-2008 /ISO/IEC90003:2004《软件工程 g# [! @1 q3 i" L6 b
GB∕T19001-2000应用于计算机软件的指南》.
2 ~5 @" c5 J( v: A, l 二、计算机配置管理的内容:
计算机软件的配置是英文“software configuration”的意译。 技术状态管理就是对计算机软件的配置管理(configuration Management)。 即是:一种应用技术和行政的指导和监督的规则(discipline).用以识别某一技术状态项目(configuration2 F; P: ]8 X0 w+ u
item)的功能特性和物理特性并形成文件,控制对这些特性的更改,记录并报告更改,过程和实现情况,以及验证与规定的要求的符合程度。 计算机软件的配置管理包括: 版本管理、配置支持、变化管理、构造管理、过程支持、团队支持、状态报告、审计控制。逐个表述如下:
# d* {) b: n4 h4 ?( u0 i& g# O
7 M2 U0 c/ @9 y' j, Y9 w3 d7 [1、版本管理% O& F- i- v4 M; [
; ?3 w9 }& c- m( j. M5 G& c
, C3 M2 v- y: c8 p$ u/ L" I
3 |% f. @ s# [1.1 软件配置项(software configuration item):0 z. s( u9 l) Z. A2 ?, z
7 x/ g% G" z5 g8 ?
$ H7 g; b: z; c! W% }
7 {; h% M; g. f4 W( ?+ N
/ n" e( `5 g" M( ~) T* v含义:在“软件生存周期”(包括:产品概念、定义、开发、生产、运行、维护以及(如果需要)处置中的过程、活动及任务的产品生命周期)内所产生的各种应纳入管理范围的系统构成成分。
4 H; y6 [/ l+ K1 i, D5 A
5 x1 |3 t" r$ T# R: D+ x5 W
! U( H0 P7 U8 z$ Q& i: [, e. K0 a! \3 d
7 l1 o0 P5 u/ s- ?& ^/ t$ U8 M% n
包括各种管理文档和技术文档,源程序与目标代码,以及运行所需的各种数据等(配置管理的资源对象)。% [0 ], L6 R1 \
6 G: Z r1 M& b0 v
) K2 e: Y: j4 ^* @
6 K* g2 F) B7 R/ L, _
9 a+ c% I% M+ c7 N9 Y5 F形态:在通常的软件配置管理系统中,最基本的软件配置项是以磁盘文件的形式进行存放和管理的。
: ~9 A& @. ]0 U3 Z5 R% b9 a; e1 L+ s3 F- S% K- f6 x
. x) t8 M1 ]* ?; [: e
' L; o/ s8 {( q/ o7 }" t1.2 版本管理是配置管理的基础:
2 t9 K- ]$ T3 k) W4 [) g3 L
8 R0 I) ~. m9 D
( U8 I5 S- ?5 s# G4 `% l/ h' m; z
$ X- P" K# t: X3 Z' n ?
应当记录每个软件配置项的所有历史记录,并记录该软件配置项由何人创建,何人在何时因何原因进行了修改等信息,以及对这些软件配置项版本的进行的检索和信息查询等活动。) t" [8 r& W/ ~' k. @) W
# y- n( S- E3 T; ]4 I
$ _2 f) V. P) ~2 j6 E* n4 q- S
4 \ p, w' J6 I, Z1.3 版本树:$ m+ w3 b- d; R- m7 U" v0 M7 e' U( ~
. |: T8 ~( |( l8 `! y8 D5 R2 \2 |' d& M$ C2 y7 y
, n; |* o9 E9 _' h- j* ]: G可以对软件系统的不同演化方向进行管理。- l9 W- Z% {; h8 p2 H! o+ E
* F$ S( X8 e$ R4 U! S
$ f( b f3 m3 ^, i# b" O$ U
% N0 F8 o3 n* S! R1.4 软件配置项的版本管理——版本数) ^* s! A3 k: T$ i' [7 A1 ~& L
/ H8 J7 Q8 Y4 Z+ Q& J, p/ c! d9 ?- B9 ]% a% V3 _; a+ W1 z' F$ @5 ?
}5 ^( A' f' W& n记录一棵带有时间标记的配置项版本演化的树结构信息。9 u6 H! Q% W" T
& t& _+ Z' Z( I: @2 G
2、配置支持6 n1 H! o( Y3 ?0 {, ]8 z! x
* h, M, u) c* C& E% k# E( v# c
9 _& d. @$ @$ H' c9 p% F" t# T) D2 j: t$ B: ~5 p' X8 R# N( X
2.1 软件配置(software configuration):
7 c# D8 t; h8 s4 c+ m- p, ]! i1 l, {0 {' j0 \$ w" G# j
/ q% @ ~$ Y5 L4 t- T3 t" E- Y7 F! ~ V2 D$ u: L0 I }
所有软件配置项在不同时期的组合、结构与关系定义。
0 r- ?% @: G: {
/ o4 D- Q8 e0 B: f( Z2 o6 M( e9 q" B3 I6 [9 E
2 O/ Z! d( E+ H+ g" M' {5 n
2.2 系统建模
, x. S: ~* E$ n" P+ T) q
. f( W+ ?9 j6 x! c$ p7 X/ }0 n2 U# r9 S
! }0 F/ F' x$ b& l {! y通过定义配置来表示整个系统或其中的子系统。- R- g% k: R' F R* n& f2 a
5 Q& \/ q4 V6 t: r d! w H
) O% I6 `9 l# h& Y& l* v8 t |- b
\$ p9 p4 C7 ~: `0 e6 s2.3 依赖性追踪
7 r ]7 |4 P8 a/ Q9 \4 e* T v3 b6 y$ h4 d2 S5 ?) m
9 y0 D/ D) n8 Q. B& E8 R, O2 X/ K. |4 {0 L n
例如:查找与某个源文件版本对应的设计文档的版本。1 D+ j ~7 b# O5 p V8 g
1 C% R# k- h, w0 }) r* k/ `0 P) ?+ V
, ]' q P: |. t+ h9 W, @( N4 z: h
0 l( U8 e: u* X& B2.4 影响分析
8 p0 e, L7 U9 p* V, b9 {9 N( e, `$ X4 w6 S" A
1 B9 z5 \, ^% k7 n8 b2 |
5 Z1 A+ ]! j2 ~2 k8 v& |
$ x3 f' y3 o) [4 Z( h/ l分析对系统一个部分的修改可能影响哪些其它部分。8 h0 R! o# A6 Y' i% W+ ]
9 c L3 W$ J/ y- N
3、变化管理
# M, @0 G! Z4 \0 U, ]: o+ r0 D1 |6 `, t V% F
0 } o1 a& [1 Q0 y
" D; ~* P! @/ G3 Q' }) i+ t4 t
3.1 变化:软件版本演化的来源与过程1 J) q3 A0 |# s! T7 h
" H: n4 `; D% I3 q/ v8 |& z H, C& s- s
7 \; G- A6 M" s
- ~5 h+ R# w/ ?9 ]! U来源:需求变化、增加功能、修改错误3 L ]7 T' u& q6 D1 h+ Y) ]8 A
……) [ t5 G; h! Q
+ W: i- ]" |, C- r& v
9 C7 T3 o# @9 U: P- y9 S. b
4 l2 `. k) I6 {! _: I* A n' o! V: ] f& x/ `. G
6 l$ ?, ?' a/ }* B5 k. I5 P
) n$ @5 n5 k1 W( ?* H
4 h1 N7 b; V. y0 W5 d! \1 z" Y
* H& M4 R r9 R F5 W% L# {生命周期:请求、审批、实施、验证、审核、结束。
0 M. a" y- s" L
, o1 @& {. ?( l. c! z: Q3 F
7 J5 w4 B5 {$ p1 b& L, ?3 p; V; F- I; K' N
3.2 变化控制 m# @$ o; U$ X* c$ F! ]# u
' G0 i2 ?+ e* m& V \ a ~8 k
$ O" B! d6 X: D- G) s. {/ f: b
- ~3 W, j3 B- t# x1 _) c2 f+ X) q: k7 O. G* F
记录和控制对软件配置项的每一次修改。+ q/ o b: M% `# @; r' a+ a! i$ |
# D, _6 l7 x$ s& b& y! _
) P b% _+ H) l8 t
8 T, D) r" O- L+ s; ^3.3 变化跟踪- W9 I0 ]! j9 i5 u2 Z' W
8 s; b1 l% m+ X2 E. Y
6 q9 P+ l' A$ y; m: \
1 h) X& R$ Y2 V7 ?, t7 _6 b z# z: U2 H& t2 S1 @ K _
一个变化生命周期进行到哪一步了?
' E! \: J& ?4 n4 \, z6 X+ |1 ]
- o) v0 G* g0 W) a/ L
% C. l3 o& `% d2 [
0 P' J8 n7 H, T6 v; c6 _8 y3 k4 q8 M* O& E/ {: g+ R
如果一个已经改掉的bug又出现了,怎样找出原因。: I4 K- o. d* r" \& e! m
! l' V A* a7 Y! {( }/ o1 l: O
9 A' R" c3 p3 X+ i' t0 {# _8 S3 l6 Z' Q
. W; v4 A2 a) p/ \3.4 变化传播
$ t, z4 x3 W$ V" n: o; M4 X
! { i' ?2 }- @$ F6 d3 h; @
( F7 g( W }. b' ~5 q7 p* B( l8 y
4 y& V& ^0 ]% O7 `2 X9 c* L8 X3 B9 r/ H
帮助将对产品一个版本的修改传播到其它版本中。
% g: y ?7 L" c6 ~( X& a; k$ r* `' e/ }" V4 {* s# X
4、构造管理(Build)
9 L q' d) W( M$ w
/ c( ]* y! ~1 d Q: O
P* R; F; l8 j# ~7 J m4 h2 G( F: {- y5 v. O' r1 C. _
4.1 系统的构造和重新构造(Build)
. Q1 I J1 Y/ F; b* r5 [" t
, y! V0 b7 A9 d* E" H! l. [, t3 o7 z! H" o H D
% s+ c/ ~3 S1 Y& R9 t' z帮助开发人员正确和快速地构造和重新构造产品的任何版本。5 h4 g4 z" w" f: P$ e
1 n6 N$ c* l' D: u- C* \# A: E! H+ p$ K. \5 ^
+ D# ]+ e1 _ n4.2 软件发布管理(Release)( I3 @% ] j5 R' o6 K' K' h- j; m' q4 e
e0 p3 W( G. d7 M: K/ D, T% z
& c" O) r6 x' R+ h: m c/ J
# c& V% R, T" J$ v. H+ `# l为不同的用户提供不同的版本,避免其中发生混乱。
+ Q1 \* s& [; d! a" r+ ?" q( y# w# K* h( R! {
8 y2 V4 V8 E* Q, U
5 {8 L: A3 N! K. `4.3 软件部署管理(Deployment)
9 z* |) j$ V. _- w7 q* C1 H- r& X1 e1 h7 O
+ G, ]5 L8 s) i0 ~, ~
+ W, S q3 Z6 L; } e
! A. N9 h% b6 [" z$ c" O6 v7 F* f帮助在分布式环境中部署整个系统。
& m' P, F0 g3 z9 R1 _7 u5 b5、过程支持
* ]+ T9 U+ H7 k
6 z1 ?# }, A" z0 @7 O& K1 L
# i A& E) I7 m2 L* d/ I- f7 b9 ?
5.1 过程控制
" |+ D1 n6 ?9 m7 c2 k+ l' h
h' Z+ U2 }, B% s& o5 j6 R" ?3 E6 n4 w0 D" |
6 Q+ d& \: q6 {! j9 G8 u# {
5.2 预定义的过程模版 和 可剪裁的过程实例* l& W. N2 Y0 l7 f$ x
, h8 g0 {) k: t2 \& B$ g1 M
0 u* r9 ?# ]. Z6 [+ V: m) E" y }* U# z! [1 R0 `& E
* P, E5 A% r; Q5 M& e8 l7 g
可定义过程,并保证过程中定义的每一步均由授权的人员按正确的顺序执行。. N. ^! a9 ~8 r, E; S4 t0 g. t( I* H
8 R( p/ D6 V1 D# m9 L8 W# ]6 H
& ?% w4 o+ `% a [
w( a( {9 N. M, I5 W5 f5.3 过程支持中的关键概念
% l( d0 {& F# p9 \8 g1 C2 a( M% Y4 t) e
& g" _ S- H/ y: h, H
4 u1 O# J7 ]) U" b2 j; K
* o/ a$ R/ ?! r0 n {3 r0 n包括:角色、工作组、任务、触发器机制等。/ ^; Y5 @1 H/ ]% v
1 k$ s0 L# b4 W' s' z# m _; i% Z6、团队支持2 m; i6 @6 D' X5 K9 G9 Y
! | j$ T) \! }# ?7 e* `: y3 f& f; a
) A! _; r4 l* g5 ~/ n, G7 w
6.1 工作区管理 I# w9 W- V7 t1 f
1 G. [. ^$ S( q5 ?& P
0 ]* t8 X6 X; k( ]3 {% w1 V! C
8 G( O1 o0 t4 a- z# h0 d- a7 h& J9 D4 d: s! t _ A
不同的开发人员拥有独立的不相互影响的工作空间。
6 k, n! d' S4 }
9 {, `) i1 F* U$ {" i' C! Q0 s" B7 ]9 {2 I
% L- i }: l( E* D6.2 并行开发
1 i0 s5 t6 U, U
- K. u) u/ [6 E+ x
& }% T+ {0 `" o' I& h
$ W7 D. B% P( T: f$ ^$ _' k. c( C1 O$ a# w( G
支持多个开发人员同时开发一个项目。4 a* l8 F+ A& H( ~$ g3 I
0 Q0 e4 S; r6 g8 F9 {! h8 K! Z6 u* Y$ E, C& l# }
6 n8 z% i3 r' q0 z9 ^6 X3 p6.3 远程开发, X! ~; P" c1 N+ l7 C" V4 ^
E% n" ?" O. {9 G" n0 p
9 m8 y0 t4 F4 ]1 S6 e" Y
) D, z1 p8 L; G+ Z, T6 {, o& E
9 i$ O ~3 g2 K/ w" e" b" U% {7 u2 K
开发人员在物理上可以分布在相距较远的位置上。
9 ]& R/ k2 ?. f/ D% G. G; q) |/ ~$ {
7、状态报告# A7 ]9 S K9 c
; ^2 t# `+ }, m: ^# X4 s- Q f* {% P7 W6 x. @7 E$ F! W1 I
- G0 w8 w0 S. [( {" w. T$ d& C3 U: d; C
依赖性报告8 I7 d7 k2 f' D0 A
, ^ v% {+ l2 H( E) a! f) Z) s8 H! {5 l/ ?5 S2 g- w
* t+ H! l! N( Y/ G# b; }/ R8 J% I! H2 A8 e( \( T0 ^
影响报告
5 I I# l9 o" d. _ ~( N4 w8 c
2 \: [+ ^/ R& Y5 D; C/ A1 D, S; y; F. s$ q2 _1 n1 |7 r4 M
# J4 o3 e" ~/ f6 F/ z3 G/ Z
1 v# ?' L P& Q; b% g0 F
构造报告) `' i% k* Q, B1 M
, k' `5 y# Z$ {- h' Y, V% x. y
: T* D( n* ~* o" b- L
; U- G+ T1 U7 `6 h4 L U! [% }5 [: g# t7 R( Y# z ?
变化状态报告 {4 h5 x* I$ U F6 U. y7 N
3 |; ]/ K. h4 V6 }2 @8 h9 }) D3 v
& Y7 G6 \3 N# i5 m8 p5 b- c* l6 b% R2 E8 o
0 C% K o' A5 B差异报告
, _+ b; ~3 v6 H* B5 {; C, |# e/ i L$ r
4 @' f) ~' s5 Y" P" F D7 V
# S1 ^3 B: r3 q
" M/ z# \) J9 O6 p5 C/ n2 K
历史报告& `: J( |* D4 K5 w3 l5 v& ?+ U \
& L X" c" @6 u4 b8 o. M
: B+ p# f' _- t1 ?# D8 m
$ c0 }9 N4 A: }& [2 Y4 w- Y! k; ?5 g/ ?8 t) {% e( Z
访问控制报告3 } D8 W2 u; ]6 }
5 o; ?) n. m1 W. G% T8 Z( b( P
3 l" y [+ `7 a- Z; v- X- ^ Z6 I! a
1 E5 }% H3 X; b2 n5 M. [$ w9 I3 P# [3 K( t
冲突检测报告% X S9 N8 U }6 z8 l: ]( |
, H0 ?$ h0 w% l" }9 [2 K
8、审计控制9 M/ b1 C3 _' J: F
* M, U. B r* U w* J
! U# Z$ d7 _: c# _+ W6 ~: L5 z. ~# T7 P
8.1 验证软件配置管理过程( ?5 F1 b" j3 U# T
2 ]9 ?2 M- X# I# l% q4 Z% I
- U# F* C* b3 A& P, H' |! D2 ~, E; f( S
8.2 验证系统管理的所有配置项的完整性
. _# X% G$ d9 q, H4 D8 u$ c8 Q
0 _0 d9 A+ \3 \- S1 ^5 o2 [5 m, ^, ~
% d/ x& [" J$ y
8.3 基本的审计控制是记录配置管理过程中执行的所有活动,并提供检索机制—日志
三、识别计算机软件和明确定期验证要求: 通常,校准技术被认为不能直接应用于软件,但是可以用来测试和确认软件的硬件和工具。因此,6 R! n* k0 J: g3 ?- Y9 P }. o6 V2 F
可以理解为GB/T19001-2008 7.6 中的a)至c)项可以适用于用来测试软件的环境。如果组织在为验证软件产品是否符合规定要求进行的测试时使用工具、设施和技术,在批准使用这些工具、设施和技术时应当考虑他们对软件产品质量的影响。此外,在使用前可以讲这些工具置于“配置管理”中。 尽管“进行调整或必要时再调整”(GB/T19001-2008 7.6 中的C)不适用于计算机软件,但仍然可能需要定期验证在测量装置中使用的软件不会因为病毒或电磁场等恶劣环境而发生变化。 测试工具、技术和数据的适用性应当在使用前得到验证,以确定是否需要对其进行改进或升级。 组织应当具有程序以确定如何对测试产品进行检查。 在产品开发、测试、维护和运行中所采用的计算机软件装置通常有: 1)用于测试产品的数据具有一些特定功能的独立的计算机软件; 2)在测量设备中的嵌入式计算机软件,用于规定产品的模拟、性能数据采集、资源利用和内容信息的测量; 3)组织自己编制的用于机电一体化产品性能、功能测试的计算机软件; 4)在信息系统或集成网络系统中用于将软件与硬件进行连接,并测试其性能功能的计算机软件; 5)用于分析软件产品缺陷和计算机软件性能、网络流量、在线监控、管理的计算机软件。 组织通常可以建立《配置管理计划》来对这些监视测量用计算机软件的控制。《配置管理计划》应包括: 1)技术状态管理活动的标识和范围; 2)技术状态管理工具; 3)技术状态管理方法和形成文件的程序; 4)委派给他们的组织职责; 5)每一个技术状态项目需要的控制水平; 6)将各个项目置于技术状态管理下的起始点。 |