分类筛选
分类筛选:

关于预测模型毕业论文格式模板范文 跟基于贝叶斯网的网站代码缺陷预测模型相关毕业论文模板范文

版权:原创标记原创 主题:预测模型范文 类别:发表论文 2024-02-04

《基于贝叶斯网的网站代码缺陷预测模型》

本文是关于预测模型在职毕业论文范文与贝叶斯和贝叶斯网和缺陷相关论文如何写。

[摘 要] 软件缺陷预测正成为软件工程数据挖掘领域的一个研究热点,在分析软件质量、平衡软件成本方面起着重要的作用.但现有的缺陷预测模型泛化能力不足,且模型要求的部分输入数据难以度量.为能预测网站代码的缺陷,提出一种基于贝叶斯网的代码缺陷预测模型,模型用易度量的代码属性值输入,代码属性间的关联作为贝叶斯网结构,通过学习已有的经验数据来获得节点的先验概率.通过对同项目组开发的一些网站的预测,证明其有较好的效果.

[关键词] 贝叶斯网;软件度量;代码缺陷

中图分类号:TP18 文献标志码:A 文章编号:1008-1739(2017)19-62-3

Defect Prediction Model for Website Code Based onBayesian Network

ZHU Chao-yang1, CHEN Xiang-zhou1, SHAN Yong2

(1. Information & Communication Department, China Electrical Power Research Institute, Beijing 100192, China;2. School of Software Engineering, University of Science and Technology China, Hefei Anhui 230051, China)

As the software defect prediction plays an important role in analyzing the software quality and balancing the software

costs, it is becoming a research focus in the data mining filed of software engineering. However, the generalization ability of existingdefect prediction model is insufficient, and some input data required by the model are hard to measure. In order to predict the defects ofwebsite code, this paper proposes a code defect prediction model based on Bayesian network. The model is input with the attributevalue of the codes easy to measure, the linkage between codes attributes is used as Bayesian network structure, which gets priorprobability of the node by learning the existing empirical data. Through predicting some websites developed by the same project team,it is proved that this model is effective.

Bayesian network; software measure; code defect

1 引言

代码缺陷预测模型是通过分析、设计与代码缺陷相关的度量元,再通过挖掘代码缺陷的历史数据而构建的缺陷预测模型.模型对被测软件的潜在缺陷情况进行预测,目的是优化测试资源分配和提高软件产品质量[1-2].目前,最著名的代码度量方法有Halstead[3]、MCCable[4]方法、面向对象软件设计的C&K 度量方法[5]和MOOD 方法[6],挖掘常用的学习算法有支持向量机、神经网络和朴素贝叶斯等.虽然已有的研究表明基于机器学习算法构建的缺陷预测模型可获取较好的预测性能,但由于项目不同的内在特征,而预测模型常对各类软件都采用类似的度量元,且一些度量元也难以测量,使得模型难以通用[1].为探讨网页软件缺陷的预测技术,提出一种易行的缺陷预测模型,用可测的代码度量元为输入,利用贝叶斯技术的前向推理,判断网页的缺陷情况.然后根据预测结果与实际情况的差异,不断校准模型.在使用过程中,逐步提高预测的准确度.

2 缺陷预测模型的建立及分析

现在的网站主要由网页构成,网页一般由HTML 标记和1 引言代码缺陷预测模型是通过分析、设计与代码缺陷相关的度量元,再通过挖掘代码缺陷的历史数据而构建的缺陷预测模型.模型对被测软件的潜在缺陷情况进行预测,目的是优化测试资源分配和提高软件产品质量[1-2].目前,最著名的代码度量方法有Halstead[3]、MCCable[4]方法、面向对象软件设计的C&K 度量方法[5]和MOOD 方法[6],挖掘常用的学习算法有支持向量机、神经网络和朴素贝叶斯等.虽然已有的研究表明基于机器学习算法构建的缺陷预测模型可获取较好的预测性能,但由于项目不同的内在特征,而预测模型常对各类软件都采用类似的度量元,且一些度量元也难以测量,使得模型难以通用[1].为探讨网页软件缺陷的预测技术,提出一种易行的缺陷预测模型,用可测的代码度量元为输入,利用贝叶斯技术的前向推理,判断网页的缺陷情况.然后根据预测结果与实际情况的差异,不断校准模型.在使用过程中,逐步提高预测的准确度.

