[发明专利]一种软件文档中核心代码元素的挖掘方法及系统在审

专利信息
申请号: 201711059029.7 申请日: 2017-11-01
公开(公告)号: CN107943514A 公开(公告)日: 2018-04-20
发明(设计)人: 邹艳珍;曹英魁;谢冰 申请(专利权)人: 北京大学
主分类号: G06F8/73 分类号: G06F8/73
代理公司: 北京君尚知识产权代理事务所(普通合伙)11200 代理人: 邱晓锋
地址: 100871 北*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 软件 文档 核心 代码 元素 挖掘 方法 系统
【说明书】:

技术领域

发明涉及软件文档-代码关联关系追踪领域,尤其涉及一种软件文档中核心代码元素的挖掘方法及系统。

背景技术

长期以来,软件可追踪性研究一直受到广泛的关注。研究者们试图通过挖掘软件代码与各类自然语言文档之间潜在的关联关系,建立软件文档与软件代码的可追踪性关联。这对于程序理解、需求工程、软件维护等多个方面均有重要意义。

现有的软件文档与软件代码关联关系挖掘方法可以分为两类:

一、基于信息检索的方法。该方法基本思想是把软件代码作为查询条件在候选软件文档中进行信息检索,根据相似度排序在满足一定要求(例如相似度阈值或相关程度排名)的软件文档与软件代码之间建立关联。

二、基于程序分析技术的方法。该方法通过识别软件文档中出现的代码元素(例如类名、方法名等),判断其所属的代码单元,并在软件文档和代码单元间建立可追踪性关联。如何基于上下文判断代码元素所属的代码单元(消歧)是该方法的重点。

上述软件文档与软件代码关联关系挖掘方法存在以下问题:

(1)第一类方法受限于软件代码中标识符的命名应该是自解释的,或存在足够的代码注释,对一些软件项目来说效果不能令人满意。一方面是因为这类方法将软件代码当作普通文本处理,在将其转化为特征向量的过程中,损失了大量软件代码特有的结构语义信息;另一方面是因为软件文档和代码中每个特征(代码元素)的重要程度与出现次数基本无关,而信息检索的基础是进行关键字匹配。如果软件文档中没有出现该关键字或关键词的词频不高,则可能导致检索效果不佳。此外,软件文档中更多可能使用同义词、近义词或缩写词,这也对信息检索方法的效果造成了比较大的挑战。

(2)第二类方法目前重点关注于识别文档中代码元素所属的代码单元,并没有对这些关联的强弱/真假做出区分和判断。事实上,软件文档可能存在多个代码元素,但文档内容其实是围绕其中一个代码元素来进行阐述的,称为核心代码元素。因此,在软件文档-代码关联过程中,需要识别和建立软件文档与其核心代码元素之间的关联(强关联/真关联);而那些仅仅用于背景或补充描述出现在文档中的其他代码元素,与软件文档并没有太大关系,对软件文档-代码关联追踪来说即是噪音(噪音关联/假关联)。噪音关联会极大影响软件文档与软件代码间关联关系追踪的准确性。

由于现有技术中并不存在一个能够度量软件文档与软件代码间关联关系并挖掘文档核心代码元素的方法。因此,研究一种更好的软件文档与软件代码间关联关系追踪方法十分必要。

发明内容

本发明的目的是提供一种软件文档中核心代码元素的挖掘方法及系统,以改进软件文档-代码之间的关联关系追踪的效果。该方法及系统能够追踪并度量软件文档与软件代码间的关联关系,区分核心关联和噪音关联。

一种软件文档中核心代码元素的挖掘方法,其步骤包括:

1)对待处理软件项目的软件文档和源代码进行收集,并解析所述软件文档和源代码,得到候选的文档-代码关联关系集合;

2)从候选文档-代码关联关系的相关软件文档与软件代码中抽取文本特征和代码特征,并组织所述特征以构建软件文档中候选代码元素的特征向量;

3)将已标注核心代码元素的软件文档作为训练数据,构建特征向量,通过调优模型参数得到分类学习模型,通过分类学习模型识别待识别的软件文档中的核心代码元素。

进一步地,步骤1)包括以下子步骤:

1-1)对获取的软件文档进行解析:根据XML标签抽取软件文档中有意义的文本部分(如问答文档中问题的题目、描述信息),构建软件文档对应的文档实体;对文档内容进行分段(分段依据为文档中的自然段和空白行),并识别和标明文档中的代码片段和超链接;根据文档内容中存在的“<code>”和“</code>”识别文档中的代码片段;

1-2)对获取的软件源代码进行解析:基于所获取的源代码,利用工具JDT,生成抽象语法树;遍历抽象语法树,获取软件项目的代码元素列表,基于代码元素之间的关联关系并构建代码结构图。

1-3)基于程序语法规则和命名规则构建正则表达式,根据正则表达式从步骤1-1)中的软件文档实体中抽取近似代码元素,并将其和步骤1-2)中获取的代码元素列表进行匹配,若近似代码元素和某个代码元素相同,则建立相应文档实体与代码元素间的关联关系,得到候选文档-代码关联关系集合。

进一步地,步骤2)包括以下子步骤:

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京大学,未经北京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201711059029.7/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top