基于约束求解的代码查询技术在StackOverflow上的实证研究
代码查询在代码复用的过程中起着十分重要的作用,而面向程序员的专业问答网站StackOverflow上围绕代码的问答则是代码复用的一个典型场景.在这个现实场景中,采取的是人工回答的方式,而人工回答往往存在实时性较差、提问描述不准确、回答可用性不高等缺点,但如果采取代码查询的方式搜寻可用代码来实现自动化并替代人工回答,则可以省去大量的人力和时间成本.目前已经出现了许多代码查询技术,但大都缺少在真实案例上的应用经验,文中以Satsy的思路为参考,实现了针对Java语言的基于约束求解的代码查询技术,并设计了实证研究,以Stack-Overflow为研究对象,主要研究如何将基于约束求解的代码查询技术应用在该网站上围绕代码的问答中.首先对网站上的问题进行了分析,针对Java语言提取了浏览量高的35个问题作为查询问题;然后在GitHub上抓取了约3万行代码,将它们转换成约束的形式并构建了一个较大规模的代码库以支持代码查询;最后通过对这35个问题的查询结果进行分析,评估了该技术在StackOverflow上的实际应用效果.结果表明,该技术在所研究的具体问题和代码规模上具有较好的实际应用效果,在相当高的程度上能替代人工回答.
代码查询、约束求解、开源代码库、实证研究
46
TP311.5(计算技术、计算机技术)
国家自然科学基金61472180,61502228;江苏省重点研发计划项目课题BE2017004-4
2019-12-13(万方平台首次上网日期,不代表论文的发表时间)
共8页
137-144