涂俊翔,邸 亮,李志伟
(福州大学 机械工程及自动化学院,福州 350108)
目前国内已有不少软件企业通过ISO9001 认证和各种级别的CMM 评估,但其对所开发软件产品和服务质量的促进效果参差不齐[1].与国外成熟的软件企业相比,国内软件企业在管理基础、所处市场环境、文化理念等方面都存在很大差异.即使国外的质量管理模型提供了相当详尽的指南,但国内软件企业缺少相应管理环境,很多条款缺乏操作性,以定性分析为主的软件质量评估不够精确和有效,存在明显局限性,导致质量管理、过程改进的目标不明确,无法使质量保障落到实处[2].
由于软件属性和其质量影响因子等大都具有模糊特性,不能用确定的数值表示,从而难以采用经典的数学方法进行精确度量.因此,AHP 层次分析方法、因子加权累加法和模糊综合评价法等方法在软件质量度量中得到应用[3-5].然而,层次分析法和因子加权累加法在确定权重因子时,定性成分多,且无法通过统计数据进行有效校正.另外,这两种方法都不能很好地表达各质量影响因子间的相互依赖关系[6,7].模糊评价法则计算复杂,在确定指标权重矢量时存在主观性过强的缺点,且容易出现超模糊现象,从而无法区分谁的隶属度更高,甚至造成质量评估失败[8,9].总之,这些软件质量度量方法能够描述软件系统质量的一些基本特性,如功能性、易用性、效率、维护性等,但难以表达顾客价值及组织管理特性等方面的广义质量影响因子间复杂依赖关系.贝叶斯网络则能很好地表达随机变量的不确定性及其相关依赖性,并在不确定性推理方面有很好的优势[10,11],本文基于贝叶斯网络推理技术构建一种新的评估模型,对软件质量基本特性、顾客价值、软件开发企业管理特性等广义质量特性进行综合性定量评估.
贝叶斯网络理论将先验知识与样本信息相结合、变量依赖关系与概率表示相结合,是不确定知识表示和推理的理想模型.贝叶斯网络是一系列变量的联合概率分布的图形表示,它包含两个部分.一部分是由节点、有向弧所组成的有向无环图(Directed Acyclic Graph ,DAG),网络中每一节点代表研究领域中的变量,节点之间的连接关系代表变量间的条件独立语义;另一部分是节点和节点之间的条件概率表(Conditional Probability Table,CPT),它量化了各变量间的相互依赖关系.假设贝叶斯网中任意节点xi的 直接双亲节点集为Pai,xi的 条件概率为P(xi|Pai).对于顶点集合X=(x1,x2,···,xn)的联合概率分布可由下式计算:
国际标准化组织I S O 在质量特性国际标准ISO/IEC9126 中将软件质量定义为:反映软件产品满足规定需求和潜在需求能力的特征和特性的总和.目前国内软件企业所采用的质量特性体系,主要是在CMM/CMMI 和ISO 系列标准的基础上发展而来.质量特性体系主要侧重于功能性、易用性、可靠性、性和可维护性等基本特性,未考虑软件项目的具体开发过程方面的特性,例如用户需求满足、软件企业组织管理、成本控制、进度管理等方面特性.软件广义质量特性体系则纳入了这些重要特性,并针对软件具体项目特点对这些特性指标进行适当裁剪.广义质量特性体系如图1所示.
图1 软件质量度量的广义质量特性体系
基于贝叶斯网络的软件量化评估模型由软件广义质量特性的度量、贝叶斯网络推理模型的构建和贝叶斯网络的推理等部分组成,详细如图2所示.
图2 基于贝叶斯网络的软件质量评估
贝叶斯网络能对软件项目的质量影响因素及其相互依赖关系进行直观描述.本文依据软件质量的广义质量体系将软件质量评估划分为三个主要维度:基本质量特性、顾客价值特性、组织管理特性.三个维度进一步细分的质量特性指标(见表1)及其相互关系,采用贝叶斯网络形式表达出来,就可以构造出广义软件质量的定量评估模型(图3).该贝叶斯网络包含三个维度节点E(基本质量特性)、C(顾客价值特性)、O(组织管理特性).各维度节点进一步细分的软件质量特性指标,可以是独立的,也可以相互关联,它们共同决定了软件质量.质量水平通过贝叶斯网络的RQ_Evaluate节点状态来表达.
表1 贝叶斯网络中质量特性节点
对于具有n个节点的贝叶斯网络而言,理论上有n(n-1)/2 个存在相互关系的节点耦合对.为减少网络的复杂度,可基于质量特性的具体情况及其相互影响程度,进行适当简化.图3所示网络中的基本质量维度中EF(功能性)、SF(可靠性)、IF(易用性)、CF(效率)等直接与顾客价值特性维度相连,表达了基本质量特性与顾客价值特性之间存在重要关联关系.同理,组织管理维度中RSF(资源占比)、CF(成本控制水平)与基本质量维度相连,也表达了它们间重要的相互影响关系.类似的,其他重要关联关系在图3的贝叶斯网络结构图中都进行了相应描述.
图3 软件质量评估的贝叶斯网络结构
在确定贝叶斯网络结构DAG (Directed Acylic Graph)后,也就知道了各节点的相互依赖关系,接下来需要获得相互依赖关系定量描述的贝叶斯网络参数即每个节点的条件概率表(Conditional Probability Table,CPT),从而构造出贝叶斯网络的参数模型.在识别网络节点事件的基础上,对各节点的状态进行分级处理,即对节点取值进行离散化处理.在有大规模的样本数据情况下,这一过程可以通过数据训练并利用有效的离散化方法实现.在数据无积累或数据不充分的情形时,可通过领域专家的经验来确定.如果贝叶斯网络节点状态多,可依据领域专家的意见并采用两两比较的方式建立比较矩阵(pair-wise comparison matrix),然后通过计算来确定节点的概率.
由于在软件质量评估过程中往往只能获得不完备的统计数据,为保证贝叶斯参数的准确性,这里采用EM (Expectation Maximization)迭代算法进行参数学习.EM 算法的具体步骤如下所示:
(1)对于贝叶斯网络BN=(G,θm),从θm的某个初始值θm0开始迭代(初始值可随机产生);
(2)求出不完整数据集的充分统计量的期望值,对其进行修正,成为完备数据;
(3)基于修正后的数据重新计算θm.
由于贝叶斯网络模型包含软件质量评价结果并不是一个具体的数值,而是一个概率事件,因此其概率值的大小反映了软件处于该质量水平的可能性.
在贝叶斯网络模型中,软件质量评估结果(RQ_Evluate)以概率值表示,它的各个状态取值以离散化形式存在,对其进行评估即是在给定证据节点(Evidence)条件下,计算RQ_Evluate 各种可能状态的发生概率.另一方面,若已知软件处于某种质量水平,可依据贝叶斯网络的拓扑结构进行反向推理,找出影响软件质量的关键要素,形成相应的诊断结果,为软件改进提供指导.
以某汽车企业开发的新产品项目管理信息系统为例.该系统将包括了项目信息管理模块、项目任务管理模块、项目进度管理模块、项目质量管理模块和项目HSE(Health,健康;Environment,环境;Safety,安全)管理模块.现基于用户体验反馈表和领域专家的意见,利用前述的贝叶斯网络质量评估模型,对该软件系统进行质量评估.
网络拓扑结构如前述图3所示,设网络中各节点按质量程度划分为高(H)、中(M)、低(L)三种状态,用2,1,0 表示.接下来需确定各节点参数,它包括以下两个步骤:第一,确定非根节点的条件概率.这些概率反映了软件项目各具体质量特性的状况及其相互影响程度等.它们可结合用户体验反馈表、质量管理流程记录,通过建立比较矩阵的方法确定.第二,确定根节点的先验概率.它们结合项目管理人员、开发人员及领域专家的意见确定.先验概率会通过贝叶斯网络推理进行修正,即依据软件项目及系统的实际情形,通过贝叶斯网络的推理计算得到更准确的后验概率.根节点的先验概率如表2所示.
表2 贝叶斯网络中质量特性节点先验概率
对该软件系统质量评估过程即是计算RQ_Evluate节点概率值的过程,即在给定的质量特性状态及其概率取值的条件下,计算出该软件系统(RQ_Evluate)各可能状态的发生概率.结合前面确定的根节点先验概率和非根节点的条件概率,通过Hugin 软件进行推理,结果见表3.
表3 软件质量评估结果
从这里可以看到,贝叶斯网络质量性评估模型不返回软件质量评估的特定值,而是返回RQ_Evluate 处于各可能状态的概率值.概率最高的状态可视为软件质量评估的类别.从结果可以看出,P(RQ_Evluate=1)=0.56 为最高概率,因此该信息系统的质量水平为中等(M).这时,可依据贝叶斯网络的拓扑结构进行反向诊断推理,找到影响信息系统质量的症结所在.
依据项目管理经验及测试记录,在部分已知的证据节点变量FF=2、RF=2、EF=2、MF=2、TRF=1、SF=2、RPF=2、CF=2、RSF=1 条件下,通过贝叶斯网络反向推理,计算可得到表4的诊断结果.由表4可知,影响该项目管理信息系统质量水平的症结在于可移植性(TF)、客户情境贴合度(SFF)等质量特性水平处于低状态.经过分析发现,这是由于该信息系统部分的接口设计问题和有些关键用户需求未得到充分满足,因此可针对性地改进相应的软件接口设计及部分用户界面.
本文将贝叶斯网络的不确定性推理技术引入到软件质量评估模型中,实现了面向软件广义质量特性体系的软件质量量化评估,并能够对评估结果进行反向诊断推理,找到影响软件质量的主要特性指标,为软件质量的改进提供决策依据.
表4 基于贝叶斯网络的反向推理