本发明涉及一种预防方法,具体涉及一种电力信息软件缺陷预防方法。
背景技术:
缺陷预测是预防的基础,准确预测才能集中有限的资源对缺陷进行针对性预防。按照预测技术的不同,缺陷预测方法可以分为类比法、Delph估算法、数学预测模型法三大类方法,但是因为前两种方法有着无法克服的局限性,目前软件缺陷预测领域的研究工作大部分是集中在数学预测模型方法。
常见数学预测模型方法有:线性判别分析(Linear Discriminant Analysis,LDA),布尔判别函数(Boolean Discriminant Function,BDF),贝叶斯网络(Bayesian Network,BN),分类回归树(Classification And Regression Tree,CART),优化集精简(Optimized Set Reduce,OSR),聚类分析(Clustering Analysis,CA),支持向量机(Support Vector Machine,SVM),人工神经网络(Artificial Neural Network,ANN),平均单一相关评估器(Average One Dependence Estimators,AODE)等。各种预测方法有着不同的适应面,可以解决不同的问题,也有各自的局限。
迄今为止,国内外有100多种缺陷预测模型发表在各种专业的刊物和学术会议上,但大多数模型并没有得到充分的项目数据的支撑和验证,其有效性和准确性得不到有力地证明,因而未能广泛应用。
技术实现要素:
为了克服上述现有技术的不足,本发明提供一种电力信息软件缺陷预防方法,将电力信息软件生命周期中各个阶段的度量信息及开发过程的度量信息输入AODE预测模型,计算各阶段的缺陷密度;然后查找电力信息软件缺陷知识库,获取各个阶段缺陷引入原因及对应的预防措施;最后针对性地进行缺陷预防,降低缺陷密度。
为了实现上述发明目的,本发明采取如下技术方案:
本发明提供一种电力信息软件缺陷预防方法,所述方法包括:
根据AODE预测模型计算电力信息软件生命周期各个阶段的缺陷密度;
根据电力信息软件缺陷知识库获取电力信息软件生命周期各个阶段缺陷引入原因及对应的预防措施。
所述根据AODE预测模型计算电力信息软件生命周期某阶段的缺陷密度包括:
构建AODE预测模型,并对构建的AODE预测模型进行优化;
将电力信息软件生命周期各个阶段的度量信息及开发过程的度量信息输入AODE预测模型,进而得到电力信息软件生命周期各个阶段的缺陷密度。
所述构建AODE预测模型包括:
所述AODE预测模型表示为:
其中,y表示代码属性值,xi表示属性向量的第i个代码属性值,F(xi)表示具有xi的实例数目;Xj表示第j个属性向量;i=1,2,...,n,j=1,2,...,n,n表示代码属性值总数;m表示具有xi实例数目的阈值;表示y和xi产生电力信息软件缺陷的概率;表示y和xi在Xj中产生电力信息软件缺陷的概率。
所述对构建的AODE预测模型进行优化包括:
采用增加度量元个数、控制度量数据的采集和/或调整I类/II类错误率对构建的AODE预测模型进行优化。
所述根据电力信息软件缺陷知识库获取电力信息软件生命周期各个阶段缺陷引入原因及对应的预防措施包括:
构建电力信息软件缺陷知识库;
根据构建的电力信息软件缺陷知识库获取电力信息软件生命周期各个阶段缺陷引入原因及对应的预防措施。
所述构建电力信息软件缺陷知识库包括:
收集的历史数据;
从收集的历史数据中抽取代码属性值;
将抽取的代码属性值与测试报告中的描述信息相结合,从而构建电力信息软件缺陷知识库。
所述代码属性值包括缺陷类型数目、每类缺陷中的缺陷数目、缺陷状态数量和缺陷种类数量;
测试报告中的描述信息包括问题报告和缺陷评测报告。
所述根据构建的电力信息软件缺陷知识库获取电力信息软件生命周期各个阶段缺陷引入原因及对应的预防措施包括:
发现并提交电力信息软件缺陷时,按照缺陷收集要求记录代码属性值;
修复或回应电力信息软件缺陷时,按照最小缺陷数据表记录缺陷来源、缺陷类型以及缺陷载体属性值,同时记录修复电力信息软件缺陷所采取的修复措施和修复效果;
进行缺陷跟踪,追溯到缺陷的引入阶段,分析并确定缺陷可能产生的原因,并结合修复措施和修复效果对预防缺陷的措施进行分析,同时记录缺陷引入原因和对应的预防措施;
重复上述操作,得到电力信息软件缺陷数据集。
所述电力信息软件缺陷数据集中记录的电力信息软件缺陷包括需求缺陷、设计缺陷和编码缺陷。
所述根据电力信息软件缺陷知识库获取电力信息软件生命周期各个阶段缺陷引入原因及对应的预防措施之后包括:
通过对缺陷引入原因及对应的预防措施进行补充和筛选,最终完成电力信息软件缺陷的预防。
与最接近的现有技术相比,本发明提供的技术方案具有以下有益效果:
本发明提供的电力信息软件缺陷预防方法,将电力信息软件生命周期中各个阶段的度量信息及开发过程的度量信息输入AODE预测模型,计算各阶段的缺陷密度;然后查找电力信息软件缺陷知识库,获取各个阶段缺陷引入原因及对应的预防措施;最后针对性地进行缺陷预防,降低缺陷密度。本发明提供的电力信息软件缺陷预防方法能为电力信息系统建设开展缺陷预防提供方法和技术基础,能在电力信息系统建设早期防止缺陷的引入,降低缺陷引入率,减少“缺陷引入-测试-修改”的反复性劳动,并且可以有效增加缺陷预防的针对性,节省信息系统项目开发费用,降低软件系统的失效风险整体提升电力信息软件整体建设质量。
附图说明
图1是本发明实施例中电力信息软件缺陷预防方法流程图。
具体实施方式
下面结合附图对本发明作进一步详细说明。
本发明提供一种电力信息软件缺陷预防方法,如图1所示,所述方法包括:
根据AODE预测模型计算电力信息软件生命周期各个阶段的缺陷密度;
根据电力信息软件缺陷知识库获取电力信息软件生命周期各个阶段缺陷引入原因及对应的预防措施。
所述根据AODE预测模型计算电力信息软件生命周期某阶段的缺陷密度包括:
构建AODE预测模型,并对构建的AODE预测模型进行优化;
将电力信息软件生命周期各个阶段的度量信息及开发过程的度量信息输入AODE预测模型,进而得到电力信息软件生命周期各个阶段的缺陷密度。
所述构建AODE预测模型包括:
所述AODE预测模型表示为:
其中,y表示代码属性值,xi表示属性向量的第i个代码属性值,F(xi)表示具有xi的实例数目;Xj表示第j个属性向量;i=1,2,...,n,j=1,2,...,n,n表示代码属性值总数;m表示具有xi实例数目的阈值;表示y和xi产生电力信息软件缺陷的概率;表示y和xi在Xj中产生电力信息软件缺陷的概率。
所述对构建的AODE预测模型进行优化包括:
采用增加度量元个数、控制度量数据的采集和/或调整I类/II类错误率对构建的AODE预测模型进行优化。
所述根据电力信息软件缺陷知识库获取电力信息软件生命周期各个阶段缺陷引入原因及对应的预防措施包括:
构建电力信息软件缺陷知识库;
根据构建的电力信息软件缺陷知识库获取电力信息软件生命周期各个阶段缺陷引入原因及对应的预防措施。
所述构建电力信息软件缺陷知识库包括:
收集的历史数据;
从收集的历史数据中抽取代码属性值;
将抽取的代码属性值与测试报告中的描述信息相结合,从而构建电力信息软件缺陷知识库。
所述代码属性值包括缺陷类型数目、每类缺陷中的缺陷数目、缺陷状态数量和缺陷种类数量;
测试报告中的描述信息包括问题报告和缺陷评测报告。
所述根据构建的电力信息软件缺陷知识库获取电力信息软件生命周期各个阶段缺陷引入原因及对应的预防措施包括:
发现并提交电力信息软件缺陷时,按照缺陷收集要求记录代码属性值;
修复或回应电力信息软件缺陷时,按照最小缺陷数据表记录缺陷来源、缺陷类型以及缺陷载体属性值,同时记录修复电力信息软件缺陷所采取的修复措施和修复效果;
进行缺陷跟踪,追溯到缺陷的引入阶段,分析并确定缺陷可能产生的原因,并结合修复措施和修复效果对预防缺陷的措施进行分析,同时记录缺陷引入原因和对应的预防措施;
重复上述操作,得到电力信息软件缺陷数据集。
所述电力信息软件缺陷数据集中记录的电力信息软件缺陷包括需求缺陷、设计缺陷和编码缺陷。
整个软件开发过程可以分为需求、设计、编码3个阶段,不仅在编码阶段可能产生缺陷,在需求和设计阶段同样有引入缺陷的可能,而且在这两个阶段引入的缺陷甚至会带来更多的麻烦。为了明确已知的缺陷具体是由哪个阶段引起的,我们需要对缺陷的来源进行分类:
(1)需求缺陷:由于需求所引起的缺陷,表现为功能、软硬件接口或用户界面定义错误等;
(2)设计缺陷:由于设计所引起的缺陷,表现为数据定义、模型设计或接口设计错误等;
(3)编码缺陷:由于编码所引起的缺陷,表现为代码与需求/设计不一致、代码逻辑、规范错误等。
所述根据电力信息软件缺陷知识库获取电力信息软件生命周期各个阶段缺陷引入原因及对应的预防措施之后包括:
通过对缺陷引入原因及对应的预防措施进行补充和筛选,最终完成电力信息软件缺陷的预防。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,所属领域的普通技术人员参照上述实施例依然可以对本发明的具体实施方式进行修改或者等同替换,这些未脱离本发明精神和范围的任何修改或者等同替换,均在申请待批的本发明的权利要求保护范围之内。