贝叶斯缺陷分析模型在软件需求分析中的应用
- 格式:pdf
- 大小:325.78 KB
- 文档页数:5
< !曼 堇 堕旦
贝叶斯缺陷分析模型在软件需求分析中的应用
摘要:本文提出了一种以贝叶斯网络理论为基础的软件缺陷分析模型,通 过分析系统中存在缺陷对象-e._N的影响关系构建了贝叶斯网络模型,利用已有 的经验数据评估贝叶斯网络模型中各节点的缺陷概率分布,并与软件需求分析 阶段相结合,为需求分析人员提供了相关的决策支持,取得了较好的效果。 关键词:软件需求分析;贝叶斯网络;缺陷分析
随着软件产业的迅速发展,有效控制软件质量的
问题Ft益突出,软件中一个缺陷常会给各方带来巨大损
失。美国相关部门统计,每年软件缺陷对美国经济造成 近60亿美元的影响,约占美国GDP的0.6%[1】。国内应用
软件缺陷较多、质量不过关的情况更是突出。根据国家
应用软件产品质量监督检验中心(NAST)2006年全年
的软件质量检测数据统计,软件开发商认为已经可以交
付使用的软件,送交该中心做质量检测,其中,第1次
质量检测就达到质量合格标准的只占送交检测软件总数 的35%,需经2次检测才能合格的占55%,经3次检测才
能合格的占8%,经4次检测才能合格的占2%。人们对
预防软件缺陷的重视度越来越高,为了生产出高质量的
软件产品,人们想出了很多方法,但大部分方法都是通 过软件测试探测软件中的错误,包括单元测试、集成测
试等各个级别测试,最终是完成等到最后进行可执行代
码的测试及排除行为。随着人们研究的深入,人们意识 到除了要测出软件缺陷外,还有必要对软件进行分析, 管理,更有潜力的方法就是进行缺陷预测。实验证明收
集和利用软件缺陷数据,对缺陷数据分析,控制和预测
是一种行之有效的保证软件质量的方法。在软件缺陷预
测研究领域,人们开发出了许多软件缺陷预测模型[2】。
这些模型大致分为两类:一类是在软件生存周期的后
期,即软件进入测试阶段,并且已经得到缺陷数据,根
据这些数据预测软件中还有多少缺陷的预测模型;另一
类是在软件开发之前,通过对以往项目的缺陷数据进行
分析,预测在软件开发中会出现多少缺陷。目前已公开
发表的模型有以下几种: ̄Gaffny和Davis提出的基于
阶段的模型; ̄l Agresti和Evanco提出的预测Ada程序设
60 信息系统工程l 201 1.7.加 ◆马裕然刘俊红钱振鹏
计中软件缺陷的模型;美国ROME实验室提出的模型; Carol Smidts等人提出的一种早期预测的方法;基于模
糊神经网络的一种早期预测模型[3】。但是,上述方法中
仍然有许多问题悬而未决,因为软件开发是一种极其复
杂的过程,软件缺陷数与许许多多因素有关,这些因素
又相互关联,若要做出准确的度量就要尽可能多地考虑 与之相关的因素,但这样一来又会使得模型变得复杂难
解,若要考虑模型的可解性,又会将模型化简的以至无
法对问题做出令人信服的解答。
本文通过对软件缺陷产生因素及缺陷产生的相关原
因进行分析的基础上,构建了基于软件需求分析的贝叶 斯网络模型,并考虑到软件开发生命周期中需求分析阶
段的实际情况,结合实际项目数据,对软件可能存在的
缺陷因素进行了分析、计算。此分析模型实现了尽可能
早地发现与修改缺陷的目的,实际应用效果良好。
一、贝叶斯网络
1.1基本理论与方法
贝叶斯网络是将贝叶斯概率方法和有向无环图的网
络拓扑结构有机结合,对不确定性知识的表达和推理的
一种模型。它描述了数据项及其依赖关系,并根据各个
变量之间概率关系建立图论模型,是进行数据联合分析 与预测的有力工具[41。在表达不确定性知识方面有着广
泛的应用。从直观上讲,贝叶斯网络表现为一个赋值的
复杂因果关系网络图,网络中的每一个节点表示一个变
量,即一个事件,各变量之间的弧表示事件发生的直接
因果关系。
贝叶斯网络(也称为信度网络、因果网络或者推理 !里 Q 蕉 廑旦二:
网络)是一组概率变量、节点和其间的一组有向连接。
每一节点有一组有限的排他的状态,其似然分配表示为 信度值。有向连接表示它们之间的相关或者推论关系。
事件本身的不确定性以节点的信度值表示,专家知识的
不确定性以条件概率表示。通过在贝叶斯网络中输人数
据,更新节点的后验信度值,则可以对节点事件进行推
理。由于贝叶斯网络的理论推理中用到了条件概率及条 件独立性的概念,下面给出相关定义 】。
定义l贝叶斯网络使用概率积分表示不确定性。这
称为条件概率,或贝叶斯积分。条件概率描述为,给定
事件 ,事件 发生的概率为 ,即
P( l )=X(1)
定义2(条件独立性)给定随机变量集合 , } 和随机变量 ,若
尸( I , )=P( I )(2) 成立,则称随机变量V条件独立于随机变量集
, ,,记为I(V, /rS),即
P( J , )=P( I )(3)
定义3给定随机变量集合 , ,… _},建立在该 集合上的联合概率分布尸( , ,…, )可以表示为一个 贝叶斯网络B(B ,Bp),其中: 1) 为贝叶斯网络结构,是一个具有n个节点的有
向无环图,图中的节点为随机变量,节点的状态对应于
随机变量的值,图中的有向边表示了节点之间的条件依
赖关系。
2) 为贝叶斯网络的条件概率表集合,每个节点 都有一个条件概率表,用来表示 同其父节点 ( 的相
关关系,即条件概率P( JPa( ))。 利用条件独立性,可将联合概率化为如下形式:
P( , ,‘・’ ) 珥尸( 1 ( ))(4)
1.2贝叶斯网络的构造
贝叶斯网络的构造,一般分为三个阶段: 1)确定变量集和变量域。所研究问题的所有特征
变量构成变量集,对变量集中的每个变量确定其状态和 取值范围。
2)确定网络结构。对具备大量专家知识的问题领 域,贝叶斯网络结构的构建方法可以由先验知识获得,
即根据专家对变量之间存在的因果依赖关系的认知,直
接勾画出从因变量到果变量之间的连接,大多数情况下 由专家知识获得的贝叶斯网络结构就是最优的贝叶斯网
络结构。 3)确定局部概率分布或局部密度函数。对确定的
网络结构计算每个节点的概率分布,包括根节点的先验
概率分布和中间节点的条件概率分布,即所谓的参数估 计。确定贝叶斯网络的结构以后,贝叶斯网络的参数学
习就变为在给出网络结构和样本数据集的条件后再计算
节点的概率分布问题。在得到更多的新数据时,贝叶斯 网络可以利用这些新数据对网络结构和参数进行更新。
二、需求分析阶段的贝叶斯网络模型
本节结合实际项目的一个应用实例,建立了需求分
析阶段的贝叶斯网络模型,通过分析该项目的历史资料
给出的某些缺陷因素发生的概率,对此项目需求分析阶 段的缺陷数进行预测,再比照该项目的实际情况,衡量
预测模型的有效性。
2,1模型建立及分析
贝叶斯网络的建立是一项比较复杂的工作,只能根
据实际问题,依靠相关领域专家的经验建立。对于软件
缺陷预测模型的建立,我们必须综合考虑开发过程中各 种影响软件缺陷产生的因素及其之间的相互作用关系,
建立相应的网络模型,并根据以往开发过程中各种因素
之间相互影响程度的大小,确定网络中各结点的条件概
率。作为一个实用的贝叶斯网络,我们必须明确定义每
一个结点,决定它所有可能的状态。另外,对每一个结
点需要为每一种可能的状态确定一个条件概率。整个网
络包括所有的结点及其条件概率分布。 2.1.1确定软件缺陷预测模型的变量集和变量域
首先,根据此项目的特点选定变量集,另外为了计 算方便,对需求分析阶段的网络模型进行适当的修改。
选取开发效率(DE),文档质量(DQ),客户支持(Cs),开发
者交流(DC),内部资源(IR),稳定性(WD),软件复杂性 (sc),评审力度(I,L),需求书质量(RQ)作为影响需求缺陷
数(RD)的一些关键因素,其相应的变量集确定如下:
X={DE,DQ,CS,DC,IR,WD,SC,PL, RQ,RD} 节点状态表如表1。
2.1.2确定软件缺陷预侧模型的网络结构 通过对需求分析阶段导致软件缺陷产生因素的分
析,结合此项目的实际情况来确定上述变量之间的相互
信息系统工程J 201 1.7.20 61
曼 Q 堇 廑旦
表1节点状态表
节点 节点状态
开发效率(DE) (High,Medium,Low)
文档质量(DQ) (High,Medium,Low)
客户支持(CS) (High,Medium,Low)
(High frequency, Medium }开发者交流(Dc) frequency,Lowfrequency)
内部资源(IR) (High,Medium,Low)
(High Stabilize,Medium Stabilize, 稳定性(WD) Low Stabilize)
软件复杂性(SC) (High,Medium,Low)
评审力度(PL) (High,Medium,Low)
需求书质量(RQ) (High,Medium,Low)
需求缺陷数(RD) (High,Medium,Low)
关系,将贝叶斯网络与软件缺陷预测模型相结合,由此 构建的网络结构如图1所示。开发能力相应的贝叶斯网
络结构图如图2所示。
图1需求分析阶段缺陷预测网络结构图
图2需求分析阶段贝叶斯网络结构图
62 信息系统工程l 201 1.7.20 2.1.3概率表
首先确定节点概率。通过对历史数据的统计分析,
由专家指定每一个节点的概率分布表,得到相关概率分
布为:
表2各节点间影响概率分布表 类别 高 由 低 和
影响内部资源(IR) 的开发能力(DE)的 O.25 0.5 0.25 概率分布
’影响内部资源(IR) 的文档质量(DQ) 0.2 O.55 O.25 的概率分布
影响稳定性(WD) 的客户支持(CS)的 O.63 O.28 O.09 概率分布 1
影响稳定性(WD) 的开发者交流(DL) O-32 O.52 O.16 的概率分布
影响需求书质量 (RQ)的软件复杂 O.35 0.45 O-2 性(SC)的概率分布
影响需求缺陷数 (RD)的评审力度 0.4 Ol3 0.3 (PL)的概率分布
以上的概率为先验概率,会由于开发团队、软件项
目及开发环境的不同而不同。以下的条件概率表是根据
项目报告中所获取的数据,以及在专家的统计分析下初 步得到的。可以随着历史数据的不断丰富,进行重新的
估算。 下面计算边界概率:
P(m= 、 一∑P(尔一 l ,伍)JF'( )P(腰) /:12. 五’ =1 0.2}O.25+0.210{0.55¥0.25+O.195*O.25・0.25 +0.550 0.2・0.5+0}0.5+0.55+0.114+0.25 0.5 +0.235}0.2+O.25+0.125・O.55}0.25+0+0.25}O.25 =0.189
P( R= ) =∑P(m= I ,舾)P(DQ)P(DE) — 。 =0.517;