源代码搜索中自动查询重构的系统性综述
A Systematic Review of Automated Query Reformulations in Source Code Search
AI总结:
该系统性综述从2970项候选研究中筛选70项源代码搜索自动查询重构相关研究,通过定性分析梳理8类现有方法、指出主要局限,并提出领域最佳实践与未来方向。
摘要:
修复软件缺陷和添加新功能是两项主要的维护任务。软件缺陷和功能会以变更请求的形式被上报。开发人员会查阅这些请求,通常从中选取几个关键词作为临时查询,随后通过搜索引擎执行该查询,以定位软件代码中需要修改的具体位置。遗憾的是,即便是经验丰富的开发人员也常常无法选择合适的查询,这会导致代码搜索过程中出现代价高昂的试错。多年来,许多研究尝试对开发人员的临时查询进行重构,以此为他们提供支持。在这项系统性文献综述中,我们从2970项候选研究中精心筛选出70项关于查询重构的主要研究,开展了深入的定性分析(例如扎根理论),并回答了七个研究问题,得出了主要发现。第一,截至目前,已有八种主要方法(例如术语加权、术语共现分析、词表查询)被用于查询重构。第二,现有研究存在若干主要局限(例如缺乏普适性、词汇不匹配问题、主观偏差),这些局限可能会阻碍其广泛应用。最后,我们讨论了推动搜索查询重构研究发展的最佳实践与未来机遇。
英文摘要:
Fixing software bugs and adding new features are two of the major maintenance tasks. Software bugs and features are reported as change requests. Developers consult these requests and often choose a few keywords from them as an ad hoc query. Then they execute the query with a search engine to find the exact locations within software code that need to be changed. Unfortunately, even experienced developers often fail to choose appropriate queries, which leads to costly trials and errors during a code search. Over the years, many studies attempt to reformulate the ad hoc queries from developers to support them. In this systematic literature review, we carefully select 70 primary studies on query reformulations from 2,970 candidate studies, perform an in-depth qualitative analysis (e.g., Grounded Theory), and then answer seven research questions with major findings. First, to date, eight major methodologies (e.g., term weighting, term co-occurrence analysis, thesaurus lookup) have been adopted to reformulate queries. Second, the existing studies suffer from several major limitations (e.g., lack of generalizability, vocabulary mismatch problem, subjective bias) that might prevent their wide adoption. Finally, we discuss the best practices and future opportunities to advance the state of research in search query reformulations.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。