Analysis is necessary but far from sufficient.ppt
《Analysis is necessary but far from sufficient.ppt》由会员分享,可在线阅读,更多相关《Analysis is necessary but far from sufficient.ppt(44页珍藏版)》请在麦多课文档分享上搜索。
1、Analysis is necessary but far from sufficient,Jon Pincus Reliability Group (PPRC) Microsoft Research,Jon Pincus (Microsoft Research),2,Why are so few successful real-world development and testing tools influenced by program analysis research?,Jon Pincus (Microsoft Research),3,Outline,Provocation Suc
2、cessful tools Analysis in context Implications for analysis Conclusion,Jon Pincus (Microsoft Research),4,Success: a simple view,A tool is successful if people use it Not if people think its interesting but dont try it Not if people try it but dont use it Not if people buy it but dont use it (“Shelfw
3、are”),Jon Pincus (Microsoft Research),5,Some examples of success,Purify BoundsChecker PREfix (2.X and later) Especially interesting because 1.0 was unsuccessful,Jon Pincus (Microsoft Research),6,Why do people use a tool? If,it helps them get their work done more efficiently than they would otherwise
4、 without making them look (or feel) bad.Aside: look at organizational and personal goals. See Alan Coopers books, e.g. About Face,Jon Pincus (Microsoft Research),7,Value vs. Cost,Value: the quantified benefit from the tool Cost: primarily time investment Licensing cost is typically much smaller (Val
5、ue Cost) must be Positive Positive fairly quickly More positive than any alternatives Value and cost are difficult to estimate and others estimates are often questionable,Jon Pincus (Microsoft Research),8,An example,Purify 1.0: Virtually zero initial cost on most code bases “trial” license easy to i
6、ntegrate Immediate value Companies then invested to increase the value E.g., changing memory allocators to better match Purifys (and buying lots of licenses),Jon Pincus (Microsoft Research),9,Characteristics of successful tools,Successful tools almost always address significant problems, on real cod
7、e bases, give something for (almost) nothing, and are easy to use.,Jon Pincus (Microsoft Research),10,Significant problems,Nobody fixes all the bugs. What are the key ones? Often based on most recent scars Often based on development or business goals Examples: Purify: memory leaks BoundsChecker: bou
8、nds violations Lint (back in K&R days): portability issues,Jon Pincus (Microsoft Research),11,Real code bases,Large code bases in nasty languages (e.g., C/C+) 1M+ LOC is medium-sized; 10M+ LOC is largeOr, smaller code bases in different nasty languages Perl, JScript, VBScript, HTML/DHTML, TCL/Tk, SQ
9、L 5000+ LOC is medium; 50K+ is large,Jon Pincus (Microsoft Research),12,More reality ,Most code bases involve multiple languages Extensions and incompatibilities, e.g. GCC/G+, MS C+, Sun C+ ECMAScript/JScript/JavaScript HTML versions People use all those nasty language features (e.g., casts between
10、pointers and ints, unions, bit fields, gotos, ),Jon Pincus (Microsoft Research),13,Something for (almost) nothing,Engineering time is precious Engineers are skeptical so are unwilling to commit their valuable time Dont even think about requiring significant up-front investment code modifications pro
11、cess changes,Jon Pincus (Microsoft Research),14,Examples: something for (almost) nothing,Purify for UNIX: just relink! BoundsChecker: you dont even need to relink! PREfix 2.X: point your web browser to a URL!A non-technology solution: “well do it for you” Commercial variant: an initial benchmark for
12、 $X Preferably: money back if it isnt useful In many cases, money is cheaper than engineering time ,Jon Pincus (Microsoft Research),15,“Revolutionary tools”,People may be willing to do up-front work to Enable something previously impossible Or provide order-of-magnitude improvements BUT! Still must
13、be significant problem, real code base Need compelling evidence of chance for success Any examples?,Jon Pincus (Microsoft Research),16,Outline,What makes a tool successful? Successful tools Analysis in context Implications for analysis Conclusion,Jon Pincus (Microsoft Research),17,PREfix,Analyzes C/
14、C+ source code Identifies defects GUI to aid understanding and prioritization Viewing individual defects Sorting/filtering sets of defects Integrates smoothly into existing builds Stores results in database,PREfix 2.X Architecture,Source Code,Model Database,Defect Database,Web Browser,C/C+ Parser,Jo
15、n Pincus (Microsoft Research),Jon Pincus (Microsoft Research),19,Counterintuitively ,Actual analysis is only a small part of any “program analysis tool”.In PREfix, 10% of the “code mass”,Jon Pincus (Microsoft Research),20,3 key non-analysis issues,Parsing Integration Build process Defect tracking sy
16、stem SCM system User interaction Information presentation Navigation Control,Jon Pincus (Microsoft Research),21,Parsing,You cant parse better than anybody else but you can parse worse Complexities: Incompatibilities and extensions Full language complexity Language evolution Solution: dont Alternativ
17、es: GCC, EDG, ,Jon Pincus (Microsoft Research),22,Integration,A tool is useless if people cant use it Implied: “use it in their existing environment” “Environment” includes Configuration management (SCM) A build process (makefiles, scripts, ) Policies A defect tracking system People have invested hu
18、gely in their environment They probably wont change it just for one tool,Jon Pincus (Microsoft Research),23,User interaction,Engineers must be able to Use the analysis results Understanding individual defects Prioritizing, sorting, and filtering sets of defects Interact with other engineers Influenc
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ANALYSISISNECESSARYBUTFARFROMSUFFICIENTPPT