2 缺陷预测模型的建立及分析

现在的网站主要由网页构成,网页一般由HTML 标记和代码组成,一个网页所对应的逻辑代码往往包含多个模块,而模块一般也都采用面向对象语言开发,在很多情况下,网页中的HTML 和代码是分离在不同文件中.因此,缺陷预测模型可分为HTML 缺陷预测和代码缺陷预测2 个分部, 对网页度量元的选择也从网页HTML 的度量元和网页类代码的度量元2 个方面考虑.

2.1 选择度量元

从易获得度量值角度出发,在参考Halstead、MCCable、C&K 及MOOD 等度量方法[3-6] 和一些度量工具软件的基础上,对网页标记HTML 和网页代码部分选取以下度量元.

(1)网页HTML 的度量元

① 行数(Ls):网页文件的总行数,不包括空行;② HTML标签数(Tag):以"<" 开头,后跟一个字符的所有标签数,减去下述2 类标签数的值;③ 复合标签百分数(CTag):除上述简单的文本显示格式标签外的标签的百分比,有FORM、

SELECT、TABLE、MAP、FRAME 和MARQUEE;④ 其他标签数(OTag):HREF 标签、src 标签、SCRIPT 标签和Applet 标签的总和;⑤ HTML 缺陷数(HE):Html 网页中的缺陷数量.

(2)网页代码部分的度量元

对代码部分,如针对ASPX 网页的c# 代码,采用以下度量值:

① 语句数(Ss):以分号结尾的语句.方法、属性即使未以分号结束,也被统计,预处理语句#include、#define 和#undef也被计算在内,对其他的预处理语句则不作计算,在#else 和#endif、#elif 和#endif 之间的语句将被忽略;

② 方法总数(Ms):文件中所有类方法的和;

③ 方法的平均语句数(MAs):所有类方法中的语句累加和除以方法总数;

④ 方法的平均调用数(MCs):文件中调用别的方法的总数除以文件中总的方法数;

⑤ 圈复杂度总和(Mc):所有方法的圈复杂度累加和;

⑥ 最大圈复杂度(MMc):文件所有方法中,最大的圈复杂度值;

⑦ 最大模块深度(MDs):模块嵌套的最大深度数;

⑧ 平均模块深度(ADs):所有方法中模块嵌套深度的平均值;

⑨ 可维护性指数(MI):0 和100 之间的值.通过软件结构、文档注释、命名规范、系统配置管理及版本管理等的优良程度来表示维护代码的相对容易度,值越大表示可维护性越好;

⑩ 继承深度(ID):派生层次最多的类或对象的层次数;类耦合(CC):通过参数、局部变量、返回类型、方法调用、泛型或模板实例化、基类、接口实现、在外部类型上定义的字段以及特性修饰来衡量与唯一类的耦合程度.

代码缺陷(CE):代码中的缺陷数量.

(3)各度量元的状态划分

经过对历史代码的度量数据和测试结果的分析,将HTML 的其他标签数(OTag)设为2 个状态:有和无,当度量值大于0 时为有,否则无;其余的HTML 度量元和代码的度量元全部分为3 个状态:多、中、少.在计算节点概率时,将历史数据中前25%的度量值作为多,中间50%的度量值作为中,最后25%度量值作为少.其中,因总体上各HTML 页面缺陷数量并不多,故将HTML 缺陷(HE)节点的3 个状态值分别设为:“3 个缺陷以上”、“1~2 个缺陷”和“无缺陷”.

2.2 构建预测模型

