当前位置: 首页 > 专利查询>扬州大学专利>正文

基于多源软件数据分析的特征定位方法技术

技术编号:9967462 阅读:280 留言:0更新日期:2014-04-25 07:48
本发明专利技术公开了软件工程技术领域内的一种基于多源软件数据分析的特征定位方法,旨在解决现有技术中特征定位结果不精确、不完整的技术问题。本发明专利技术结合了信息检索技术、数据挖掘技术和动态分析技术分别对当前软件系统、演化历史库和执行轨迹进行了特征定位,并对三种技术特征定位的结果进行交集运算得出最终特征定位结果,实现了基于多源软件数据分析的特征定位,具有更高的准确性、完整性和高效性;且本发明专利技术所采用的三项技术成熟度较高,使得本发明专利技术易于操作实现。本发明专利技术可用于类层次、方法层次的特征定位,可结合成本分析等现实情况,选择相应的粒度层次进行特征定位,为实际多粒度层次特征定位提供了灵活的选择框架。

【技术实现步骤摘要】
【专利摘要】本专利技术公开了软件工程
内的一种,旨在解决现有技术中特征定位结果不精确、不完整的技术问题。本专利技术结合了信息检索技术、数据挖掘技术和动态分析技术分别对当前软件系统、演化历史库和执行轨迹进行了特征定位,并对三种技术特征定位的结果进行交集运算得出最终特征定位结果,实现了基于多源软件数据分析的特征定位,具有更高的准确性、完整性和高效性;且本专利技术所采用的三项技术成熟度较高,使得本专利技术易于操作实现。本专利技术可用于类层次、方法层次的特征定位,可结合成本分析等现实情况,选择相应的粒度层次进行特征定位,为实际多粒度层次特征定位提供了灵活的选择框架。【专利说明】
本专利技术涉及一种特征定位方法,特别涉及一种,属于软件工程

