[go: up one dir, main page]

CN103744788B - 基于多源软件数据分析的特征定位方法 - Google Patents

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

Info

Publication number
CN103744788B
CN103744788B CN201410031303.XA CN201410031303A CN103744788B CN 103744788 B CN103744788 B CN 103744788B CN 201410031303 A CN201410031303 A CN 201410031303A CN 103744788 B CN103744788 B CN 103744788B
Authority
CN
China
Prior art keywords
information
feature location
technology
execution information
feature
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201410031303.XA
Other languages
English (en)
Other versions
CN103744788A (zh
Inventor
孙小兵
吴鹏
李云
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yangzhou Gezhi Photoelectric Technology Co ltd
Original Assignee
Yangzhou University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yangzhou University filed Critical Yangzhou University
Priority to CN201410031303.XA priority Critical patent/CN103744788B/zh
Publication of CN103744788A publication Critical patent/CN103744788A/zh
Application granted granted Critical
Publication of CN103744788B publication Critical patent/CN103744788B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Abstract

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

Description

基于多源软件数据分析的特征定位方法
技术领域
本发明涉及一种特征定位方法,特别涉及一种基于多源软件数据分析的特征定位方法,属于软件工程技术领域。
背景技术
随着信息社会对软件依赖的与日俱增,用户对已有软件系统的要求越来越高、越来越多,因此就需要不断对软件系统进行升级和维护,而这些升级和维护的修改请求通常也称之为某个特征。在软件系统中,一个特征可代表一种功能,这种功能是按照开发者和使用者的要求和可接受度来定义的。软件维护与演化可能包括各种修改活动,如增加新的功能、改进现有功能和修复漏洞。确定一个已知的特殊功能在源代码中的位置叫做特征定位。特征定位的过程是:确定初始节点;选择下一个要访问的节点;访问该节点;判断该节点是否与所调查的特征相关;检查是否己经得到了所有相关的节点。在当前软件中实施某个修改请求,首先要准确找到修改请求的初始节点,如果无法找到该特征位置,则整个修改过程无法顺利完成。
目前的特征定位研究主要包括基于程序静态结构的特征定位方法和基于程序动态剖面的特征定位方法。这两种方法仅通过静态分析目标程序和通过动态分析目标代码来进行特征定位,对目标程序的历史修改信息等一些重要的特征信息无法监测,导致特征定位的准确性和全面性降低。另外,软件数据不仅包括静态信息和动态信息,还包括软件演化的过程信息,如果只使用其中的某一类型的信息可能会导致特征定位结果的不精确和不完整。
现有技术中有一种Java平台调试体系结构,英文全称为:Java Platform Debugger Architecture,缩写为JPDA。JPDA是虚拟机的一整套用于调试的工具和接口,通过JPDA 提供的接口和协议,调试器开发人员就能根据特定开发者的需求,扩展定制 Java 调试应用程序,开发出吸引开发人员使用的调试工具。JPDA主要由三个部分构成:1、Java虚拟机工具接口(JVMTI):定义虚拟机(VM)在调试时必须提供的服务,包括调试信息(如栈信息)、调试行为(如客户端设置一个断点)和通知(如到达某个断点时通知客户端);2、Java调试线协议(JDWP):定义在调试过程和调试器前端之间传输的信息和请求的格式;3、Java调试接口(JDI):定义了调试者可以使用的调试接口,以方便与远程的调试服务进行交互。
现有技术中还有一种测试工具和性能工具平台,英文全称为:Test and Performance 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﹥,其中,m为最终特征定位结果,a、b、c分别是从三种不同数据源中提取的特征信息。
特征信息a的定位方法如下:通过信息检索技术对当前软件系统进行检索,查询当前软件系统的源代码中与当前修改请求相关的程序代码,将程序代码记为特征信息a。
如图2所示,为本发明信息检索技术工作原理方框图。信息检索技术的具体检索步骤如下:
a)建立语料库:定义文件粒度并建立文件粒度层次的语料库。定义的文件粒度可以是包、类、方法;
b)自然语言处理:利用自然语言处理技术对语料库实施预处理,预处理包括:删除源代码操作符和编程语言关键字,分离标识符和复合词组,例如:将“impactAnalysis”分离为“impact”和“Analysis”;裁剪词干为词根,例如:将“impacted”裁剪为“impact”;
c)索引语料库:检索语料库中包含当前修改请求的关键字的源代码,设该源代码为:e1、e2、e4、e6、e8、e10,则特征信息a={ e1、e2、e4、e6、e8、e10}。
特征信息b的定位方法如下:通过数据挖掘技术挖掘历史演化信息。如图3所示为本发明数据挖掘技术工作原理方框图。首先从演化历史库中提取历史修改请求并对历史修改请求进行信息集成,假设信息集成后,历史修改请求和与其对应的修改元素如表1所示:
然后,查询演化历史库中与当前修改请求相关的历史修改请求,即对历史修改请求、当前修改请求进行相似度矩阵运算;最后,对相关的历史修改请求中的修改元素进行并集运算,输出的程序代码记为特征信息b。设历史修改请求c2和c5与当前修改请求相关,则特征信息b=c2∪c5={ e2、e3、e5、e7、 e4、e12}。
特征信息c的定位方法如下:通过动态分析技术分析执行轨迹,如图4所示为本发明动态分析技术工作原理方框图。首先,采用JPDA技术收集标记执行信息,采用TPTP技术收集完整执行信息,将完整执行信息与标记执行信息进行减法运算,输出结果记为待定执行信息;然后对待定执行信息进行静态分析,得到待定执行信息中与当前修改请求相关的信息集,对信息集、标记执行信息进行并集运算,输出的程序代码记为特征信息c。假设标记执行信息为g1={ e1、e3、e4},完整执行信息为g2={ e1、e2、e3、e4、e5、e6、e7、e8 },则待定执行信息g3=g2-g1={ e2、e5、e6、e7、e8},对g3进行静态分析,得到g3中与当前修改请求相关的信息集g4,设g4={ e2、e5},对g1和g4进行并集运算得到特征信息c,则特征信息c= g1∪g4={e1、e2、e3、e4、 e5}。
特征定位结果m的计算方法如下:对a、b、c三种特征信息进行交集计算,输出特征定位结果m,即m=a∩b∩c={ e1、e2、e4、e6、e8、e10}∩{ e2、e3、e5、e7、 e4、e12}∩{e1、e2、e3、e4、 e5}={ e2、e4}。
本发明并不局限于上述实施例,如:特征信息a、特征信息b、特征信息c三者的定位操作步骤不存在先后顺序,可以互相颠倒。在本发明公开的技术方案的基础上,本领域的技术人员根据所公开的技术内容,不需要创造性的劳动就可以对其中的一些技术特征作出一些替换和变形,这些替换和变形均在本发明的保护范围内。

