Google 如何建立程序分析生态系统资料

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。


Tom email: shendong70@163.com
Page 6
Star trek–星际迷航
The tricorder of 2266 was a compact instrument that featured scanning, recording, and computing technology.
TRICORDER 是一种手持式的多用途仪器。它是 星际旅行里经常要用到的一种必备仪器。
息处理类: 可以无线下载目标终端的数据。包括 非星联系统,并且可以处理和分析数据。三录仪也 可以作为一个数据终端,多台可以联网处理数据。 扫描器类: 通过扫描波束来确定目标的介质,化 学成分等,也可以扫描周围的空间组成,探测此范 围内的生命信号,以及对目标物体成像,医用的C T等。 工程技术类: 可以通过扫描来诊断设备的故障。 并且优化显示故障排除方法。
Tom email: shendong70@163.com
Page 2
静态分析存在的问题

程序员已经很忙了

工具必须非常重视是否让开发人员花费更多额外的时间来处理工具的结果; 任何自动工具的输出都会使开发人员从原来的开发思考停顿下来; 好的工具应该给尽量少的打扰开发人员,并为开发人员带来更多的附加值;

工具的问题

High false positive rates(高误报率) Confusing output(令人费解的输出报告) Poor integration into the developers’workflow(不能很好的融合到程序员的日常的开发流程中)

平台扩展的问题

2017/9/23
Google 如何 建立程序分析生态系统
Tom email: shendong70@163.com
Agenda

程序分ຫໍສະໝຸດ Baidu存在的问题


项目的目标
Google的背景 Google的程序分析理论
项目的实施
思考
Reference

Tricorder: Building a Program Analysis Ecosystem
Page 4
Agenda

程序分析存在的问题


项目的目标
Google的背景 Google的程序分析理论
项目的实施
思考
Reference

Tricorder: Building a Program Analysis Ecosystem
Tom email: shendong70@163.com



授权给开发者(甚至他们不是分析专家),让他们自己能够编写他们自己的检
查规则(empower developers, even non-analysis experts, to write and deploy their own static analyses).
Tom email: shendong70@163.com



建立一套程序分析工具的应用规则;
平台通过度量(使用、效果)方式实施这些规则,并与开发流程融合。通过建立一 个在开发程序员和规则开发者之间的闭环的反馈系统,来完成问题的反馈、自动修 复(部分); 一个建立在程序员在开发流程中应用工具的具体信息数据来度量的平台; 一个以微服务构建的适用google的代码项目规模的平台。每天会产生9,3000的扫 描报告,但仅由2-3人维护的系统;
Page 3
Tom email: shendong70@163.com
理想的静态分析平台

能够普遍地、积极地、主动地被程序员用来修复程序中存在的问题(be widely and actively used by developers to fix problems in their code, without prompting from a small group of advocates or management); 无缝地整合到现有的开发流程中( integrate smoothly into the existing developer workflow); 能够度量所有的代码(scale to the size of an industrial codebase);
星际迷航中的科技:平板电脑(PAAD)、GPS、大显示 屏、宇宙翻译机、自动门、手机、传送器、复制机、全 息技术、曲速旅行、视屏会议等等。。。
史蒂芬〃霍金 2002年《果壳中的宇宙》 --即使把我关在果壳之中,仍然自以为无限宇宙之王 http://fsd.trekships.org/operations/tricorder.html
Google存在不同的框架和开发语言; 一个理想的平台能够适应这些需求 能够让各领域的专家来编写自己的检查工具,而不需要额外的应用成本;

Google的业务需求

不能满足google巨大代码量的需求,一个完整的编译过程是无法用一台机器完成的; 分析必须能够被拆分(shared),并且能够分析拆分的信息,得到这部分的结果。 分块的分析必须能够在极短的时间内完成,在几分钟内得到结果;
Page 5
项目目标

We present TRICORDER,a program analysis platform aimed at building a datadriven ecosystem around program analysis. We present a set of guiding principles for our program analysis tools and a scalable architecture for an analysis platform implementing these principles. We include an empirical, in-situ evaluation of the tool as it is used by developers across Google that shows the usefulness and impact of the platform. TRICORDER 构建一个围绕程序分析,以数据驱动的程序分析平台;
相关文档
最新文档