一种基于开源软件缺陷代码修改模式的缺陷信息提取方法技术

技术编号:11572583 阅读:121 留言:0更新日期:2015-06-10 03:18
本发明专利技术是一种基于开源软件缺陷代码修改模式的缺陷信息提取方法,用于提取开源软件演化过程中的缺陷信息。本方法分析开源软件在演化过程中的缺陷信息,特别是代码的变更情况,总结归纳出缺陷代码修改模式;获取待测开源软件演化过程的变更代码信息,将变更代码信息与缺陷代码修改模式进行对比;根据变更代码信息与缺陷代码修改模式的匹配度来确定其是否包含缺陷信息,并提取出缺陷代码。本发明专利技术能够从开源软件演化信息中提取大量的缺陷代码样例,为软件缺陷的分析提供了可用的数据支持。

【技术实现步骤摘要】
一种基于开源软件缺陷代码修改模式的缺陷信息提取方法
本专利技术应用于软件缺陷分析领域,是一种基于开源软件缺陷代码修改模式的缺陷信息提取方法。
技术介绍
随着现代信息技术的发展,计算机软件的应用已经扩展到经济、国防的各个部门,在航空、航天、核能、通讯等关键领域的应用也日益广泛,这些部门或领域都需要日益复杂的软件来维持其正常的工作。软件一旦产生失效,就会对这些工作带来严重的后果,在某些高危系统中甚至会导致灾难性的后果。软件缺陷是导致软件失效的根本原因,对软件缺陷的研究可以提升软件质量。由于缺陷的数目和种类都很多,需要采集足够数量的软件缺陷数据,采用合适的缺陷分析方法,才能对软件缺陷进行深入研究。近年来,开源软件网站的发展汇集了大量的高水平编程人员,开源软件的数量也越来越多。这些开源软件或通过个人努力或通过集体开发不断更新,逐步完善,积累了大量与软件缺陷相关的历史信息,即版本演化信息。这些信息通常包含软件各版本的源代码,更改的文本记录和变更代码等,能一定程度上反映软件的状态,为后续开发工作提供指导。因此,开源软件的演化过程信息可作为软件缺陷分析研究的数据来源,而现在对开源软件缺陷信息的分析还很少,因此可以借鉴相关的软件缺陷分析方法对开源软件信息进行分析,并采集缺陷数据。软件缺陷模式是对软件中出现的重复或类似的缺陷进行抽象得出的规律描述。对已有软件缺陷的分析可知,很大数量的缺陷是重复的,或表现形式相同,或产生原因近似,即缺陷及其产生过程遵循一定的规律。通过对其规律的总结与归纳,可获取软件的缺陷模式。利用软件缺陷模式可避免类似缺陷的引入及发现类似的缺陷。开源软件演化过程的变更代码信息也遵循一定的更改规律,可以通过对这些规律的总结归纳得到其缺陷代码修改模式,从而获取开源软件中的缺陷信息。因此,可以对开源软件演化过程信息进行分析,提取出其中的缺陷信息及缺陷代码样例,一方面能够为软件缺陷分析提供数据基础,另一方面提出了一种获取软件缺陷信息的新途径,在一定程度上促进了软件缺陷研究领域的研究工作。
技术实现思路
本专利技术针对目前软件缺陷数据较少,且开源软件演化过程信息未得到充分利用的情况,提出了一种基于开源软件缺陷代码修改模式的缺陷信息提取方法。本专利技术提出的一种基于开源软件缺陷代码修改模式的缺陷信息提取方法,包括以下步骤:步骤1:根据开源软件演化过程信息,提取缺陷代码修改模式;根据其变更代码的增删情况,归纳该类缺陷代码修改模式的缺陷特征项,针对单行语句的特征提出基础缺陷特征项,针对多行语句间的关系提出对比缺陷特征项。基础缺陷特征项包括代码增删标识、关键词、操作符和语句类型;对比缺陷特征项包括语句操作数变更、语句操作符变更、函数调用参数变更、以及控制语句内容变更。将缺陷代码修改模式信息以xml形式存储。步骤2:分析待测的开源软件的变更代码信息,获取各行代码的信息,包括代码编号、增删标志、关键词、操作符、语句类型及语句内容。步骤3:将变更代码信息与缺陷代码修改模式进行匹配,包括基础缺陷特征项匹配和对比缺陷特征项进行匹配。根据匹配结果从变更代码信息中提取出符合缺陷代码修改模式的缺陷代码样例。本专利技术与现有技术相比,具有以下明显优势:本专利技术提出的缺陷信息提取方法,能够针对开源软件的演化过程,根据其缺陷信息变更代码的特征进行分析,是通过比较各版本间的变更差异进行直接分析,所提出的缺陷代码修改模式与传统的软件缺陷模式有一定区别;通过该方法能够有效地提取出开源软件演化信息中的类似的缺陷信息,且能实现自动化的采集工作。能够为软件缺陷分析提供数据支持。附图说明图1是本专利技术开源软件缺陷信息提取方法的整体步骤示意图;图2是本专利技术的缺陷代码修改模式的xml表示示意图;图3是本专利技术的开源软件变更代码信息分析流程示意图;图4是本专利技术的缺陷代码修改模式匹配流程示意图。具体实施方式为了便于本领域普通技术人员理解和实施本专利技术,下面结合附图对本专利技术作进一步的详细描述。本专利技术针对软件缺陷分析中缺陷数据不足,同时开源软件演化过程包含大量缺陷信息这一情况,在借鉴软件缺陷分类,软件缺陷模式等软件缺陷分析方法的基础上,提出了基于开源软件缺陷代码修改模式的缺陷信息提取方法,根据对开源软件演化过程中的缺陷更改形式的归纳总结,得到其缺陷代码的修改模式,然后获取演化信息中变更代码的相关内容,将其与已有的缺陷代码修改模式进行匹配,从开源软件演化信息的变更代码中提取出缺陷代码样例信息。本专利技术基于开源软件缺陷代码修改模式的缺陷信息提取方法主要由三个部分构成:开源软件缺陷代码修改模式的获取,开源软件演化过程变更代码的分析,以及开源软件缺陷代码的提取。在基于开源软件缺陷代码修改模式的缺陷信息提取过程中,对缺陷代码修改模式的定义如下:缺陷代码修改模式是指在开源软件演化过程信息中重复出现的具有一定规律的缺陷代码修改形式的统一描述。基于开源软件缺陷代码修改模式的缺陷信息提取方法如图1所示,主要包括三个步骤:开源软件缺陷代码修改模式的提取,开源软件变更代码的分析,开源软件缺陷代码样例的提取,下面详细介绍每一步骤。步骤1:开源软件缺陷代码修改模式的提取,是指对开源软件演化过程中缺陷信息的变更代码内容进行分析和其规律的归纳总结,得到其缺陷代码修改模式的过程。根据开源软件缺陷信息的变更代码的增删情况,归纳该类缺陷代码修改模式的缺陷特征项,针对单行语句的特征提出基础缺陷特征项,针对多行语句间的关系提出对比缺陷特征项。并将缺缺陷代码修改模式信息以xml形式存储开源软件缺陷信息的变更代码给出了对该次变更的代码增删等修改情况。若有多个变更代码的内容都出现相同形式的变更,则认为其属于同一类型的代码修改方式,结合对这些缺陷变更的文本描述,对其进行抽象归纳可得到缺陷代码修改模式。开源软件缺陷代码修改模式内容包括缺陷代码修改模式的名称,缺陷代码修改模式的描述以及缺陷特征项。1)缺陷代码修改模式的名称,它是对该类缺陷信息代码修改规律的总结,指出该类缺陷信息的主要特征。2)缺陷代码修改模式的描述,它是对开源软件缺陷进行修改的原因和修改过程的描述,便于工作人员对该类缺陷代码修改模式的初步了解。3)缺陷特征项,它是对缺陷代码修改内容的具体阐释,表明了该类代码更改的主要内容和具体修改方式,是缺陷代码匹配的主要依据。缺陷特征项包括基础缺陷特征项和对比缺陷特征项两部分。a)基础缺陷特征项,它是缺陷代码修改模式中单行代码的特征。包括代码增删标识,关键词,操作符,语句类型4项信息。其中,代码增删标识提供了该行代码的改动情况,包括增添代码,删除代码,不变和其它;关键词和操作符提供了该行代码出现的关键词和操作符信息,如“if”,“else”,“=”等;语句类型包含编程语言中常见的声明语句,表达式语句,函数语句,控制语句等基本语句类型,以及空语句、注释语句、说明信息等其它语句类型。b)对比缺陷特征项,它是两行或多行语句间的比较特征。主要有语句操作数变更,语句操作符变更,函数调用参数变更,控制语句内容变更等信息。对上述内容采用XML格式文档表示缺陷代码修改模式信息。图2是对缺陷代码修改模式的表示。通过XML形式的缺陷代码修改模式文档的半结构化描述,可以了解缺陷修改模式名称信息、描述信息和缺陷特征项信息。图2中,Name记录缺陷代码修改模本文档来自技高网
...
一种基于开源软件缺陷代码修改模式的缺陷信息提取方法

