基于搜索的代码推荐技术研究

来源 :上海交通大学 | 被引量 : 0次 | 上传用户:xmyhehe
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
如何提高软件的开发效率是软件工程领域的一个核心问题。随着互联网的发展以及开源软件的流行,软件及代码的重用在提高软件开发效率方面变得越来越重要。根据调查研究,当今的软件开发者们以重用为目的花费了大量的时间在互联网上搜索软件或者代码。因此,代码搜索技术得到了越来越多的研究与重视。目前有许多关于代码搜索的研究成果。在这些研究成果中,有一部分使用了信息检索技术,使得对大规模的软件或代码的搜索成为可能。虽然这些已有的研究工作采用了各种方法来提高代码搜索的准确性,但是效果都十分有限。本文经过调查研究这些已有的工作,针对他们研究中的不足,提出了一种高效的代码搜索算法,并基于此算法实现了一个代码推荐工具。同时,通过与已有的研究工作进行实验比较,验证了本文提出的算法的有效性。首先,针对代码搜索准确性不足的问题,本文提出了一种基于查询分析与扩展布尔模型的代码搜索方法,并从三个主要方面对该方法进行了介绍。在代码的表示方面,通过识别可以用来帮助搜索的代码特征,对源代码进行解析,提取必要的信息,并基于这些信息建立了代码的索引。对于查询语句,本文提出了一种查询分析方法,通过分析查询语句与API之间的相关性,获得与查询语句相关的若干个API,并结合这些相关的API以及查询语句,构造出布尔逻辑查询表达式,帮助提升代码搜索的准确性。在搜索结果的排序方面,本文通过运用扩展布尔模型计算查询表达式与代码的相似度,并根据相似度评分对搜索结果进行了排序。然后本文针对C#编程语言,实现了基于上述搜索算法的代码推荐工具CodeHow。对于代码搜索结果中遇到的代码克隆问题,本文提出了基于SimHash算法的代码克隆检测方法。同时,本文采用程序切片技术对搜索到的代码进行简化,去除了代码中与查询无关的部分。最后,通过客观实验与用户调研,本文从多个角度对基于本文搜索算法的代码推荐工具CodeHow的有效性进行了验证。实验结果表明,CodeHow达到了一个较高的准确性,证明了本文提出的搜索算法的有效性。同时,在用户调研中,本文通过设计三个真实的编程任务,让参与者使用CodeHow帮助他们完成编程任务,并根据使用感受填写调查问卷,进一步表明CodeHow在真实的应用场景下可以给用户的编程带来帮助。
其他文献
ue*M#’#dkB4##8#”专利申请号:00109“7公开号:1278062申请日:00.06.23公开日:00.12.27申请人地址:(100084川C京市海淀区清华园申请人:清华大学发明人:隋森芳文摘:本发明属于生物技
目的 观察天麻素治疗眩晕的临床疗效和安全性。方法 选择以眩晕为主诉且符合条件的患者128例随机均分为两组,治疗组采用天麻素注射液600mg、舒血宁6mL、曲克芦丁240mg分别静脉
近年来,昌吉州在棉花产业发展中积极落实新疆维吾尔自治区(以下简称"自治区")棉花目标价格改革试点工作,调减棉花种植面积,优化区域布局,引导风险棉区基本退出棉花生产。同时,大
一项发表在《儿科》医学期刊上的大规模研究发现,女性在青少年和刚成年不久摄取大量蔬菜与水果,其未来患乳腺癌的风险要比未吃的女性低很多。.
从河南洛阳出土的唐东都福先寺广宣律师墓志可知,唐代洛阳皇家寺院福先寺律学“首冠天下”。从唐玄宗开元初年,中经安史之乱,直到唐文宗大和初年,历时一百余年,洛阳福先寺律
<正> 一,商品经济条件下收入分配合理与否的标准1.收入必须与投入相适应。收入,在商品经济中可称为投入报酬。评价收入分配是否合理的标准,是看收入者获得的收入是否与他在生
眼睛能感受光、感受色彩,让我们领略这个斑斓多姿的世界,然而,眼睛很娇嫩,需要细心呵护。本期,我们特别邀请中国中医科学院眼科医院前院长高健生和河南省中医院眼科主任张风梅两位
对于糖尿病患者而言,监测血糖是非常重要的一门功课。在临床实践中发现,许多因素都会影响到血糖仪对血糖监测的准确性,但只要能注意以下4个细节,就能保证监测的准确性。1.心