现
代
计
算
机
,、
总
第
一
_-
0
=
一
期
|T论坛
踊 I自 " 订 ⋯ 1 I 蜘 I/'.~IR!/II" n
生 灶 答 :T-甲 r一'h 厶厶 田
唐 羽
●
(广东工业大学计算机学院,广州 510090)
摘 要 :本文讲述缺陷造成的软件质量问题 ,讨论如何分析缺陷数据来提 高软件产品的质量,介绍两种分析
历史缺陷数据来预测和控制软件项目缺陷的数学方法,并在软件项目的实施过程中检验其效果。
关键词 :软件质量;缺陷管理 ;控制图法 ;矩阵数据分析法
引 言
软件质量与传统意义上的质量概念并无本质
差别,只是针对软件的某些特性进行了调整。从狭
义上讲,质量可被定义为“无缺陷”。通过长期的实
践发现 ,仅仅依靠软件工具环境、模型及方法学来
提高效率和质量,并未达到预期的目标。如果能够
同时对软件开发过程的质量加以控制,则可以大幅
度地提高软件质量。只有从一开始就在开发过程
中严格贯彻质量管理 ,软件产品的质量才有保证,
否则,开发工作一旦进行到后期 ,无论怎样通过测
试和补漏洞,都会无济于事。近年来国际上十分重
视的“软件过程管理”思想,就是借鉴了在工业领域
成功实施全面质量管理的经验而提出的质量管理
思想,将工业领域质量管理的各种分析和控制方法
应用到软件项目管理中去,对项目的开发过程实行
全面质量保证工作。
1 软件缺陷的定义
软件质量体现在许多方面,但首先要面对的而
且必须解决的方面是软件缺陷。缺陷既指程序中
存在的错误,例如语法错误 、拼写错误或者是一个正
确的程序语句,缺陷也指可能出现在设计中,甚至在
需求、规格说明或其他的文档中的种种错误阅。缺陷
是任何影响到程序完整而有效地满足用户要求的
东西,是引起软件问题的主要原因。美国质量保证
MODERN COMPUTER 2005
. 1
研究所的研究结果表明:越早发现软件中存在的问
题,开发费用就越低 ;在编码后修改软件缺陷的成
本是编码前的 10倍 ,在产品交付后修改软件缺陷
的成本是交付前的 10倍;软件质量越高,软件发布
后的维护费用越低。
2 两种软件缺陷预测方法
2.1控制图法
控制图是一种可在现场直接研究质量数据随
时问变化的统计规律的动态方法,起到直接控制开
发过程、稳定产品质量达到以预防为主的目的。
(1)控制图的 3o.原理
在生产过程中,仅有偶然性原因存在时,产品
质量特性 X形成某种确定的典型分布,例如正态分
布。当出现系统性原因时,X就偏离原来的典型分
布,我们可以用统计学中假设检验的方法来及时地
发现这种分布的偏离,从而据以判断系统性原因是
否存在。当不存在系统性原因时,X—N ( ,cr2),则
P( 一3o.(x(Ix+3o.)=O.9973,表明X落在两条控制线
外的概率之和只有 0.27%。如果处于统计控制状
态,可以认为 X一定在分布范围 Ix~3o.之 中,如果
出现在分布范围 Ix+3o.的外面,则认为处于非控制
状态。控制图把 tx一3o"定为下控制界限(Low Con.
trol Limit,LCL), +3盯定 为 上 控 制 界 限 (Upper
Control Limit,UCL), 定为中心线 (Control Limit,
维普资讯
CL),这样得到的控制图称为 3 原理控制图闭。在
对软件缺陷进行管理时,中心线 CL描述了项目的
缺陷密度的预期值 ,而 UCL和 LCL描述了项 目
的缺陷密度的合理变化范围。
(2)控制图的作用
控制图对开发过程 中影响产品质量的各种因
素进行控制,通过控制图来判断过程是否异常,就
大概知道正在开发的程序的质量情况,这样就能决
定是否需要增加一些缺陷排除步骤 ,使过程达到统
计控制状态。做到预防为主,把影响产品质量的诸
因素消灭在萌芽状态,以保证质量。
(3)控制图在软件项目开发过程中的应用
下面以曾实施的软件项目A和项 目B为例,来
详细说明控制图法的计算分析过程,并验证其效果。
软件项目生命周期一般可分为需求阶段(Re—
quirement)、构架阶段(Architecture)、设计阶段(De—
sign)、编码阶段(Code)、测试阶段(Test)、集成阶段
(Integration)等六个阶段,各个阶段产生的缺陷可分
别用 R、A、D、C、T、I来对缺陷进行分类和标记。在
进行缺陷管理时,首先将项 目A各个阶段出现的
缺陷数及类型进行统计,计算各阶段的缺陷密度
(通常以每千行代码的缺陷数来测量,其测量单位
是 Defects/KLOC),统计数据及计算结果见表 l。
然后根据控制图 3tr原理 ,结合项 目的实际情况分
别确定 、UCL和 LCL,将各阶段的缺陷密度值依
次描在图上,这样就得到了项 目A的缺陷密度控
制图,如图 l左半部分所示,我们可从其动态分布
情况来分析软件质量及其趋势。
表 1
项目 ^
缺陷密度 缺 类型 缺陷数 代码行数
Defer/KLnc
R 82 ¨2 58
^ 67 l鹋 10
D 36 l05 35
C 120 202 60
T 72 151 l7
l 53 l21 13
表 2
项目B
缺陷密度 缺陷类型 缺 数 代码行数
n l/KInr
R 63 207 30
^ 42 2l0 20
D 70 220 32
C 58 l94 30
I T 35 l75 20
I I 28 91 30
从图 1左半部分 中我们可以看到,在项 目A
开始时 ,项目可以根据过程能力基线并结合本项 目
的实际情况来设立缺陷密度的预期值 ,在项目的
生命周期里 ,当项 目的实际缺陷密度在 UCL和
|T论坛
LCL之间波动时,且排列是随机的,则表明仅有偶
然性原因导致随机误差的存在 ,可以理解为项 目的
开发过程处于受控状态。而当项 目的实际缺陷密
度超越了 UCL或 LCL时,或在两控制线内排列是
非随机的,可认为某异常的原因导致 了这一现象,
必须进行分析并实施某种行动来防止该异常的原
因再次发生,从而确保开发过程始终处于受控状
态。缺陷预防的着眼点在于缺陷的共性原因,通过
找寻、分析和处理缺陷的共性原因,实现缺陷预防。
80
70
6o
50
40
30
20
lO
0
曼 矗 D C T I 燕 l矗 D e T I
— .__软弱密度—— ⋯⋯-UcL⋯ 一LcL
图 1缺 陷密度控 制 图
按照连续改进思想,需要持续不断地进行软件
过程改进。软件过程改进是在一系列微小、不断发
展中实现的,连续改进循环意味着需要长期连续地
进行这个循环活动。高成熟度的软件组织 ,就会充
分利用缺陷提供的信息,建立组织过程能力基线 ,
实现量化过程管理 ,并以此为基础 ,通过缺陷预防
实现过程的持续性优化【3]。所以在进行项 目B的开
发时,根据连续改进思想,缺陷控制不再只是依靠
经验来估计了,可在项目 A的基础上 ,根据项目A
的控制图的分布特点,来预测确定项 目B控制图
的预期值 和控制范围 UCL、LCL,实现开发过程
进一步的优化改进。由项 目B的缺陷数据 (见表
2),项 目 B的缺陷密度过程行为图可表现为图 l
中右半部分的形式。比较项 目A和项 目B,我们可
以发现当实施了持续性优化后 ,UCL、LCL控制范
围收窄,中心线 CL降低,缺陷率明显下降,表明开
发过程更加稳定,软件质量提高了。就缺陷管理而
言 ,随着开发项 目的不断增加 ,软件组织在不断量
化理解其过程能力的基础上,可以持续地改进组织
级的开发过程及缺陷发现过程,采取引入新方法、
新工具 ,加强经验交流 ,从而实现缺陷预防。
MODERN COMPUTER 2005.1
胁田淫
珂 :t¨ 曾异 蜘仉 ^:Ⅱ心 廿昂 一一 nV = 一稍州 v
维普资讯
现
代
计
算
机
^
总
第
一
- ●
0
:
一
期
lT论坛
2.2 矩阵数据分析法
(1)矩阵数据分析法的含义
矩阵数据分析法把各因素之间的关系用一定
量来表达 ,即在其交点上可以标出数值资料 ,把多
种质量因素或多个变量之间的对应关系,定量地加
以表达,从而对大量数据进行预测及计算整理的分
析方法。这种方法所用的主要计算方法叫“主成分
分析法”,它是多变量分析的一种方法[41。
(2)矩阵数据分析法在软件项目中的应用
软件缺陷的产生是由多方面的因素造成的,缺
陷数据反映了开发过程中多个因素相互作用的对
应关系。在实施了多个软件项 目的开发以后,已经
积累了一定数量的历史缺陷数据 ,我们如何利用这
些数据找到开发过程中容易产生质量问题的环节
和因素呢?如果只是粗略地看历史统计数据,是很
难看出各项 目之间及项 目的生命周期各阶段的缺
陷率的差异的。我们可以用这些历史数据来设计
一 个矩阵,用矩阵数据分析法就能求出多个项 目的
各个阶段产生缺陷率的高低,找到产生缺陷的关键
因素 ,这样可以帮助了解引入的缺陷,从而对新开
发的项 目会引入的缺陷数做出一个相当合理的预
测,达到控制缺陷率,提高软件质量的目的。随着实
施的软件项目数量的增加,收集到的缺陷数据越来
越多,生成的矩阵越大,对未来缺陷率预测和控制的
准确性也就越高,软件整体质量呈螺旋式稳步上升。
下面通过一个例子来说 明矩阵数据分析法在
软件缺陷管理中的具体应用。为了确定软件缺陷
主要出现在项目生命周期六个阶段中的哪几个阶
段 ,我们对 n个开发项 目进行统计,每个项 目计算
六个阶段的缺陷密度 ,为了验证结果重复性,又将
这 n个项 目分为 I、Ⅱ两组 ,每组 n/2个项 目,然
后对数据求均值 、标准差 、相关系数 、特征值、特征
向量,得 出三个主成分 ,也就确定 了项 目生命周期
中出现大部分缺陷的几个阶段,为改进项目薄弱环
节提供依据。详细步骤如下:
④将 以往软件项 目积累的历史缺陷数据进行
分类、统计列表。各项 目在生命周期各阶段的历史
缺陷率数据见表 3。
②根据表 3数据计算均值、标准差和相关系
数 ,计算结果见表 4。
@ MODER N COMPUTER 2005.1
表 3
、\ 项目组 I Ⅱ
缺陷密 项 目 1 项 目2 ⋯ 项 目n/2 项 目n/2·1 一 项目 n
需求阶段缺陷密度 58 30 34
构桨阶段缺陷密度 40 20 26
设计阶段缺陷密度 35 32 33
编码阶段缺陷密度 60 30 30
测试阶段缺陷密度 47 20 25
集成阶段缺陷密度 43 30 37
表 4
需求阶段 构架阶段 设计阶段 编码阶段 测试阶段 集成阶段 项同组
缺 密度 缺陷密度 缺陷密度 缺陷密度 缺 密度 缺陷密度
项目j j O 2O8 0458 0 6l 7 079j 863
项 目2 0 775 l 0 774 0 628 0 402 0.172
项 目 3 0 506 0 659 l 0 842 0 674 0 370
项目4 0 370 0 674 0 842 l 0 659 0 506
l
项日n 0 863 0 791 0 6l7 0 458 0 208 l
③根据相关系数矩阵(表4,j. r旺值、特征向
量和贡献率。由于计算量很大,方程的计算用计算
机完成。计算结果见表 5。
表 5
第一土成 分 第=主成分 第二主成分 第六主成 分
项 目组 特在 向量 特征向量 特在向量 特征向量
(需求阶巨) (构架阶段) (设计阶巨) (羹成阶县)
项 目 l 0 286 0 446 0I94 0l40
Il
项 目a/'2 0 323 0j66 0442 0 232
项 目n/'2*l 0 299 0 359 0 375 0.124
Ⅱ
项 目 n 0 300 0 408 0 084 0O42
特征值 6 83 l 76 0 075 0.008
贡献率% 58 3% l9 6% 12 5% 3
累计贡献率% 58_3% 77 9% 90 4% JO0%
,④分析计算结果。贡献率代表主成分的影响
程度,数值越大代表性越大 ,特征向量表示项 目与
该主成分的关系。从表 5可看到,第一、二 、三主成
分的贡献率达 90.4%,已代表所有变量的绝大部
分,也就是说在项 目开发过程中,软件缺陷主要出
现在项 目生命周期的需求、构架和设计阶段。这样
由上述的主成分分析 ,找到了容易出现软件缺陷问
题的阶段 ,在以后的改进过程中把注意力集中到特
征值大的方面来,就可以有效地控制 、预防软件缺
陷问题。
维普资讯
结 语
控制图法是一种二维的分析方法,它适用于实
时监控单个项目开发过程中缺陷的趋势走向,发现
问题及时排除,有效控制缺陷出现的区间范围。在
多个项 目连续实施可 以预测以后项 目的缺陷率平
均值及逐步缩小控制区域,达到控制和不断提高软
件整体质量的目的;矩阵数据分析法则是一种多维
的分析方法,它适用于分析多个软件项 目之间的多
因素之间的关系 ,找出多个项 目的共同规律 ,确定
项 目生命周期容易出现大部分软件缺陷的阶段,使
得在以后的开发过程中有目标地控制薄弱环节,降
低缺陷率。
缺陷的预测、控制和排除涉及到软件费用 、时
间进度和软件质量等三方面的因素,可以说缺陷管
.1T论坛
理是一种经济学问题『1]。从在多个软件项 目使用这
两种方法的实际效果来看,在实施了缺陷控制和预
测之后 ,解决了知道在那里改进和如何改进软件质
量的问题,在降低开发费用、控制时间进度、保障软
件质量方面取得了 月显效果。
参考文献
1 WattsS.Humphrey.个体软件过程.吴超英 ,车向东译.北
京:人民邮电出版社 ,2o01
[2]伍爱.质量管理学.广州:暨南大学出版社,1996
[3]刘寅.软件缺陷管理.www.5lcmm.com/pubcmm/noO37.
htm .2o03
4 杨维权 、吴雪梅.现代质量管理统计方法.广州:中山大
学出版社 .1990
(收稿 日期 :2004-09-23)
The Application to the Method of
Control Chart and the Analysis Method of
Matrix on Software Defects Management
TANGYu
(Guangdong University ofTechnology,Guangzhou 510090 China)
Abstract:The article presents the problem of software quality caused by defects
.discusses how to analyze and use defects
data to improve the software product quality,and the introduces two methods of predicting software projects defects
through the analysis of the historical defects data
, tests of the effect in practical software pr~ect.
Key words:Software Quality;Defects Manage;The Method of Control Chart;The Analytical Method of Matrix
MODERN COMPUTER 2oo5.1@
现
代
计
算
机
^
总
第
二
0
:
一
期
v
维普资讯