一种软件缺陷量化管理系统和方法

文档序号:6358401阅读:180来源:国知局
专利名称:一种软件缺陷量化管理系统和方法
技术领域
本发明涉及软件工程中的软件质量管理领域,尤其涉及一种软件缺陷的定量管理及其实现方法。
背景技术
随着信息技术的发展,计算机行业已经成为现代社会的核心支柱产业之一,运行在计算机中的软件是关系到计算机系统运行性能的重要因素,软件规模的日益扩大,导致了软件质量管理越来越复杂,软件中存在的缺陷会严重降低软件的运行效率,因此保证软件质量是软件工程行业在软件生命周期中应该核心关注的问题,其中对软件缺陷的量化评估管理就是保证软件质量的重要前提。在航天工业中,软件缺陷是航天地面软件研制部门对软件质量评价的一个重要指标,尽管目前国内已有多家航天地面软件研制承担单位通过GJB 5000A 3级认证,并且培养了一批软件过程评估员和推进人员,对航天地面软件的质量改善起到很大的作用。但是,经过调研分析,目前航天地面软件过程改进实践中依旧缺乏信息化手段辅助进行度量数据获取、分析、呈现,辅助项目监控和管理决策,给进一步质量提升带来障碍。已有的软件缺陷评估方法的出现,最早可以追溯到1992年,目前常用的软件缺陷评估方法可以分成四类基于度量元的缺陷评估方法、基于缺陷分布的评估方法、基于模型的缺陷评估方法和基于模糊综合评判的评估方法,这些方法通常面临以下不足(I)传统的简单度量元技术基于规模度量来估算和预测软件缺陷,随着软件开发技术从传统的结构化设计技术过渡到面向对象技术(如00A、00D、00P),缺陷评估应该考虑新技术所带来的度量元(如产品度量元、执行度量元、过程度量元等)对软件缺陷评估的影响。(2)目前的缺陷评估方法受限于所使用的数据以及项目的具体情况。除C0QUALM0模型和Bayesian方法考虑到了不同项目及环境因素对缺陷的影响以外,其他方法和技术都受限于组织中的数据,难以广泛推广和使用。(3)基于模型的缺陷评估技术只考虑到了产品、项目、人员及平台等几个方面对缺陷评估的影响,这些模型框架是否完备、所考虑的因素是否足够还有待进一步研究。(4)模糊综合评估方法虽然能够有效克服专家评估中人为不利因素的影响,但其不适合在专家评价数据较少时使用,并且随着评价数据增多计算难度明显增大。传统软件缺陷评估中,由于专家评判过程具有主观性,以及专家经验等人为因素的影响,会导致评估决策上的失误。模糊综合评估方法虽然能够有效克服专家评估中人为不利因素的影响,但其不适合在专家评价数据较少时使用,并且随着评价数据增多计算难度明显增大。
在软件工程中,当软件过程出现问题时(比如过程质量属性出现异常),如何进行故障诊断,并追溯到问题根源尚没有得到很好的解决。软件过程故障的产生和传播,以及故障诊断是一个典型的离散事件动态系统,由于过程分量(人、机器、原料、环境、方法)的不确定性和交互过程的复杂性,导致软件过程故障信息的不确定性和模糊性。现在有关如何从软件过程质量指标异常追溯到故障源的研究比较少。诸如CMMI、Bootstrap等软件过程改进模型都没有提供相应的解决方案。其他过程控制领域提供了一些技术方法,比如鱼骨图、离散分析图、因果图等,但是这些方法没有考虑到过程故障信息的不确定性因素,而且形式化能力较差。故障诊断的一个关键问题是故障知识的表示方法,为此人们提出了许多知识表示法,如逻辑表示法、产生式规则、模糊产生式规则、语义网络、框架和关系表示,以及面向对象表示等。这些方法虽然能表达故障特征的纵向和横向联系,但由于对故障仅仅是一种静态描述,不能表现故障的动态行为,且无法进行 并行推理,使诊断效率受到限制。缺陷是软件“与生俱来”的特征,无论小程序还是大型软件系统,无一例外都存在着缺陷。软件从最初的需求分析到最后的退出使用,需要大量的智力劳动的投入来修复这些缺陷。然而软件技术发展至今,任何验证、检验手段都不可能发现和修复所有的缺陷。保证软件质量的需求催生了许多缺陷预测技术。利用这些缺陷预测技术,基于历史数据,对所预测的缺陷进行成本估计,在分析软件过程质量、平衡软件成本和控制开发进度方面有重要的意义。某个缺陷的修复成本虽然可以在各个开发小组的缺陷管理中独立记录,而缺陷修复成本的意义在于预测下次项目的缺陷修复,如何处理这些成本记录,还有很多探讨的地方。缺陷修复成本预测技术包括缺陷预测技术和成本计算方法,早期的缺陷预测关注缺陷数目和软件规模的关系。随着软件规模的增加,软件的复杂度也在逐步攀升,人们开始意识到软件缺陷不仅与软件规模有关,还与软件复杂度有关。随之而来出现了许多关于软件复杂度的测量。20世纪90年代初,人们发现缺陷并非在软件中平均分布或者完全随机分布,出现了针对缺陷分布的预测技术。在软件生命周期不同阶段的缺陷引入和移除对缺陷遗留也有重要的影响。基于软件生命周期不同阶段的缺陷分布,一些相应的缺陷预测模型也取得了很好的成果和应用。常用的软件缺陷修复成本分析方法,用每个缺陷修复的平均成本乘以预测的缺陷数来简化。这种处理方式的弊端在于,统计的平均数据往往掩盖了很多细节。不同类型缺陷的修复成本是不同的,比如,赋值缺陷只需要改动少量代码即可修复,而算法缺陷需要花费更多的时间来修复。不同类型的缺陷占总缺陷的比重不同会导致总的修复成本的不同,而不考虑缺陷类型的计算方法忽略了这些问题。引入缺陷类型的分析是一种改进的方法,它采用各种类型缺陷的平均修复成本,乘以各种类型缺陷数得出较为准确的缺陷修复总成本。然而,缺陷引入阶段的不同也会导致缺陷修复成本的不同。需求阶段引入的缺陷,一般不能在需求阶段完全修复,如果需求阶段的遗留缺陷在测试阶段才被发现,则需要很大的成本去修复。由于缺陷传递效应,早期引入的缺陷会比后期引入的缺陷需要更大的修复成本。只考虑缺陷类型的分析方法忽略了不同引入阶段导致的成本差异。综上所述,目前本领域上没有一种可以针对软件缺陷能进行定量分析管理的方法
发明内容
针对现有技术的不足, 本发明提供了一种软件缺陷量化管理的系统及其实现方法,实现了对整个软件生命周期中的缺陷进行准确的预测评估,并对故障进行诊断和准确计算评估软件缺陷的修复成本。为实现上述发明目的,本发明是通过下述技术方案实现的一种软件缺陷量化管理系统,包括缺陷预测评估模块、过程故障诊断模块和软件缺陷修复成本评估模块,其中所述缺陷预测评估模块用于实现软件缺陷数量的评估与预测;所述过程故障诊断模块用于模拟软件过程故障传播过程和软件产品故障诊断;所述软件缺陷修复成本评估模块计算修复成本,实现对缺陷修复成本准确估计。其中,所述缺陷预测评估模块通过建立模糊神经网络缺陷评估模型并对其进行训练,并将评估项目的真实数据输入评估模型从而得出缺陷评估结果,包括模糊综合评估模块,用于消除专家评估的不确定因素,得到信任度较高的缺陷评估结果;所述模糊综合评估模块与神经网络模块串联,模糊综合评价模块的输出作为神经网络模型的输入,用于专家评价数据较少、评价数据增多的智能缺陷评估。所述过程故障诊断模块通过模糊Petri网模拟软件过程故障传播,使用模糊产生式规则表示模糊的故障知识,从而优先诊断和处理发生概率最大的故障。所述软件缺陷修复成本评估模块通过建立缺陷类型-引入阶段的成本矩阵计算和准确评估修复成本。相应的,本发明公开了一种软件缺陷量化管理方法,包括下述步骤(I)对软件缺陷进行预测评估;(2)对软件过程的故障进行诊断;(3)对软件缺陷修复成本进行评估,并准确评估缺陷修复成本,所述步骤(I)包括对软件缺陷进行模糊综合评价的步骤和对软件缺陷进行模糊神经网络评估的步骤,所述对软件缺陷进行模糊综合评价的步骤用于为模糊神经网络评估的步骤提供神经网络数据训练处理;所述步骤(2)使用Petri网模拟软件的故障传播过程,使用模糊产生式规则表示模糊的故障知识,以目标驱动反向推理;所述步骤(3)通过建立缺陷类型-引入阶段的成本矩阵计算缺陷修复成本。其中,步骤(I)具体的包括两个过程,第一个过程为对软件缺陷进行模糊综合评价1)用专家组打分方法和问卷调查方法对软件缺陷因素进行打分,获得领域专家评价数据集;2)用模糊量化方法对专家评价数据进行预处理,确定其隶属度函数,并进行归一化,作为缺陷评估数据;3)建立模糊综合评判模型,对缺陷评估数据进行处理,根据缺陷因素指标的权重采用多层次模糊评判方法进行评判;4)采用最大隶属度原则判定信任度最大的集合为最终评估结果。其在工程上的实现方式为A :建立软件缺陷评估的数学模型U = Iu1, U2, , un} V= Iv1, V2, , vm} (1-1)SUSn种评价因素(或者指标)所组成的集合;V为m种评估结果。它们的元素个数和名称应根据实际问题确定,由于各个因素所处的地位和作用不同,权重也不同,所以评判结果就不同。专家对m种评判结果不是绝对肯定或者否定的,因此模糊综合评估结果应是V上的一个模糊子集
B = {bl,b2...,bm}Gp(V) (1-2)其中,b」(j = 1,2,…,m)反映了低j种评判Vj在综合评判中所占的地位(即Vj对模糊集B的隶属,B (Vj) =bj)。综合评判B依赖于各个因素的权重,为U上的模糊子集
权利要求
1.一种软件缺陷量化管理系统,包括缺陷预测评估模块、过程故障诊断模块和软件缺陷修复成本评估模块,其中所述缺陷预测评估模块用于实现软件缺陷数量的评估与预测; 所述过程故障诊断模块用于模拟软件过程故障传播过程和软件产品故障诊断;所述软件缺陷修复成本评估模块计算修复成本,实现对缺陷修复成本准确估计。
2.根据权利要求I所述的软件缺陷量化管理系统,其特征在于所述缺陷预测评估模块通过建立模糊神经网络缺陷评估模型并对其进行训练,并将评估项目的真实数据输入评估模型从而得出缺陷评估结果,包括模糊综合评估模块,用于消除专家评估的不确定因素,得到信任度较高的缺陷评估结果;所述模糊综合评估模块与神经网络模块串联,模糊综合评价模块的输出作为神经网络模型的输入,用于专家评价数据较少、评价数据增多的智能缺陷评估。
3.根据权利要求I所述的软件缺陷量化管理系统,其特征在于所述过程故障诊断模块通过模糊Petri网模拟软件过程故障传播,使用模糊产生式规则表示模糊的故障知识,从而优先诊断和处理发生概率最大的故障。
4.根据权利要求I所述的软件缺陷量化管理系统,其特征在于所述软件缺陷修复成本评估模块通过建立缺陷类型-引入阶段的成本矩阵计算和准确评估修复成本。
5.一种软件缺陷量化管理方法,其特征在于包括下述步骤(I)对软件缺陷进行预测评估;(2)对软件过程的故障进行诊断;(3)对软件缺陷修复成本进行评估,并准确评估缺陷修复成本,所述步骤(I)包括对软件缺陷进行模糊综合评价的步骤和对软件缺陷进行模糊神经网络评估的步骤,所述对软件缺陷进行模糊综合评价的步骤用于为模糊神经网络评估的步骤提供神经网络数据训练处理;所述步骤(2)使用Petri网模拟软件的故障传播过程,使用模糊产生式规则表示模糊的故障知识,以目标驱动反向推理;所述步骤(3)通过建立缺陷类型-引入阶段的成本矩阵计算缺陷修复成本。
6.根据权利要求5所述的软件缺陷量化管理方法,其特征在于所述对软件缺陷进行模糊综合评价的步骤,具体的包括1)用专家组打分方法和问卷调查方法对软件缺陷因素进行打分,获得领域专家评价数据集;2)用模糊量化方法对专家评价数据进行预处理,确定其隶属度函数,并进行归一化,作为缺陷评估数据;3)建立模糊综合评判模型,对缺陷评估数据进行处理,根据缺陷因素指标的权重采用多层次模糊评判方法进行评判;4)采用最大隶属度原则判定信任度最大的集合为最终评估结果;对软件缺陷进行模糊神经网络评估的步骤,具体的包括1)根据缺陷因素度量指标体系确定评估网络的输入层和输出层节点数,选择恰当的神经网络模型建立起初始网络;2)使用模糊综合评价处理方法对收集的网络训练样本数据进行预处理,使用模糊综合评估方法计算出样本数据的期望结果值;3)使用样本数据训练建立的评估网络,采用实验的方法调整评估网络的结构,找出最有的网络结构参数;4)使用找出的最优网络结构参数重新建立模糊神经网络缺陷评估模型,重新训练;5)使用测试样本数据测试重新训练好的评估网络,测试网络的拟合能力和泛化能力。
7.根据权利要求6所述的软件缺陷量化管理方法,其特征在于所用的神经网络是BP神经网络或者其变种,所述模糊综合评价处理过程和神经网络处理过程进行串联,即模糊综合评价结果作为神经网络的输入,所述模糊综合评价输出作神经网络输入指标的预处理部分。
8.根据权利要求5所述的软件缺陷量化管理方法,其特征在于对软件过程的故障进行诊断的步骤,具体包括1)定义软件过程故障模糊Petri网(FPN)为一个十元组,所述十元组至少包括位置的可信度、变迁的可信度、变迁激活的阈值,以及变迁激活概率等四种模糊知识;所述模糊Petri网包括目标位置和起始位置,所述目标位置表示待诊断的故障现象,起始位置表示故障原因;2)定义模糊产生式规则表示因果关系;3)对模糊Petri网FPN中每个位置建立可达性集合、立即可达性集合和相邻位置集合;4)选定目标位置,遍历规则库中的规则,直到得到诊断结论。
9.根据权利要求8所述的软件缺陷量化管理方法,其特征在于所述步骤4)的具体方法为首先选择优先级最大的规则执行;如果优先级相同,则首先选择变迁可信度最大的规则执行,然后依次执行其他规则。若某条规则的产生式前提条件为真,则该规则被激活,推导出新的事实;否则,将该规则的前提作为子目标,递归执行上述过程,如此反复直到得到诊断结论。
10.根据权利要求5所述的软件缺陷量化管理方法,其特征在于对软件缺陷修复成本进行评估,并准确评估缺陷修复成本的步骤,具体包括1)以软件生命周期阶段引入的缺陷类型的缺陷数建立各类型缺陷的阶段分布表,并给予不同类型、不同引入阶段的缺陷修复成本以独立的权值;2)以软件生命周期阶段引入的缺陷类型的缺陷引发的修复成本建立各类型缺陷在各阶段的排除成本表;3)计算每种类型缺陷的修复成本;4)计算软件生命周期每个阶段的所有类型缺陷的修复成本;5)计算软件生命周期内所有缺陷修复总成本。
全文摘要
本发明公开了一种软件缺陷量化管理系统,包括缺陷预测评估模块、过程故障诊断模块和软件缺陷修复成本评估模块,其中所述缺陷预测评估模块用于实现软件缺陷数量的评估与预测;所述过程故障诊断模块用于模拟软件过程故障传播过程,表示模糊的故障知识,提出目标驱动为主的反向推理机制和软件产品故障诊断;所述软件缺陷修复成本评估模块用于研究缺陷修复成本预测方法从而计算修复成本,实现对缺陷修复成本准确估计。本发明公开的软件缺陷量化管理系统,实现了对软件缺陷的智能评估,提高软件过程故障诊断的效率和正确性,使软件过程更可控,开发过程的成熟度更高。
文档编号G06F11/36GK102622510SQ20121002189
公开日2012年8月1日 申请日期2012年1月31日 优先权日2012年1月31日
发明者尹云霞, 左建勋, 张晓清, 徐世波, 李建华, 潘 清, 焦彦平, 王飞, 田丽韫, 赵立军, 陈海莲, 高通, 龚波 申请人:龚波
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1