课题基金 / 基金详情

Extracting and analyzing code dependencies for large software

Extracting and analyzing code dependencies for large software
提取和分析大型软件的代码依赖关系
批准号:
418918-2011
负责人:
Tan, Lin
金额:
$1.46万
依托单位:
依托单位国家:
加拿大
项目类别:
Collaborative Research and Development Grants
财政年份:
2013
资助国家:
加拿大
项目状态:
已结题
起止时间:
2013-01-01 至 2014-12-31

项目摘要

项目成果

Tan, Lin的其他基金

相似基金

相关文献

中文摘要
翻译
开发人员重用代码。尽管它有优点,但是重用会导致不必要的不良代码依赖,这已经成为大型软件公司和组织的主要问题。因此,本研究的两个主要目标是:(1)识别不需要的不良依赖;(2)建议替代依赖项和其他打破依赖项的解决方案。具体来说,我们将静态地分析大型代码库,以自动识别代码位置,在哪些地方打破依赖关系是有益的,并建议打破依赖关系的解决方案。本研究在三个关键方面是新颖的。首先,由于我们对一种特殊类型的不良依赖关系——跨项目/库边界的不良依赖关系感兴趣,我们将通过探索以前的技术无法承担的新优化,将依赖关系提取和分析扩展到数千万行代码。我们还将在更粗的粒度级别上探索依赖关系,以提高可伸缩性。其次,我们将分析用自然语言编写的注释和源代码,以自动建议替代依赖项。第三,我们计划利用软件配置文件来自动编译更多的源代码,这不仅有利于我们的原型进行全面的依赖提取,也有利于其他工具分析更多的代码并发现更多的错误。所提出的研究与加拿大软件业高度相关。该项目将与谷歌加拿大的工程师合作进行,并将产生谷歌工程师可以与其构建管理系统和版本控制系统一起部署的原型和工具。这些开发将节省计算资源,以及工程师在编译、测试和维护软件上的时间,这直接转化为成本节约。通过移除不良的依赖项并建议替代依赖项,它还将显著提高软件质量和软件可靠性。该项目将培养11名高素质人才,4名研究生和7名本科生,他们将接触与工业相关的研究问题。这些人才将成为专业人士、企业家、研究人员和教师,为加拿大经济的发展做出贡献。
英文摘要
Developers reuse code. Despite its advantages, reuse can cause unwanted bad code dependencies, which have become major problems for large software companies and organizations. Therefore, the two main goals of the proposed research are: (1) to identify unwanted bad dependencies; and (2) suggest alternative dependencies and other dependency breaking solutions. Specifically, we will statically analyze large code bases to automatically identify code locations where breaking dependencies is beneficial, and suggest dependency breaking solutions. The proposed research is novel in three key aspects. First, we will scale the dependency extraction and analysis to tens of millions of lines of code, by exploring new optimizations that previous techniques cannot afford, as we are interested in a special type of bad dependencies --- bad dependencies across project/library boundaries. We will also explore dependencies at coarser granularity levels to improve scalability. Second, we will analyze both comments written in a natural language and source code to automatically suggest alternative dependencies. Third, we plan to leverage software configuration files to automatically compile more source code, which will benefit not only our prototype for comprehensive dependency extraction but also other tools to analyze more code and find more bugs. The proposed research is highly relevant to the Canadian software industry. The project will be conducted in collaboration with engineers from Google Canada and will result in prototypes and tools that Google engineers can deploy with their build management systems and version control systems. These developments will save computing resources, and engineers' time on compiling, testing and maintaining software, which directly translates to cost savings. By removing bad dependencies and suggesting alternative dependencies, it will also dramatically improve software quality and software reliability. The project will train 11 highly qualified personnel, 4 at the graduate level and 7 at the undergraduate level, who will be exposed to industry-relevant research problems. The personnel will become professionals, entrepreneurs, researchers, and teachers, contributing to the growth of the Canadian economy.
期刊论文(0)
专著(0)
科研奖励(0)
会议论文
History-Based Automated Program Repair
  • 批准号:
    RGPIN-2015-05248
  • 项目类别:
    Discovery Grants Program - Individual
  • 资助金额:
    $3.13万
  • 财政年份:
    2019
  • 负责人:
    Tan, Lin
  • 依托单位:
History-Based Automated Program Repair
  • 批准号:
    RGPIN-2015-05248
  • 项目类别:
    Discovery Grants Program - Individual
  • 资助金额:
    $3.13万
  • 财政年份:
    2018
  • 负责人:
    Tan, Lin
  • 依托单位:
Software Dependability
  • 批准号:
    1000231535-2016
  • 项目类别:
    Canada Research Chairs
  • 资助金额:
    $5.46万
  • 财政年份:
    2018
  • 负责人:
    Tan, Lin
  • 依托单位:
Deep defect and vulnerability prediction
  • 批准号:
    505833-2017
  • 项目类别:
    Idea to Innovation
  • 资助金额:
    $9.11万
  • 财政年份:
    2017
  • 负责人:
    Tan, Lin
  • 依托单位:
国内基金
海外基金
Computational Methods for Analyzing Toponome Data