面向源码的功能定位技术研究
发布时间:2018-04-26 20:51
本文选题:软件聚类 + 搜索 ; 参考:《哈尔滨工程大学》2016年硕士论文
【摘要】:随着近几年开源项目的发展,个人通过互联网能获取到越来越多的工程代码。在缺少需求和设计文档的情况下,想在短时间内仅凭阅读代码来理解工程功能模块组成或某一功能对应的代码十分困难。而当前的源码搜索引擎只能按查询词搜索与之匹配的代码片段,却无法在将查询词视为功能描述的基础上,从宏观角度给出涉及的结构信息。因此本文研究如何根据功能描述在源码工程中定位相应的类结构等信息。为解决该问题,本文提出了一种结合软件聚类的功能搜索技术,使用主题分析和软件聚类,该技术能得到较为精确的类结构信息。该方法包含三方面工作。首先,提出了针对Java的软件特征提取方法和特征向量构造方式。构造的特征矩阵作为层次聚类算法的输入,输出相应的簇描述。然后,提出了针对类结构的主题分析方法。该方法不以文件为单位,只针对类结构信息分析。由此搜索得到的将不再是代码片段,而是和功能相关的一系列类结构信息。最终,综合利用软件聚类和主题分析实现了功能搜索技术。此过程使用软件聚类的结果指导主题分析,主题分析的输出经过软件聚类过滤,最终展现给用户更加精确的信息。照此方法,本文设计并实现了一个原型系统。实验表明,该原型系统能有效提升软件聚类的结果。和GitHub字符串匹配结果相比,在搜索功能上得到数据更加精确,能自动化地排除不相关结果,得到良好的功能模块结果。在应用前景上,该方法在实际的阅读源码、维护系统方面都有很好的指导作用。开发者可以借此方法来指导先期探索,加快理解工程,提升开发效率。进一步的发展,可以借此方法完成功能模块的复用。
[Abstract]:With the development of open source projects in recent years, individuals can obtain more and more engineering code through the Internet. In the absence of requirements and design documents, it is very difficult to understand the composition of engineering function modules or the corresponding code of a function in a short period of time by reading the code. However, the current source search engine can only search the corresponding code fragments according to the query words, but it can not give the structural information from the macro point of view on the basis of the function description of the query words. Therefore, this paper studies how to locate the class structure in source code engineering according to the function description. In order to solve this problem, this paper presents a functional search technique combining software clustering, which uses topic analysis and software clustering, which can obtain more accurate structure information. The method includes three aspects of work. Firstly, a software feature extraction method and feature vector construction method for Java are proposed. The constructed feature matrix is used as the input of hierarchical clustering algorithm and the corresponding cluster description is output. Then, a topic analysis method for class structure is proposed. This method does not take the file as the unit, only aims at the class structure information analysis. This search will no longer be a code fragment, but a series of functional-related class structure information. Finally, the function search technology is realized by using software clustering and topic analysis. In this process, the results of software clustering are used to guide the topic analysis, and the output of the topic analysis is filtered by the software clustering, and finally presents more accurate information to the users. According to this method, this paper designs and implements a prototype system. Experiments show that the prototype system can effectively improve the results of software clustering. Compared with the result of GitHub string matching, the search function can get more accurate data, can automatically eliminate irrelevant results, and get good results of function modules. In the application foreground, this method has the very good instruction function in the actual reading source code, the maintenance system aspect. Developers can use this method to guide advance exploration, accelerate understanding of engineering, and improve development efficiency. Further development, we can use this method to complete the reuse of functional modules.
【学位授予单位】:哈尔滨工程大学
【学位级别】:硕士
【学位授予年份】:2016
【分类号】:TP311.5;TP391.3
【参考文献】
相关期刊论文 前5条
1 李运田;吴琼;郑献卫;;改进的TF-IDF模型在特征抽取中的应用[J];工业控制计算机;2014年02期
2 刘石;李合;王啸吟;张路;谢冰;;基于语法与语义分析的代码搜索结果优化[J];计算机科学;2009年08期
3 胡庆林;叶念渝;朱明富;;数据挖掘中聚类算法的综述[J];计算机与数字工程;2007年02期
4 贺玲;吴玲达;蔡益朝;;数据挖掘中的聚类算法综述[J];计算机应用研究;2007年01期
5 姜灵敏;;基于改进遗传算法的动态聚类方法及其应用[J];科技管理研究;2005年11期
相关博士学位论文 前2条
1 杨瑞龙;基于短语特征的Web文档聚类方法研究[D];重庆大学;2010年
2 陈毅恒;文本检索结果聚类及类别标签抽取技术研究[D];哈尔滨工业大学;2010年
相关硕士学位论文 前3条
1 周悦来;基于网格和信息熵的聚类算法[D];湖南大学;2011年
2 谢同;基于文本的Web图片搜索引擎的研究与实现[D];电子科技大学;2007年
3 罗玫;基于LUCENE2.0的源代码搜索引擎架构的实现[D];西北工业大学;2007年
,本文编号:1807590
本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/1807590.html