暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
代码知识图谱构建及智能化软件开发方法研究-王飞 , 刘井平 , 刘斌 , 钱铁云 , 肖仰华 , 彭智勇.pdf
526
20页
3次
2022-05-24
免费下载
软件学报 ISSN 1000-9825, CODEN RUXUEW E-mail: jos@iscas.ac.cn
Journal of Software,2020,31(1):4766 [doi: 10.13328/j.cnki.jos.005893] http://www.jos.org.cn
©中国科学院软件研究所版权所有. Tel: +86-10-62562563
代码知识图谱构建及智能化软件开发方法研究
1
,
刘井平
2
,
1
,
钱铁云
1
,
肖仰华
2
,
彭智勇
1
1
(武汉大学 计算机学院,湖北 武汉 430072)
2
(复旦大学 计算机科学技术学院,上海 201203)
通讯作者: 钱铁云, E-mail: qty@whu.edu.cn; 肖仰华, E-mail: shawyh@fudan.edu.cn; 彭智勇, E-mail: peng@whu.edu.cn
: 智能化软件开发正在经历从简单的代码检索到语义赋能的代码自动生成的转变,传统的语义表达方式无
法有效地支撑人、机器和代码之间的语义交互,探索机器可理解的语义表达机制迫在眉睫.首先指出了代码知识图
谱是实现智能化软件开发的基础,进而分析了大数据时代智能化软件开发的新特点以及基于代码知识图谱进行智
能化软件开发的新挑战;随后回顾了智能化软件开发和代码知识图谱的研究现状,指出了现有智能化软件开发的
究仍然处于较低水平,而现有知识图谱的研究主要面向开放领域知识图谱,无法直接应用于代码领域知识图谱.
,从代码知识图谱的建模与表示、构建与精化、存储与演化管理、查询语义理解以及智能化应用这 5 个方面详
细探讨了研究新趋势,以更好地满足基于代码知识图谱进行智能化软件开发的需要.
关键词: 智能化软件开发;知识图谱;代码大数据
中图法分类号: TP311
中文引用格式: 王飞,刘井平,刘斌,钱铁云,肖仰华,彭智勇.代码知识图谱构建及智能化软件开发方法研究.软件学报,2020,
31(1):4766. http://www.jos.org.cn/1000-9825/5893.htm
英文引用格式: Wang F, Liu JP, Liu B, Qian TY, Xiao YH, Peng ZY. Survey on construction of code knowledge graph and
intelligent software development. Ruan Jian Xue Bao/Journal of Software, 2020,31(1):4766 (in Chinese). http://www.jos.org.
cn/1000-9825/5893.htm
Survey on Construc tion of Co de Knowledge Graph and Intell igent Soft ware Development
WANG Fei
1
, LIU Jing-Ping
2
, LIU Bin
1
, QIAN Tie-Yun
1
, XIAO Yang-Hua
2
, PENG Zhi-Yong
1
1
(School of Computer Science, Wuhan University, Wuhan 430072, China)
2
(School of Computer Science, Fudan University, Shanghai 201203, China)
Abstra ct : The intelligent software development is migrating from simple code retrieval to semantic empowered automatic code
generation. Traditional semantic representation cannot effectively support the semantic interaction among people, machines, and code. It
becomes an urgent task to design a set of machine-readable semantic representation. In tThis paper, westudy firstly points out that code
knowledge graph forms the basis to realize the intelligent software development, and then analyzes the new features and new challenges
of intelligent software development based on code knowledge graph in the era of big data. Next, we review the research progress is
reviewed both in intelligent software development and in code knowledge graph. It is noted that the current research of intelligent
software development is still at a preliminary stage. Existing studies of knowledge graph mainly focus on open-domain knowledge graph,
and they cannot be directly applied to code and software development domain. Therefore, we discuss the new research trends of code
knowledge graph are discussed in detail from five aspects, including namely modeling and representation, construction and refinement,
基金项目: 国家重点研发计划(2018YFB1003400); 国家自然科学基金(61572376); 中央高校基本科研业务费专项资金(204
2019k10278)
Foundation item: National Key Research and Development Program of China (2018YFB1003400); National Natural Science
Foundation of China (61572376); Fundamental Research Funds for the Central Universities (2042019k10278)
收稿时间: 2019-01-14; 修改时间: 2019-06-24; 采用时间: 2019-09-16; jos 在线出版时间: 2019-11-06
CNKI 网络优先出版: 2019-11-06 11:49:26, http://kns.cnki.net/kcms/detail/11.2560.TP.20191106.1149.012.html
48
Journal of Software 软件学报 Vol.31, No.1, January 2020
storage and evolution management, semantic understanding, and intelligent application, which are essential to meet the various types of
demands of the intelligent software development.
Key words: intelligent software development; knowledge graph; big code
基于知识图谱的智能化软件开发是进一步推动软件行业发展的重大历史机遇.
. 软件产业日益成为社会经济发展的战略性基础产.进入 21 世纪以来,信息技术已成为推动国民经
济发展、促进社会生产力提升的强大动力,作为与国民经济和社会发展紧密相关的基础战略型先导
产业,信息产业受到了越来越多国家和地区的重视.得益于政策法规的鼓励和支持,我国软件行业在
十一五期间保持快速增长态势,年均收入平均增速高达 30%以上.根据工信部发布的《2017 年软件
业经济运行情况》报告显示,2017 年度中国软件行业共实现业务收入 5.5 万亿,比上年增长 13.9%,
为经济转型和产业升级的支柱
[1]
;
. 件行业发展仍然面临诸多严峻挑.尽管软件产业正处于蓬勃发展时期,但总体来看,我国软件
业竞争力仍然较弱.根据普华永道 2016 年度的全球软件百强企业报告,全球软件重点企业美国占比
75%,而中国仅有一家企业入围.开发成本高昂、生产效率低下、移植运维困难等因素,成为制约我
国软件行业深入发展的主要瓶颈
[2]
;
. 基于知识图谱的认知智能是突破软件产业发展瓶颈的重大机遇.2012 年谷歌推出知识图谱以来,知识
图谱技术发展迅速,产生了日益广泛的社会、经济效益,成为发展人工智能战略的重要内容.知识图谱
是一种大规模语义网络,表达了实体/概念及其之间的各种语义关系.知识图谱为机器语言认知提供
了丰富的背景知识,使得机器语言认知成为可能
[3]
,进而使得文本自动化处理、智慧搜索、精准推荐、
自然人机交互、深度解释等一系列智能化应用成为可能.知识图谱是认知智能的核心,是软件行业智
能化转型的使能器(enabler);
. 软件行业大数据使得知识图谱的构建与应用成为可能.代码大数据为知识图谱的构建提供了数据来
,而基于大数据的算法(如深度神经网络)为知识图谱的自动构建提供了辅助.目前,全球存在许多开
源且高度结构化的平台,例如 GitHub.这些开源平台为大规模代码知识图谱的构建提供了数据源.
2018 ,GitHub 已经集聚了全球 3 100 万开发者、210 万组织以及 9 600 万代码仓库,且每个仓库
都包含高度结构化的信息,如编程语言、代码库名称、代码库描述等
[4]
.
目前,知识图谱已在金融投资、风险控制、科学教育等诸多行业得到了较为广泛的应用.但在软件行业,
码知识图谱的应用还不多见.但是,知识图谱是认知智能的关键技术,展现出了解决智能化软件开发过程各种
瓶颈问题的巨大潜力.
代码知识图谱将成为智能化软件开发的利器:首先,知识图谱能够为理解用户意图提供强大的背景知识,
持知识和事实的逻辑推理,有助于实现语义层面的搜索泛化;其次,基于知识图谱的代码推荐具有较强的可解释
,帮助用户理解推荐结果,支持推荐规则和流程的优化;最后,知识图谱的引入能够为代码生成提供模板,通过
融合模板和深度生成模型,能够为用户生成满足意图的代码.
1:以用户查询如何将 tex 文件格式转换成 pdf 文件格式为例,说明代码知识图谱在代码搜索和推荐中
的优势.基于对查询短文本的语义理解和分析,如果现有的知识图谱中有一个实体名为 tex2pdf converter(输入
tex 文件格式,输出为 pdf 文件格式),则系统将该实体对应的软件实例返回给用户.如果查询不到满足要求的
代码实体,但是已有的知识图谱中存在如图 1 所示的其他相关代码实体.通过查询 tex pdf 实体,以及两个实体
之间的路径,可以发现 textex2dvi converterdvi2ps converterps2pdf converterpdf 的路径,从而可以同时将
3 conve
rter 实体及对应的实例推荐给用户.进而,根据已有 3 converter 实体的 isA 关系,可以获得具体的
软件包名和具体用法,作为辅助说明信息一并返回给用户.
传统的软件开发主要以人工编程为主,简单的代码自动构造为辅.传统的代码自动构造技术主要有模型驱
动的软件开发
[5]
和基于逻辑规约
[6]
的程序合成这两种方式.传统的人工编程环境相对简单、代码自动纠错困难、
编程接口有限,而代码自动构造技术又存在着模型设计复杂、通用性差以及可扩展性弱的缺陷.现阶段的软件
of 20
免费下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