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

一种结合用户反馈和代码依赖的软件可追踪生成方法技术

技术编号:18783492 阅读:34 留言:0更新日期:2018-08-29 06:51
本发明专利技术公开了一种结合用户反馈和代码依赖的软件可追踪生成方法,该方法包括:步骤1、获得目标软件中存在的代码依赖;步骤2、计算代码依赖紧密度,设定紧密度阈值生成代码依赖域;步骤3、基于信息检索方法,产生需求到代码的初始候选列表;步骤4、根据用户反馈和代码依赖优化候选列表。本发明专利技术通过结合用户反馈和代码依赖信息,弥补了信息检索方法存在的单词失配问题。本发明专利技术只需用户判断少量候选线索的相关性。相对于传统信息检索方法,本发明专利技术生成的候选列表准确率和召回率均有大幅度提升。

【技术实现步骤摘要】
一种结合用户反馈和代码依赖的软件可追踪生成方法
本专利技术涉及一种结合用户反馈和代码依赖的软件可追踪生成方法,属于计算机软件维护
,能够高效、自动化且准确地找出软件实体之间的追踪关系。
技术介绍
在软件维护过程中,软件实体之间的追踪线索是一项宝贵的资源。软件实体之间的追踪线索能够提供高层软件实体例如用例和底层软件实体例如源代码之间的追踪关系。但是获取软件实体之间的追踪线索需要耗费大量时间和精力。软件工程师需要阅读并且理解不同的软件实体,才能判断不同的软件实体之间是否存在追踪关系。因此出现了一些半自动化的工具来提高获得追踪线索的效率。目前,基于信息检索的软件可追踪性生成方法,通过计算两个需求实体之间的文本相似度,按照文本相似度自大到小进行排序。但是由于信息检索的方法存在词汇失配的问题,该方法严重依赖于软件实体的文本语料质量;为了解决词汇失配的问题,基于信息检索方法,当前存在一种利用代码实体中代码依赖信息的方法,但是该方法严重依赖信息检索方法本身的效果。
技术实现思路
专利技术目的:针对现有方法的不足,本专利技术的目的是提供一种结合用户反馈和代码依赖的软件可追踪生成方法。与传统信息检索本文档来自技高网...

【技术保护点】
1.一种结合用户反馈和代码依赖的软件可追踪生成方法,其特征在于,包括以下步骤:步骤1,在目标系统中插桩代码依赖捕获工具,运行目标系统,得到目标系统存在的代码依赖,其中代码依赖包括调用依赖和数据依赖;步骤2,计算代码依赖紧密度,设置紧密度阈值,只保留紧密度大于阈值的代码依赖得到调用依赖域和数据依赖域;步骤3,计算需求和代码元素之间的文本相似度,并按照文本相似度值自大到小排序;步骤4,根据用户对未判断代码域的反馈结果和软件本身的代码依赖信息,优化初始候选线索排序表。

【技术特征摘要】
1.一种结合用户反馈和代码依赖的软件可追踪生成方法,其特征在于,包括以下步骤:步骤1,在目标系统中插桩代码依赖捕获工具,运行目标系统,得到目标系统存在的代码依赖,其中代码依赖包括调用依赖和数据依赖;步骤2,计算代码依赖紧密度,设置紧密度阈值,只保留紧密度大于阈值的代码依赖得到调用依赖域和数据依赖域;步骤3,计算需求和代码元素之间的文本相似度,并按照文本相似度值自大到小排序;步骤4,根据用户对未判断代码域的反馈结果和软件本身的代码依赖信息,优化初始候选线索排序表。2.如权利要求1所述的结合用户反馈和代码依赖的软件可追踪生成方法,其特征在于,所述步骤1包含以下步骤:步骤1.1,构造代码依赖捕获工具,将函数进入、返回的记录和由函数引起的数据访问记录保存到本地数据库中;步骤1.2,根据步骤1.1中获取的记录数据,建立函数之间的调用依赖和数据依赖关系;步骤1.3,将函数之间的代码依赖聚合成类之间的代码依赖,一个类所对应的代码依赖由该类中所有函数所对应的代码依赖组合而成;代码依赖图由V和E构成,其中V为顶点集合,V中的元素v表示一个类;E为边的集合,E中的元素e=<source,target>,source,target∈V,对于调用依赖图表示source中发生了对target的调用,对于数据依赖表示source、target访问同一个数据。3.如权利要求1所述的结合用户反馈和代码依赖的软件可追踪生成方法,其特征在于,所述步骤2包括以下步骤:步骤2.1,计算调用依赖紧密度,通过设置紧密度阈值,只保留紧密度大于阈值的调用依赖,从而得到调用依赖域;步骤2.2,计算数据依赖紧密度,通过设置紧密度阈值,只保留紧密度大于阈值的数据依赖,从而得到数据依赖域。4.如权利要求3所述的结合用户反馈和代码依赖的软件可追踪生成方法,其特征在于,对于代码元素之间的调用依赖紧密度,其计算公式为其中N代表类Sink和Source之间存在不同方法调用的数量,WeightedInDegreeSink′代表类Sink被调用的次数,WeightedOutDegreeSource代表类Source调用其它类方法的次数,ClosenessDC的取值范围是0到1的闭区间。5.如权利要求3所述的结合用户反馈和代码依赖的软件可追踪生成方法,其特征在于,对于代码元素之间的数据依赖紧密度,其计算方式为其中N表示捕获的数据依赖总数,ndt表示出现该数据类型的数据依赖个数,idtf(x)代表数据类型x的idtf值,DTi∩DTj代表两个类之间共享的数据类型集合,DTi∩DTj代表两个类访问的所有数据类型集合,ClosenessCD的取值范围是0到1的闭区间。6.如权利要求1所述的结合用户反馈和代码依赖的软件可追踪生成方法,其特征在于,所述步骤3具体包括以下步骤:步骤3.1,对需求文本进行文本预处理,包括移除停用词、词形还原和词干提取;对于代码文本,首先根据命名规...

【专利技术属性】
技术研发人员:匡宏宇胡昊吕建张宗飞
申请(专利权)人:南京大学
类型:发明
国别省市:江苏,32

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

1