- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
中文文档与源代码间关联关系提取方法的研究+
韩晓东 王晓博刘超
北京航空航天大学计算机学院,北京10019l
摘要:软件包括软件文档和源程序代码,发现和维护软件文档与源代码问的关联关系,对程序理解、
软件维护、需求跟踪等许多软件工程活动提供很大的帮助。本文提出了一种提取中文软件文档与源代码
间的关联关系的方法,根据中文软件文档和源代码的特征,在潜在语义索引模型的基础上使用了三种策
略:引入项目数据词典辅助中文分词和中英文的翻译、将文档按类型分层以实现反馈、调整代码中的特
征项的权值。实验结果表明,三种策略可以在提取阀值c相同的情况下,提高查全率lO%~30%;在查
全率不变的情况下提高查准率5%~20%。
关键词:信息检索可跟踪性链程序理解逆向工程
1研究现状以及存在的问题
软件包括软件文档和源程序代码。软件文档中包含着丰富的专、Ik领域知识,并与源程序代码之间存在
着不同程度的关联。发现和维护代码与文档问的关联关系,对程序理解、软件维护、需求跟踪、变更分析
和软件复用等许多软件工程活动都能提供很大的帮助lll。近年来,许多学者采用信息检索(IR)技术提取软件
文档与源代码的关联关系。使用有概率模型¨、向量空间模型¨J和潜在语义索引技术进行检索12】,把提取代
码和文档间的关联关系看成是以代码为查询条件,以文档作为榆索文献库的IR处理过程。
文献【4】针对上述三个模型在提取代码和文档的关联关系所存在的查全率和查准率较低的问题lI,2l,在传
统的LSI模型的基础上,融入了软件文档和代码的特点,提出了四种策略,实验证明这些策略可以在保持
查全率不变的情况下提高查准率15%左右。
虽然文献【3】在一定程度上提高了查全率和查准率,但是文中所研究的问题是提取英文文档和代码的关
联关系,不能解决中文文档的问题。而国内对于中文文档和代码之间的关联关系的提取方法的研究也不多
见,只有文献【4】采用了概率模型提取中文软件文档和代码的关联关系,但是由于没有考虑到软件文档和代
码的特征,因此得到的查全率和查准率很低。
本文的主要上作是在文献【3】的基础上提出了一种提取中文软件文档和源代码之间的关联关系的有效方
法。该方法在传统的LsI模型的基础上,采用了相关中文文本信息处理技术,并融入了中文软件文档和源
代码的特征,经过实验证明可以取得较高查全率和查准率。
2关联关系提取
2.1基本假设和约束
为了得到较高实验结果,本文所采用的关联关系的提取方法是基于以下几个假设:
+基金资助:国家高技术研究发展计划(863计划),课题编号:2007AA010302;自然基金项日.
作者简介:韩晓东(1984.),男,在读硕士,要研究方向:软件工程、信息检索.王晓博(1982.),男,在读溥士,主要研究方向为
软件上程,数据挖掘.刘超(1958-),男,教授,博导,研究方向为软件工程、软件测试.
一方面,对于源代码,所定义的包名、类名、属性名和方法名等标识符都使用了有意义的名称,而且
这些标识符与软件文档中出现的概念有相同的语义。源程序中有必要的注释。
另一方面,对于中文软件文档,应该符合一定的规范,最好包含有项目的数据词典。这里所说的规范
是指:(1)文档中应当包含需求文档、设计文档等软件工程过程中所产生的一系列具有里程碑意义的文档;
(2)文档中所使用的术语应该前后一致;(3)文档中描述的模型、算法、数据流图等所使用的数据项应该有
详细的说明和注解。
2.2关联关系的提取过程的基本问题
中文软件文档使用汉语编写,其中也可能有一些拼音文字。而源代码是由特定计算机语言的关键字、
标识符等编写而成。因此,在提取关联关系时面临以下几个基本的问题。
第一,中文分词。汉语具有一定语义的最小单位是词而不是字,中文的字与字、词与词之间并没有明
显的切分标志。中文分词是中文信息处理技术中最基础、最藿要的问题之一【5】。
第二,中英文间的翻译。程序员在定义类名、属性名等标示符时会使用有意义的英文或是英文缩写。
软件文档中也可能会出现上述英文名所对应的中文词汇。因此在检索之前,需要将软件文档和源代码检索
项所采用的语言同一化,即进行中英文词汇之间的翻译。本文采用了两种方法解决上述两个问题,将在2。5.1
节中介绍这两种方法。
第三,考虑同义词和多义词。在文档和
文档评论(0)