【技术保护点】
一种基于开源软件缺陷代码修改模式的缺陷信息提取方法,其特征在于,实现步骤为:步骤1:根据开源软件演化过程信息,提取缺陷代码修改模式;缺陷代码修改模式中,针对单行语句的特征提出基础缺陷特征项,针对两行以上语句间的比较特征提出对比缺陷特征项;基础缺陷特征项包括代码增删标识、关键词、操作符和语句类型;对比缺陷特征项包括语句操作数变更、语句操作符变更、函数调用参数变更、以及控制语句内容变更;步骤2:分析待测开源软件的变更代码信息,获取各行代码的信息,包括代码编号、增删标志、关键词、操作符、语句类型及语句内容;步骤3:将变更代码信息与缺陷代码修改模式进行匹配,包括基础缺陷特征项匹配和对比缺陷特征项进行匹配;根据匹配结果从变更代码信息中提取出符合缺陷代码修改模式的缺陷代码样例。

【技术特征摘要】
1.一种基于开源软件缺陷代码修改模式的缺陷信息提取方法,其特征在于,实现步骤为:步骤1:根据开源软件演化过程信息,提取缺陷代码修改模式;缺陷代码修改模式中,针对单行语句的特征提出基础缺陷特征项,针对两行以上语句间的比较特征提出对比缺陷特征项;基础缺陷特征项包括代码增删标识、关键词、操作符和语句类型;对比缺陷特征项包括语句操作数变更、语句操作符变更、函数调用参数变更、以及控制语句内容变更;步骤2:分析待测开源软件的变更代码信息,获取各行代码的信息,包括代码编号、增删标志、关键词、操作符、语句类型及语句内容;对待测开源软件的变更代码信息进行逐行分析,首先为该行代码进行编号,记录该编号值,然后获取其增删标识符、关键词和操作符,再根据语句中的内容判定语句类型和语句内容;步骤3:将变更代码信息与缺陷代码修改模式进行匹配,包括基础缺陷特征项匹配和对比缺陷特征项进行匹配;根据匹配结果从变更代码信息中提取出符合缺陷代码修改模式的缺陷代码样例。2.根据权利要求1所述的一种基于开源软件缺陷代码修改模式的缺陷信息提取方法,其特征在于,步骤1中所述的缺陷代码修改模式包括缺陷代码修改模式的名称、缺陷代码修改模式的描述以及缺陷特征项;缺陷特征项包括基础缺陷特征项和对比缺陷特征项,并以xml形式存储。3.根据权利要求1所述的一种基于开源软件缺陷代码修改模式的缺陷信息提取方法,其特征在于,所述的步骤2中,获取语句类型和语句内容的步骤如下:1)根据特殊识别符判定该行代码是否为说明内容,若是则该行代码的语句类型为说明...

【专利技术属性】
技术研发人员:艾骏裴翰宇黄麟植刘洋张少雄杨雨薇
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1