基于关键性和安全性的软件质量保证
摘要:本文首先对软件质量特征中的关键性和安全性进行了等级划分,然后从软件质量保证的角度,分析了如何基于关键性和安全性进行软件质量保证活动,对提高软件质量具有一定的促进作用。
'Ns?:I3n s']q%Y0/wx1u#R"l d"v0 关键词:关键性、安全性、质量保证
g1z)Ft6YU\s051Testing软件测试网9T&\*F^.N软件质量,是贯穿软件生存期的一个极为重要的问题。是软件开发过程中所使用的各种开发技术和验证方法的最终体现。因此,在软件开发过程中要特别重视质量的保证,以生成高质量的软件产品。
]fLbtr051Testing软件测试网"Jj7l)fs9z}在各种有关软件质量的定义中,例如,ANSI/IEEE Std 729-1983定义软件质量为:与软件产品满足规定的和隐含的需求的能力有关的特征或特征的全体;.J.Fisher定义软件质量为:所有描述计算机软件优秀程度的特性的组合。从这些定义中,我们可以得到一个重要的结论:软件质量的高低是通过一些质量特性来体现的。为此,本文主要结合关键性和安全性这两个质量特性来谈谈如何提高软件质量。51Testing软件测试网/_u;jt6MY F:ke
51Testing软件测试网H5I8T9z#p\#X up9r f1. 软件的关键性等级51Testing软件测试网5`Bx [ @$Y
51Testing软件测试网/r;c*UuEY"Z~#G由于软件功能和应用场合的不同,软件或软件部件在出现故障时所带来的后果是不一样的。有的是灾难性的,它会造成人员的伤亡和巨大的经济损失;而有的只是一种错误而已,人们很容易将其纠正,而软件当前要做的工作可以留待下一阶段再做,其损失也只是时间和人力问题。根据这些原因我们可以把软件划分为下面的关键性等级:51Testing软件测试网m"\&O5?erU
51Testing软件测试网6Q@9i)L hj(1). A级软件51Testing软件测试网S}_ ~d'@0_&Id7L
51Testing软件测试网~ J;XQq%M5}这类软件可以是一个软件项目,也可以是项目中的一个或某几个部件。对这类软件有非常高的运行可靠性要求,一般情况下要求开发和运行都需要有相应的冗余和备份措施,以保证开发过程中的高质量控制要求和运行过程中的高可靠性要求达到满足。通常采取的办法是两组人员对同一个A级软件同时进行开发,最后用质量高的一个或两个软件同时运行而互为备份;对于运行中的冗余,一般是在两个不同的环境中运行两个完全相同的软件或在同一个环境中运行两个不同人员开发的具有相同功能的软件。51Testing软件测试网U5}yL C_9JlY9L\
:s"t9L UO],Oz%Xs0 (2). B级软件
'Ji U"[rpJ051Testing软件测试网!mB!`fU l同A级软件一样,这类软件也可以是一个软件项目或者是项目中的一个或某几个部件。对这类软件有较高的运行可靠性要求,一般情况下可采用运行冗余,即在两个配置相同的环境中运行两个完全相同的软件;在开发中要有严格的质量管理和质量控制措施,确保软件的质量和软件产品的运行可靠性。51Testing软件测试网o#NUZ_0e c
/c:\]M4xCxd9d1R0 (3). C级软件
iwP%N7H7f7E7N4y0_8~r"xBJ0 同A级软件一样,这类软件也可以是一个软件项目或者是项目中的一个或某几个部件。但对这类软件的运行可靠性要求不是特别的高,在开发中有严格的质量管理和质量控制措施以保证软件的质量达到需求中的质量要求即可。
0?VhPvf$z\0*N|~*y:E+C0 (4). D级软件51Testing软件测试网I:s.T V,\3X
51Testing软件测试网sE_$C AJ同其他种类的软件一样,这类软件也可以是一个软件项目或者是项目中的一个或某几个部件。但对这类软件的运行可靠性只是做一般的要求,在开发中有必要的质量管理和质量控制措施从而能保证软件的质量达到规定要求即可。
EF.MuJiV{7F051Testing软件测试网WP+P.st~T2. 软件的安全性等级51Testing软件测试网rRFo| D+]'r(W5[V
SV1B^|K0 由于软件应用场合和应用领域的不同,软件产品在预防干扰、预防非法者侵入和信息安全保密的要求是不一样的。有的软件系统一旦有非法者进入并做了一些非法操作后,其结果可能是灾难性的,它会造成人员的伤亡和巨大的经济损失;而有的只是一种简单的破坏而已,花一定的时间进行修复即可。当然,不管是什么系统,其安全性越高越好,但高的安全性是需要用高的代价来换取的,所以安全性要求是要根据系统的使用场合来定的。对于不同安全性要求的软件,其管理、规划和质量控制的方法和要求是不一样的。
L ~8g6PfDMv6\051Testing软件测试网*~?:h k)M!sZ(s如何来定义一个软件的安全性,通常采用的办法是按等级来定。关于软件系统的安全性划分,应该说到目前为止还没有一种完全统一的标准,本文参照美国国防部 1985年发表的一本名为《可信计算机系统评估准则》的桔皮书的划分等级,该书把计算机系统的安全需求划分成从低到高的七个等级,即D、C1、C2、 B1、B2、B3、A1。这七个等级又可分为四大类:
VJ3~u(evN0C2_:gF*j0 (1)D类,无安全性要求。
IQ.V}'R\#P0+J-l6]$z3Z}0 (2)C1/C2/B1类,一般商用操作系统所具有的安全特性。51Testing软件测试网0JP!V%g D i
51Testing软件测试网E Y-f(~uu8nU o:Y E(3)B2类,要求建立系统的安全性模型、设置安全内核,并在此基础上对系统安全性给出精确的证明。51Testing软件测试网#tc,V'v L/JQ*K
.X^A0\eD0 (4)B3/A1类,要求在可信计算机基础上的形式化设计,要求对系统建立形式化模型,并对模型进行形式化描述,而且要对系统描述与实际系统的代码实现之间的一致性给出更为精确的测试和论证。
9qJ,kfzYRzD0#oz3F g3hx,}0V"x0 这七个等级的安全特性及其安全要求分述如下。
-lz9^:g9} ^C)|051Testing软件测试网V(B2fNCM3FO d t(1).D级