中文

面向 Maven 的可扩展调用图构造器

软件工程 2021-03-30 v1

摘要

作为丰富的数据来源,调用图被用于包括安全漏洞检测在内的多种应用。尽管多项研究表明调用图能大幅提升分析的准确率,现有的生态规模工具(如 Dependabot)并未使用调用图,而是在包级别工作。在生态规模用例中使用调用图并不现实,因为调用图生成器存在可扩展性问题。调用图生成通常被视为“全程序分析”,会产生庞大的调用图与高昂的计算开销。为使分析适用于生态规模,这种务实做法并不可行,因为某一特定构件在全程序中可能组合方式的数量会爆炸式增长。因此,有必要使分析具备增量性。现有研究涉及不同类型的增量程序分析,但均无人关注整个生态的调用图生成。本文提出一种 CHA 算法的增量实现,可通过拼接此前为库提取的部分调用图,按需生成调用图。初步评估结果表明,所提方法具有良好的可扩展性,并优于名为 OPAL 的现有最具可扩展性框架。

关键词

引用

@article{arxiv.2103.15162,
  title  = {Scalable Call Graph Constructor for Maven},
  author = {Mehdi Keshani},
  journal= {arXiv preprint arXiv:2103.15162},
  year   = {2021}
}