包含异常处理的Java程序切片研究

被引量 : 0次 | 上传用户:liping668
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
程序切片是一种分析和理解程序的技术,通过分析程序语句之间的依赖性关系自动分解源程序。程序切片技术在软件工程领域有广泛的应用,例如程序理解、调试、维护、测试以及反向工程等。Java系统依赖图(JSDG)可以用来表示Java程序,在Java系统依赖图中,结点表示语句或者谓词,边表示控制和数据依赖关系。利用Java系统依赖图,我们可以有效地计算程序切片。 Exception是一类用于错误处理的特殊对象,它在Java方法出错时被创建,并利用try/catch/finally机制抛出、检测和处理异常。当前的程序切片算法都不能正确有效地处理异常结构,因为它们没有或不能正确的考虑异常引入的附加数据和控制依赖关系。 在本文中讨论了异常结构对程序控制依赖和数据依赖的影响,采用了一种新的策略来处理异常结构。新策略将try、catch、finally块视为方法,并将可能抛出异常的调用点视为谓词结点,这样可以表示异常对象附加的数据和控制依赖关系,构造出包含异常处理结构的Java系统依赖图。本文还提出了另外一种方法,为每个调用点增加正常返回结点,对于可能抛出异常的调用点增加异常返回结点;为每个方法增加正常退出结点,对于可能抛出异常的方法增加异常退出结点,并将异常调用的返回结点视为谓词结点,用这种方法构造的系统依赖图更加精确。文章还给出了适合这种系统依赖图构造的一些相关算法。 本文还给出了一种源程序分析框架,利用JavaCC和JTB生成语法分析器和访问器,实现对源程序信息的提取,并定义了一系列层次化的类结构保存源程序信息。这些类结构能够保存源程序的结构信息,包括类之间关系,类与方法之间关系,类与语句之间关系等。 最后,本文还实现了一个Java程序切片原型系统,为Java程序提供了软件分析平台。通过这个平台,我们可以得到类层次图、方法调用图、方法控制流图、方法控制依赖图、方法数据依赖图和程序切片。
其他文献
成人教育是我国教育体系的重要组成部分。由于成人高等教育自身学习形式、学习层次、学习方式多样化,教育教学体制复杂,学籍信息不仅是成人教育的一项重要的数据资源,学籍管
任何社会都面临风险和不安全,同时,通过一种发展模式不断制造新的风险和不安全。因此,对风险的防范是一个战术性的问题,更是一个战略性的问题。从社会变迁和风险词义演变来看
本文选题直接来源于笔者多年来的工作实践。笔者曾伴随着上海教育电视台走过了从筹备、成立、发展到今天成为我国教育电视领域的排头兵、领头羊的全过程。在长期的教育电视节
本文以郭东林等盗伐林木案为实证,对实务界长期以来在盗伐林木犯罪定性、量刑等方面存在的分歧进行了剖析。文章论证了盗伐数量与盗伐林木罪定罪量刑的关系,对盗伐数量的认定
本文以苯和丙烯烷基化合成异丙苯为模型反应,系统考察了成型条件对β分子筛催化剂宏观性能的影响(包括活性、选择性、强度、寿命和孔结构等)。 首先以单因素实验法考察了粘
目的:本研究旨在以两组药物流产后阴道出血患者治疗的随机对照研究,来评价神阙贴与益母草冲剂联合用药对药物流产后阴道出血的有效性和安全性,为临床提供治疗药流后阴道出血
人力资源以其所独具的难以模仿、稀缺等特点日益成为私营部门间实现差异化,发挥竞争优势的最重要的战略性资源。人力资源作为任何一个组织系统最核心的构成要素,对于公共部门
在纤维复合材料加固混凝土领域中已大量使用成本昂贵的环氧树脂,而有机树脂的耐光、耐热和防火性明显低于混凝土。根据既有无机胶粘剂的性能,我们提出应研发加固混凝土用氯氧
文章利用金融地理学这门新兴的边缘学科,以金融的空间差异、空间过程和空间的相互作用为主线,将金融地理学的理念贯穿始终,论文层层递进,构成有机整体,剖析了我国区域金融成
随着世界经济的发展,居民个人和家庭逐渐成为社会财富的主体,全球日益融合的经济自由化、贸易全球化趋势推动商业银行朝自由化、综合化、全能化、全球化方向发展,日新月异的