技术介绍
随着信息社会对软件依赖的与日俱增,用户对已有软件系统的要求越来越高、越来越多,因此就需要不断对软件系统进行升级和维护,而这些升级和维护的修改请求通常也称之为某个特征。在软件系统中,一个特征可代表一种功能,这种功能是按照开发者和使用者的要求和可接受度来定义的。软件维护与演化可能包括各种修改活动,如增加新的功能、改进现有功能和修复漏洞。确定一个已知的特殊功能在源代码中的位置叫做特征定位。特征定位的过程是:确定初始节点;选择下一个要访问的节点;访问该节点;判断该节点是否与所调查的特征相关;检查是否己经得到了所有相关的节点。在当前软件中实施某个修改请求,首先要准确找到修改请求的初始节点,如果无法找到该特征位置,则整个修改过程无法顺利完成。目前的特征定位研究主要包括基于程序静态结构的特征定位方法和基于程序动态剖面的特征定位方法。这两种方法仅通过静态分析目标程序和通过动态分析目标代码来进行特征定位,对目标程序的历史修改信息等一些重要的特征信息无法监测,导致特征定位的准确性和全面性降低。另外,软件数据不仅包括静态信息和动态信息,还包括软件演化的过程信息,如果只使用其中的某一类型的信息可能会导致特征定位结果的不精确和不完難iF.0现有技术中有一种Java平台调试体系结构,英文全称为:Java PlatformDebugger Architecture,缩写为JPDA。JPDA是虚拟机的一整套用于调试的工具和接口,通过JPDA提供的接口和协议,调试器开发人员就能根据特定开发者的需求,扩展定制Java调试应用程序,开发出吸引开发人员使用的调试工具。JPDA主要由三个部分构成:1、Java虚拟机工具接口(JVMTI):定义虚拟机(VM)在调试时必须提供的服务,包括调试信息(如栈信息)、调试行为(如客户端设置一个断点)和通知(如到达某个断点时通知客户端);2、Java调试线协议(JDWP):定义在调试过程和调试器前端之间传输的信息和请求的格式;3、Java调试接口(JDI):定义了调试者可以使用的调试接口,以方便与远程的调试服务进行交互。现有技术中还有一种测试工具和性能工具平台,英文全称为:Test andPerformance Tools Platform,缩写为 TPTP。TPTP 是 Eclipse 基金会的一个顶级项目,提供了一套功能全面的开源测试和性能工具,覆盖了整个测试和性能生命周期,从早期的测试到生产应用程序的监视,包括测试编写和执行、监视、跟踪和分析以及日志分析特性。
技术实现思路
本专利技术的目的是提供一种,解决了现有技术中仅对单一类型的特征信息进行分析挖掘,导致特征定位结果不精确、不完整的技术问题。本专利技术的目的是这样实现的:,包括以下步骤: 步骤一:通过信息检索技术对当前软件系统进行检索:查询当前软件系统的源代码中与所述当前修改请求相关的程序代码,将所述程序代码记为特征信息a ; 步骤二:通过数据挖掘技术挖掘历史演化信息:查询演化历史库中与所述当前修改请求相关的历史修改请求,对相关的历史修改请求中的修改元素进行并集运算,输出的程序代码记为特征信息b ; 步骤三:通过动态分析技术分析执行轨迹,所述执行轨迹包含有标记执行信息和完整执行信息,将完整执行信息与标记执行信息进行减法运算,输出结果记为待定执行信息;然后对待定执行信息进行静态分析,得到待定执行信息中与所述当前修改请求相关的信息集,对所述信息集、标记执行信息进行并集运算,输出的程序代码记为特征信息c ; 步骤四:对a、b、c三种特征信息进行交集计算,输出特征定位结果m。所述信息检索技术的检索步骤如下: a)建立语料库:定义文件粒度并建立所述文件粒度层次的语料库; b)自然语言处理:利用自然语言处理技术对所述语料库实施预处理,所述预处理包括:删除源代码操作符和编程语言关键字、分离标识符和复合词组、裁剪词干为词根; c)索引语料库:检索语料库中包含所述当前修改请求的关键字的源代码。所述标记执行信息的收集采用JPDA技术,所述完整执行信息的收集采用TPTP技术。与现有技术相比,本专利技术的有益效果是:1、结合了信息检索技术、数据挖掘技术和动态分析技术分别对当前软件系统、演化历史库和执行轨迹进行了特征定位,实现了基于多源软件数据分析的特征定位,相对于现有技术中仅对单一类型的信息进行特征定位的方法,本专利技术的特征定位结果具有更高的准确性、完整性和高效性;2、本专利技术所采用的信息检索、数据挖掘和动态分析三项技术的成熟度较高,使得本专利技术易于操作实现;3、本专利技术可用于类层次、方法层次的特征定位,可结合成本分析等现实情况,选择相应的粒度层次进行特征定位,为实际多粒度层次特征定位提供了灵活的选择框架。【专利附图】【附图说明】图1为本专利技术的流程图。图2为本专利技术信息检索技术工作原理方框图。图3为本专利技术数据挖掘技术工作原理方框图。图4为本专利技术动态分析技术工作原理方框图。【具体实施方式】下面结合附图对本专利技术作进一步详细描述。如图1所示,,包括以下步骤: 构建基于多源软件数据分析特征定位模型:设定一个四元组< m,a,b,c >,其中为最终特征定位结果,a、b、c分别是从三种不同数据源中提取的特征信息。特征信息a的定位方法如下:通过信息检索技术对当前软件系统进行检索,查询当前软件系统的源代码中与当前修改请求相关的程序代码,将程序代码记为特征信息a。如图2所示,为本专利技术信息检索技术工作原理方框图。信息检索技术的具体检索步骤如下: a)建立语料库:定义文件粒度并建立文件粒度层次的语料库。定义的文件粒度可以是包、类、方法; b)自然语言处理:利用自然语言处理技术对语料库实施预处理,预处理包括:删除源代码操作符和编程语言关键字,分离标识符和复合词组,例如:将“impactAnalysis”分离为“impact”和“Analysis” ;裁剪词干为词根,例如:将“impacted”裁剪为“impact” ; c)索引语料库:检索语料库中包含当前修改请求的关键字的源代码,设该源代码为:el、e2、e4、e6、e8、elO,则特征信息 a={ el、e2、e4、e6、e8、elO}。特征信息b的定位方法如下:通过数据挖掘技术挖掘历史演化信息。如图3所示为本专利技术数据挖掘技术工作原理方框图。首先从演化历史库中提取历史修改请求并对历史修改请求进行信息集成,假设信息集成后,历史修改请求和与其对应的修改元素如表1所示:【权利要求本文档来自技高网
...

【技术保护点】
基于多源软件数据分析的特征定位方法,其特征在于,包括以下步骤:步骤一:通过信息检索技术对当前软件系统进行检索:查询当前软件系统的源代码中与所述当前修改请求相关的程序代码,将所述程序代码记为特征信息a;步骤二:通过数据挖掘技术挖掘历史演化信息:查询演化历史库中与所述当前修改请求相关的历史修改请求,对相关的历史修改请求中的修改元素进行并集运算,输出的程序代码记为特征信息b;步骤三:通过动态分析技术分析执行轨迹,所述执行轨迹包含有标记执行信息和完整执行信息,将完整执行信息与标记执行信息进行减法运算,输出结果记为待定执行信息;然后对待定执行信息进行静态分析,得到待定执行信息中与所述当前修改请求相关的信息集,对所述信息集、标记执行信息进行并集运算,输出的程序代码记为特征信息c;步骤四:对a、b、c三种特征信息进行交集计算,输出特征定位结果m。

【技术特征摘要】

【专利技术属性】
技术研发人员:孙小兵吴鹏李云
申请(专利权)人:扬州大学
类型:发明
国别省市:

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

1