Claims (3)

1.基于多源软件数据分析的特征定位方法,其特征在于,包括以下步骤:
步骤一:通过信息检索技术对当前软件系统进行检索:查询当前软件系统的源代码中与当前修改请求相关的程序代码,将所述程序代码记为特征信息a;
步骤二:通过数据挖掘技术挖掘历史演化信息:查询演化历史库中与当前修改请求相关的历史修改请求,对相关的历史修改请求中的修改元素进行并集运算,输出的程序代码记为特征信息b;
步骤三:通过动态分析技术分析执行轨迹,所述执行轨迹包含有标记执行信息和完整执行信息,将完整执行信息与标记执行信息进行减法运算,输出结果记为待定执行信息;然后对待定执行信息进行静态分析,得到待定执行信息中与所述当前修改请求相关的信息集,对所述信息集、标记执行信息进行并集运算,输出的程序代码记为特征信息c;
步骤四:对a、b、c三种特征信息进行交集计算,输出特征定位结果m。
2.根据权利要求1所述的基于多源软件数据分析的特征定位方法,其特征在于,所述信息检索技术的检索步骤如下:
a)建立语料库:定义文件粒度并建立所述文件粒度层次的语料库;定义的文件粒度为包、类或方法;
b)自然语言处理:利用自然语言处理技术对所述语料库实施预处理,所述预处理包括:删除源代码操作符、删除编程语言关键字、分离标识符、分离复合词组以及裁剪词干为词根;
c)索引语料库:检索语料库中包含所述当前修改请求的关键字的源代码。
3.根据权利要求1所述的基于多源软件数据分析的特征定位方法,其特征在于,所述标记执行信息的收集采用JPDA技术,所述完整执行信息的收集采用TPTP技术。
CN201410031303.XA 2014-01-22 2014-01-22 基于多源软件数据分析的特征定位方法 Expired - Fee Related CN103744788B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410031303.XA CN103744788B (zh) 2014-01-22 2014-01-22 基于多源软件数据分析的特征定位方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410031303.XA CN103744788B (zh) 2014-01-22 2014-01-22 基于多源软件数据分析的特征定位方法

Publications (2)

Publication Number Publication Date
CN103744788A CN103744788A (zh) 2014-04-23
CN103744788B true CN103744788B (zh) 2016-08-31

Family

ID=50501807

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410031303.XA Expired - Fee Related CN103744788B (zh) 2014-01-22 2014-01-22 基于多源软件数据分析的特征定位方法

Country Status (1)