将以上HTML 度量元作为HTML 网页部分的贝叶斯网络模型节点,HTML 缺陷(HE)节点作为HTML 网页缺陷的预测节点,构成贝叶斯网络如图1 所示.因HTML 标签数(Tag)包含复合标签(Ctag)和其他标签数(OTag),所以有CTag 到Tag、OTag 到Tag 的连线;行数(Ls)包含各类标签,所以有各标签节点到Ls 节点的连线,所有这些元素是构成HTML 网页缺陷的潜在原因.

与HTML 部分类似,代码缺陷预测的贝叶斯网络模型如图2 所示.方法总数(Ms)和方法的平均语句数(MAs)会影响到总语句数(Ss),故它们之间有依赖关系;最大圈复杂度(MMc)影响圈复杂度总和(Mc),期间有连线;最大模块深度(MDs)也影响到平均模块深度(ADs),它们之间也有依赖关系.

因网页一般由HTML 标记和代码组成,因此整个预测模型包含HTML 缺陷预测和代码缺陷预测2 个子模型.将上述2 种网络结构作为HTML 和代码缺陷预测子模型结构,以历史网页中的的HTML 度量值和代码度量值数据及相应的测试结果为训练样本,采用最大似然估计算法的参数学习,获得2 个子网络模型的初始条件概率分布表.至此,最初的代码缺陷预测模型构建完成.

在对新网页预测时,将新页面的HTML 和代码的除了缺陷节点以外的各度量值按2.1 节(3)中的规则转换为相应状态,输入模型如图1 和图2 所示,得到HTML 部分和代码部分的缺陷预测.预测结果可供测试组在人员安排、测试计划、测试充分性等方面做参考.在实际对新页面软件测试后,将实测结果与新页面的各度量值作为新的样本加入训练集,重新进行参数学习,修正各节点的条件概率,提高以后的预测结果,整个预测模型如图3 所示.

3 实验数据

为验证模型的预测情况,以某学院的信息化平台系统的度量值和测试结果作为训练样本,用最大似然估计算法学习,然后对同项目组开发的某校研究生招生系统进行缺陷预测.信息化平台系统用.net 开发,共有1 035 个aspx 网页文件(大部分是HTML),1 051 个对应的cs 文件(模块代码).用度量工具SourceMonitor 和微软的VS 对第2 节中描述的度量元进行测度,代码缺陷数是用页面开发完后,测试组首次对网页测试而得到的缺陷数.将这些数据转换为节点的相应状态,作为模型输入的训练样本.模型用最大似然性估计算法学习后,对同项目组开发的另一个招生系统的各网页和代码模块进行了预测.

待预测缺陷数的招生系统软件共228 个Html 网页,515 个代码模块,在对Html 网页的缺陷预测中,有191 个页面的预测情况和代码完成后的第一次实际测试结果完全一致;对代码的缺陷预测也较满意,有399 个预测结果正确,总体正确率有近85%.

将招生系统的实测结果作为样本学习后,再对同组开发的其他项目做预测,正确率保持在85% 左右.又对别组开发的一些项目做了预测,总体正确率70%左右,正确率下降的原因可能与开发过程不同、开发人员的开发水平和习惯不同有关.对美国国家航空航天局NASA 的数据包Class-level data forKC1 中的前100 个数据进行了预测,因模型中的有些度量元在NASA 数据包中没有,在信息不完整情况下,预测结果的正确率仍能接近50%.

4 结束语

从代码度量角度提出了对软件缺陷有影响的一些代码度量,并给出了利用贝叶斯网络构建的预测模型对代码缺陷的预测.实践表明,在对同一项目组开发的系列软件中,有较高的预测正确率.为项目的下一步决策提供了很好的参考.

预测模型论文参考资料:

论文模型

建筑模型论文

本文评论:此文为一篇大学硕士与预测模型本科预测模型毕业论文开题报告范文和相关优秀学术职称论文参考文献资料,关于免费教你怎么写贝叶斯和贝叶斯网和缺陷方面论文范文。

和你相关的