首页> 外文学位 >Natural language program analysis: Combining natural language processing with program analysis to improve software maintenance tools.
【24h】

Natural language program analysis: Combining natural language processing with program analysis to improve software maintenance tools.

机译:自然语言程序分析:将自然语言处理与程序分析相结合,以改进软件维护工具。

获取原文
获取原文并翻译 | 示例

摘要

Because software systems are large and complex, developers often use software tools to understand unfamiliar code. In turn, software tools often utilize information about the program in the form of various program representations, which can provide detailed program information. Because traditional program representations do not capture the natural language clues in code, they often fail to assist the developer during high-level program understanding tasks. To bridge the gap between current software tools and the software developers' high-level questions, we propose supplementing traditional program representations with a natural language representation that exploits the information embedded in the program's names and comments.; Any software tool that uses a program representation must automatically construct that representation. To automatically construct our natural language program representation, we combined natural language processing and traditional program analysis techniques. With these techniques, we extract the natural language clues from the method names, class names, and comments in a program.; We evaluated the usefulness of our natural language program representation by developing two software tools which access our representation. The first, a software search tool called Find-Concept, locates code segments relevant to a developer's query, a common first step in development tasks. In a user study, Find-Concept found code segments more effectively and more consistently than a state-of-the-art information retrieval search tool and a lexical search tool. The second, an aspect mining tool called Timna, identifies code segments that could be more elegantly represented in a new language paradigm, aspect-oriented programming. Timna originally only used traditional program representations, yet when we added our natural language program representation, Timna was much more effective.; In the software tools' respective evaluations, both tools performed well. The body of quantitative and qualitative evidence strongly suggests that supplementing traditional program representations with a natural language representation is a promising approach to increasing the effectiveness of software tools.
机译:由于软件系统庞大而复杂,因此开发人员经常使用软件工具来理解不熟悉的代码。反过来,软件工具通常以各种程序表示形式利用有关程序的信息,这些信息可以提供详细的程序信息。因为传统的程序表示不能捕获代码中的自然语言线索,所以它们通常无法在高级程序理解任务期间协助开发人员。为了弥合当前软件工具与软件开发人员的高级问题之间的鸿沟,我们建议用自然语言表示法补充传统的程序表示法,以利用程序名称和注释中嵌入的信息。使用程序表示形式的任何软件工具都必须自动构造该表示形式。为了自动构建自然语言程序表示,我们将自然语言处理和传统程序分析技术结合在一起。使用这些技术,我们从程序中的方法名称,类名称和注释中提取自然语言线索。我们通过开发两个访问我们的表示形式的软件工具,评估了自然语言程序表示形式的有用性。第一个是名为Find-Concept的软件搜索工具,它查找与开发人员查询相关的代码段,这是开发任务中常见的第一步。在用户研究中,Find-Concept比最新的信息检索搜索工具和词法搜索工具更有效,更一致地找到了代码段。第二个方面是一种叫做Timna的方面挖掘工具,它标识可以在新的语言范式,面向方面的编程中更优雅地表示的代码段。 Timna最初仅使用传统程序表示形式,但是当我们添加自然语言程序表示形式时,Timna更加有效。在软件工具的各自评估中,两种工具均表现良好。大量的定量和定性证据强烈表明,用自然语言表示法补充传统程序表示法是提高软件工具有效性的一种有前途的方法。

著录项

  • 作者

    Shepherd, David.;

  • 作者单位

    University of Delaware.$bDepartment of Computer and Information Sciences.;

  • 授予单位 University of Delaware.$bDepartment of Computer and Information Sciences.;
  • 学科 Computer Science.
  • 学位 Ph.D.
  • 年度 2007
  • 页码 176 p.
  • 总页数 176
  • 原文格式 PDF
  • 正文语种 eng
  • 中图分类 自动化技术、计算机技术;
  • 关键词

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号