一个静态程序缺陷查找工具的设计与部分实现

来源 :北京大学 | 被引量 : 0次 | 上传用户:a5354796
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
软件缺陷是导致软件质量下降,软件成本升高,开发周期加长等的重要因素。为了帮助程序员更快的查找软件缺陷,研发人员们经过不懈努力,提出了一些行之有效的方法,静态分析就是众多方法之一。   静态分析通过分析程序的源代码或者目标码,推测程序运行时可能表现出来的异常行为,进而发现代码中可能存在的缺陷。对程序进行静态分析的技术有很多,如自动定理证明、模型检测、抽象解释、符号执行和基于缺陷模式匹配的代码分析等。近年来,研究人员使用基于缺陷模式匹配的代码分析技术,开发出了许多十分有效的静态程序缺陷查找工具,如FindBugs、PMD、Jlint、Lint4j、Metacompilation和SABER等。但这些工具并没有提供足够方便易用的扩展方式让用户添加新的缺陷模式,即它们的扩展性不够好。   本文设计了一个易扩展的基于缺陷模式匹配的静态程序缺陷查找工具——CODA(COde Defect Analysis)。与其他同类工具相比,CODA着重考虑了工具的扩展性。具体说来,CODA为用户提供若干简便易用的模板来帮助用户添加两大类不同的缺陷模式:(1)与方法调用相关的缺陷模式,和(2)与类继承、接口实现相关的缺陷模式。   此外,本文还介绍了CODA中的部分实现,以及涉及到的一些常用分析技术,如控制流图分析、类型分析、常量传播分析、活性变量分析、空指针分析、锁计数分析等等。
其他文献
随着软件的规模和复杂度不断地增大,对软件质量也提出了更高的要求;软件测试作为保证软件质量的重要手段,也因此日渐受到重视。图形用户界面(GUI)是软件的重要组成部分,其测试工
分布式存储系统作为数据存储的基础,广泛应用于大数据领域。纠删码存储方式,既具有较高的空间利用效率,又能保证数据存储的可靠性,越来越多地应用于存储系统当中。但纠删码的引入
基于软件无线电的软件GPS接收机具有传统硬件接收机所不具备的灵活性和适应性,已经成为了GPS接收机研究的热点问题。软件GPS接收机与传统硬件接收机的最大区别就在于将运算密
随着企业之间竞争的日益加剧,工作流技术作为支持现代企业经营管理信息化、过程自动化的一项关键性技术,己成为当前的重要研究方向之一。目前工作流技术在审批中的应用十分广
随着Web服务数量的增多,服务发现过程中不可避免的会出现多个功能相同的候选服务共存的情况。如何从这些服务中选择出最可信、最能满足用户期望的服务,成了关键性的问题,也是
近年来,虚拟现实技术的发展极大地促进了人类探索宏观世界和微观世界的能力,为一些不便于直接观察事物运动变化规律的探索活动拓展了认识空间。视景仿真设计作为虚拟现实技术重
处理器设计离不开软硬件的协同合作。龙芯处理器经过不断的发展,目前的处理器已经具有先进的结构设计。但是随着多媒体应用的逐步扩展,SIMD计算模式已经从游戏机器和DSP机器扩
计算机已经广泛地应用于航空、航天、武器装备、工业控制、交通、金融和医疗等领域,这些系统越来越多地使用软件进行控制,软件是否正确运行已经关系到人的生命安危,软件失效
根系是植物从土壤中获取养分和水分的重要器官,根系的生长分布状况直接影响植物吸收水分和养分的能力。长期以来缺乏直接从土壤中获取根系原位形态参数的无损检测分析方法成了
工作流是20世纪90年代发展起来的一种反映业务流程计算机化的模型,是为了在先进计算机环境支持下实现经营过程集成与经营过程自动化而建立的可由流程管理系统执行的业务模型