【技术实现步骤摘要】
一种基于抽象语法树的开源软件缺陷数据分类方法及系统
本专利技术涉及软件缺陷预测及软件可靠性
,特别是涉及一种基于抽象语法树的开源软件缺陷数据分类方法及系统。
技术介绍
在21世纪,软件已经成为不可或缺的生产工具,不仅在科研、工程、金融等专业领域发挥举足轻重的作用,更是在人们的生活中无处不在,影响着千家万户。随着软件在社会生活中的地位日益提升,软件规模与日俱增,软件复杂度几何式提升,这导致了软件缺陷的产生越来越频繁,对不同领域的负面影响越来越大,软件缺陷问题日益成为学界研究的热点。在软件开发的各个阶段中,如何识别与修复软件缺陷,已经成为提高软件质量工作中重要的一环。软件缺陷预测能够通过提前发现与锁定软件中的缺陷模块,从而能够在开发资源有限的情况下保证软件质量,减少缺陷的产生和影响,已成为软件工程中一个非常重要的研究课题。软件缺陷检测技术分为静态与动态两种。软件缺陷预测技术能够帮助提高软件开发过程中资源分配的效率,对缺陷倾向性较高的模块进行及时的优化和修复,从而提高软件开发的效率和质量。美国国家航空航天局(NASA)较早地启动了软件缺陷预测技术的研究,并开展了软件度量程序(MetricDataProgram,MDP)项目。该项目提供了开源的软件缺陷预测数据集,为软件缺陷预测领域提供了重要的数据支撑。我国的国家自然科学基金委员会在2007年年底启动“可信软件基础研究”重大研究计划,将软件缺陷预测作为重要科学目标。然而,目前的公开数据集内的缺陷数据较少,且项目特征重复性很高,软件缺陷预测对大数据的要求日 ...
【技术保护点】
1.一种基于抽象语法树的开源软件缺陷数据分类方法,其特征在于,包括:/n获取软件缺陷源代码信息;所述软件缺陷源代码信息包括缺陷修复前的代码文件和缺陷修复后的代码文件;/n生成所述软件缺陷源代码信息的抽象语法树,并确定所述抽象语法树的修改行为信息;所述修改行为信息包括修改节点和对应的行为名称;所述行为名称包括增加、删除、修改和移动;/n基于所述修改行为信息中的修改节点识别有意义节点;所述有意义节点为包含缺陷分类依据信息的节点;/n基于所述有意义节点和所述有意义节点的行为名称识别潜在节点和潜在行为名称;所述潜在节点为所述有意义节点中代码修改属性正确的节点;所述潜在行为名称为与所述潜在节点对应的修改行为正确的行为名称;/n基于所述潜在节点和所述潜在行为名称生成缺陷类别信息,并对所述缺陷类别信息进行整合,得到缺陷分类结果;所述缺陷类别信息包括缺陷模块信息和缺陷修复方式信息。/n
【技术特征摘要】
1.一种基于抽象语法树的开源软件缺陷数据分类方法,其特征在于,包括:
获取软件缺陷源代码信息;所述软件缺陷源代码信息包括缺陷修复前的代码文件和缺陷修复后的代码文件;
生成所述软件缺陷源代码信息的抽象语法树,并确定所述抽象语法树的修改行为信息;所述修改行为信息包括修改节点和对应的行为名称;所述行为名称包括增加、删除、修改和移动;
基于所述修改行为信息中的修改节点识别有意义节点;所述有意义节点为包含缺陷分类依据信息的节点;
基于所述有意义节点和所述有意义节点的行为名称识别潜在节点和潜在行为名称;所述潜在节点为所述有意义节点中代码修改属性正确的节点;所述潜在行为名称为与所述潜在节点对应的修改行为正确的行为名称;
基于所述潜在节点和所述潜在行为名称生成缺陷类别信息,并对所述缺陷类别信息进行整合,得到缺陷分类结果;所述缺陷类别信息包括缺陷模块信息和缺陷修复方式信息。
2.根据权利要求1所述的一种基于抽象语法树的开源软件缺陷数据分类方法,其特征在于,所述生成所述软件缺陷源代码信息的抽象语法树,并确定所述抽象语法树的修改行为信息,具体包括:
采用树差异对比器分别生成缺陷修复前的代码文件的抽象语法树和缺陷修复后的代码文件的抽象语法树;
采用比较器对所述缺陷修复前的代码文件的抽象语法树和所述缺陷修复后的代码文件的抽象语法树进行差分对比分析,生成抽象语法树的修改行为信息。
3.根据权利要求1所述的一种基于抽象语法树的开源软件缺陷数据分类方法,其特征在于,所述基于所述修改行为信息中的修改节点识别有意义节点,具体包括:
生成所有修改节点的父节点组;一个所述修改节点对应一组父节点组;
采用树结构自底向上遍历的方式确定各所述父节点组中节点属性为设定分类依据属性的节点;
将所述修改节点和各所述父节点组中节点属性为设定分类依据属性的节点确定为有意义节点。
4.根据权利要求3所述的一种基于抽象语法树的开源软件缺陷数据分类方法,其特征在于,所述设定分类依据属性包括数据的定义声明和初始化、数据的赋值、数学计算与逻辑计算、方法与接口调用、方法定义与声明、条件控制结构、循环控制结构、异常处理结构、同步异步结构以及不纳入。
5.根据权利要求1所述的一种基于抽象语法树的开源软件缺陷数据分类方法,其特征在于,所述基于所述有意义节点和所述有意义节点的行为名称识别潜在节点和潜在行为名称,具体包括:
依据潜在节点规则确定所述有意义节点中的潜在节点;
依据潜在行为名称规则对所述潜在节点的行为名称进行更改,得到潜在行为名称。
6.根据权利要求5所述的一种基于抽象语法树的开源软件缺陷数据分类方法,其特征在于,所述依据潜在节点规则确定所述有意义节点中的潜在节点,具体包括:
根据节点属性判断当前节点是否为第一设定节点,得到第一判断结果;所述第一设定节点为包含潜在节点的程度大于第一设定值的节点;所述当前节点为所述有意义节点中的一个节点;
创建当前节点的所有父节点,并根据节点属性判断当前节点的所有父节点中是否存在目标节点,得到第二判断结果;所述目标节点为成为潜在节点的程度大于第二设定阈值的节点;
自...
【专利技术属性】
技术研发人员:艾骏,许嘉熙,陈世嘉,施韬,邵义康,
申请(专利权)人:北京航空航天大学,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。