Country Link
CN (1) CN103744788B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017517821A (ja) * 2014-06-13 2017-06-29 ザ・チャールズ・スターク・ドレイパー・ラボラトリー・インコーポレイテッド ソフトウェアアーチファクトのデータベースのためのシステム及び方法
CN105930162B (zh) * 2016-04-24 2019-05-03 复旦大学 一种基于子图搜索的特征定位方法
CN107491299B (zh) * 2017-07-04 2021-09-10 扬州大学 面向多源软件开发数据融合的开发者画像建模方法
CN107832781B (zh) * 2017-10-18 2021-09-14 扬州大学 一种面向多源数据的软件缺陷表示学习方法
CN112699253B (zh) * 2019-10-23 2024-10-01 广州彩熠灯光股份有限公司 源代码定位方法、系统、介质及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102508767A (zh) * 2011-09-30 2012-06-20 东南大学 一种基于形式概念分析的软件维护方法
CN103136332A (zh) * 2013-01-28 2013-06-05 福州新锐同创电子科技有限公司 一种知识点制作、管理、检索的实现方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070260628A1 (en) * 2006-05-02 2007-11-08 Tele Atlas North America, Inc. System and method for providing a virtual database environment and generating digital map information

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102508767A (zh) * 2011-09-30 2012-06-20 东南大学 一种基于形式概念分析的软件维护方法
CN103136332A (zh) * 2013-01-28 2013-06-05 福州新锐同创电子科技有限公司 一种知识点制作、管理、检索的实现方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
软件演化过程中运行实例的在线可信演化;杨帅等;《计算机应用研究》;20131130;全文 *

Also Published As

Publication number Publication date
CN103744788A (zh) 2014-04-23

Similar Documents

Publication Publication Date Title
CN103092761B (zh) 基于差异信息文件识别和检查修改代码块的方法及装置
CN103744788B (zh) 基于多源软件数据分析的特征定位方法
WO2020233015A1 (zh) 一种链路跟踪方法及装置
Saha et al. Evaluating code clone genealogies at release level: An empirical study
Zanjani et al. Impact analysis of change requests on source code based on interaction and commit histories
CN102750223B (zh) 一种基于面向对象程序切片谱的错误定位方法
CN103020494B (zh) 一种利用程序代码编程模式著作权归属检测模型检测著作权归属的方法
CN110554954B (zh) 一种结合静态依赖和动态执行规则的测试用例选择方法
CN110532019A (zh) 一种软件代码片段历史追溯的方法
CN107016018B (zh) 数据库索引创建方法及装置
CN106293891B (zh) 多维投资指标监督方法
CN107844414A (zh) 一种基于缺陷报告分析的跨项目、并行化缺陷定位方法
CN105095091A (zh) 一种基于倒排索引技术的软件缺陷代码文件定位方法
CN105824756A (zh) 一种基于代码依赖关系的过时需求自动检测方法及系统
Wang et al. Smart contract vulnerability detection using code representation fusion
CN108509338A (zh) 一种基于多层次变更分析的软件演化评估系统及方法
CN107992426A (zh) 一种基于频繁子图挖掘的软件错误定位方法及处理装置
CN113609008B (zh) 测试结果分析方法、装置和电子设备
Ishio et al. Cloned buggy code detection in practice using normalized compression distance
CN116132499B (zh) 调用链的压缩方法、装置、计算机设备及存储介质
CN112699011A (zh) 统计增量代码覆盖率的方法、装置及电子设备、存储介质
CN111913874B (zh) 一种基于语法结构变更分析的软件缺陷溯源方法
CN107220175A (zh) 应用程序死循环定位方法、装置、计算机设备和存储介质
CN103455417B (zh) 一种基于马尔可夫模型的软件错误定位系统及错误定位方法
CN104063245A (zh) 基于垃圾回收的内存分析优化方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210528

Address after: Yangzhou xiaonaxiong robot Co., Ltd., 3 / F, building 9, 20 Hongyang Road, Yangzhou Economic Development Zone, Jiangsu Province, 225000

Patentee after: Yangzhou xiaonaxiong robot Co.,Ltd.

Address before: 225009 No. 88, South University Road, Jiangsu, Yangzhou

Patentee before: YANGZHOU University

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210709

Address after: Yangzhou Gezhi Optoelectronic Technology Co., Ltd., 2601, 217 Kaifa West Road, high tech Industrial Development Zone, Yangzhou City, Jiangsu Province, 225000

Patentee after: Yangzhou Gezhi Photoelectric Technology Co.,Ltd.

Address before: Yangzhou xiaonaxiong robot Co., Ltd., 3 / F, building 9, 20 Hongyang Road, Yangzhou Economic Development Zone, Jiangsu Province, 225000

Patentee before: Yangzhou xiaonaxiong robot Co.,Ltd.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160831