欢迎来到天天文库
浏览记录
ID:57924332
大小:323.10 KB
页数:5页
时间:2020-04-14
《基于过程蓝图的静态代码控制流生成算法-论文.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、璧基于过程蓝图的静态代码控制流生成算法王觉,刘建宾,郑丽伟(北京信息科技大学北京100101)【摘要】对非结构化的程序代码进行理解分析对代码理解能力不强的测试人员存在一定难度。为了减轻静态代码分析的难度,本文首先采用程序切片算法将程序进行预处理,利用过程蓝图对代码进行可视化操作形成程序的中间表示形式抽象语法树。然后对其构造和特点进行研究,提出抽象语法树的遍历算法。通过该算法得到程序的控制流图。最后,利用控制流图和控制树,对静态代码进行高效的控制流分析,监测这些代码是否满足安全性、可靠性等方面的指标,为检测和处理软件缺陷降低成
2、本。【关键词】过程蓝图;静态代码分析;抽象语法树;控制流;控制树1引言和bug修复很耗时间,成本昂贵。相应的软件的检查今天信息化已经深入到生活中的方方面面。而计在程序完成之前就应该进行。算机程序是由人所设计和编写测试的,人的工作本身静态分析,是指不运行目标代码,对描述软件存在风险和不确定性,这样就产生了软件缺陷。由于在代码中的结构,对程序的静态信息进行提取,仅通编码问题造成的软件缺陷『21,是缺陷产生原因之一。有过分析源代码的结构、语法、过程、接口等来检验程序统计证明_11,在整个软件开发生命周期中,3o%N70%的正确性,
3、找出代码的隐藏错误和缺陷,例如空指针的代码逻辑错误和编码缺陷是可以通过静态代码分引用,递归错误等等。针对执行对象的不同分两种,一析l4l来发现和修正的。应用软件源代码静态分析,其特种是通过代码同行或者白盒测试人员进行codere—点是拥有程序源代码(分已知源码和未知源码),但是view,依赖于代码评审人员的个人经验。另一种是通过并不实际执行源码,对程序静态特征进行提取和分自动化错误模式匹配,使用静态代码检查工具进行检析,发现潜在的缺陷错误。过程蓝图『3_是一种可视化建测。逻辑错误是由于程序开发者没有按照程序设计者模语言,其具
4、有三层外部视图和统一结构的可视化行的思路来实现程序,这样导致程序可正常运行,不提为过程分析、详细设计和构造。其本质是一颗抽象语示出错,但结果与要求的不一致。较难以发现。因此,法树,它包括了概念层(ACSD)[1、逻辑层(ALSD)t3]、实现我们应该在自动化工具的基础上,更加发挥好人的逻层(AISD)[31三层描述和控制流与数据流二级映射。本辑思维方式,对代码进行人工走查。当然这是一个费文的目的在于对软件程序代码进行静态分析,通过切时和费力的工作。而自动化工具FindbugsN,Jtest等,片算法对程序切片后,利用过程蓝图
5、产生抽象逻辑结对代码进行编码规范的检查及编程风格检查,或者使构图和抽象实现结构图即抽象语法树l31。利用抽象逻用预定义的缺陷模式和源代码进行比对,迅速匹配发辑结构图消除与控制流和数据流无关的冗余代码,提现与缺陷模式匹配的代码错误或者软件缺陷。但由于取程序控制流特征进行分析,发现潜在的错误或漏由于程序的机械性,可能存在虚警和漏警的情景。不洞。论是人工对代码进行静态走查,亦或是通过自动化工2静态代码分析概述具进行错误模式匹配来发现缺陷,所有的分析工作都软件开发过程中,对代码的分析有两种形式。动是在对源程序进行词法语法分析,生成语
6、法分析树的态分析是指检测代码被全面执行的情况下,发现的是基础上进行的。运行时错误。这种方式一般在软件开发后期,代码被3过程蓝图抽象语法树概述整合成可运行代码时才能使用。然而系统的软件测试过程蓝图[31,是一种可视化过程建模语言,它可用基金项目:北京市教委人才培养模式创新实验区项目f京~[20091630号),北京市教委科技计划面上项目(KM201311232013)。2014年第10期『福建电脑·5·一~一一氐嚣一一~~SEQhalfSearchtint【l】art,intkey)于分析阶段、设计阶段和实现阶段对行为过程进行
7、描l⋯DCL~ntmin,max,mid述,实现无缝对接,形成可视化的过程制品文档。如抽l⋯OPErain=0I⋯OPEmax=art.1ength—i象概念结构图,抽象逻辑结构图和抽象实现结构图。I⋯WHLmin《malx过程蓝图一些相关基本概念介绍如下:lI⋯OPEmid=(min+max)/2Il一一一IFEke一arr[mmd]lI⋯THNIl⋯RETazr[mid]Il⋯ELSI.动作域,行为的基本单位,由三部分组成:li⋯IFEkey>artfDnd】lI⋯THN动作执行存在时序关系,类型多样,有可能会改ll⋯O
8、PErain=mid+iIl⋯ELS变系统状态。Il一一-OPEmax-mid-12.数据流,两个动作间的数据流动,能有效控制I⋯RET—i动作的有序,图2折半查找抽象语法树动作1,输出数据流a困作2,输入数据流a表示形式,在程序分析和程序模式识别领域有广泛应用。4过程蓝图生成控制流图的应
此文档下载收益归作者所有