异常传播分析技术及其应用研究

异常传播分析技术及其应用研究

论文摘要

随着软件规模的扩大,程序复杂度的增强,对程序的可靠性和健壮性的要求越来越高。异常处理机制是程序设计语言提供的一种用来检测异常并对其进行处理的技术。使用异常处理机制时,一个必须考虑的问题是异常的传播。引发异常的位置不一定是处理异常的位置,异常可能传播出它被引发的函数。异常的传播会引发程序的提前终止,改变程序原来的执行路线,从而改变程序中各种数据之间的控制关系和依赖关系;异常的传播增加了函数之间的耦合,给程序的测试、理解和维护带来了困难。异常传播如果处理不当,会直接影响软件的可靠性和健壮性。因此,对异常传播分析技术及其应用的有关问题进行研究不仅具有重要的理论意义,也具有广阔的应用前景。本文在对C++的异常传播机制进行分析的基础上,首先建立了C++程序的异常传播分析模型,分析了异常传播路径。然后对包括异常传播的C++程序中控制流、数据流、控制依赖和数据依赖的分析方法进行了研究,并积极探索其在软件工程任务中的应用。最后对异常传播分析工具的有关实现问题进行了探讨。本论文取得的成果主要包含如下几个方面:·为了分析C++程序中异常的传播,我们在充分研究C++异常处理机制的基础上,提出一种适于分析C++程序的异常传播的分析模型,该模型可以计算一定范围内(如一个类,一个函数等)可能引发异常的类型、可能传播出异常的类型等。针对递归函数本身的特殊性,提出一种适于递归函数的异常传播分析方法,该方法比现有的递归函数的异常传播分析方法更为简单。开发了基于该模型的异常分析辅助工具,使用该工具可以帮助程序的开发人员发现程序中潜在的问题,从而为异常处理结构的改进提供依据。·为了解决目前在分析异常传播路径中表示方法过于复杂的问题,我们提出了一种新的异常传播的表示方法——异常传播图,它由组成程序的各个函数的简化的异常控制流图组成。在该异常传播图上,异常的传播路径一目了然,并实现了异常传播路径的可视化显示。与目前已有方法相比,这种异常传播图更简洁、直观、有效。·为了分析异常传播对程序控制流、数据流、控制依赖和数据依赖的影响,我们提出了一种适于分析包括异常传播的C++程序的控制流、数据流、控制依赖和数据依赖的分析方法。通过这种分析方法获得的信息,应用到软件的结构测试,可以提高测试的效率和异常处理代码的测试覆盖率;应用到程序切片中,可以提高程序切片的精确度。

论文目录

  • 摘要
  • Abstract
  • 第一章 引言
  • 1.1 选题依据
  • 1.2 国内外研究现状
  • 1.2.1 异常处理结构分析与异常传播分析
  • 1.2.2 异常处理的分析方法与分析工具
  • 1.3 主要研究内容
  • 1.4 主要创新点
  • 1.5 论文的结构
  • 第二章 异常处理机制的比较
  • 2.1 基本概念
  • 2.1.1 异常和异常处理程序
  • 2.1.2 异常处理模型
  • 2.1.3 异常的引发与匹配
  • 2.1.4 异常的传播
  • 2.1.5 异常处理程序的绑定方式
  • 2.1.6 清理活动
  • 2.2 几种异常处理机制及其比较
  • 2.2.1 Ada语言的异常处理机制
  • 2.2.2 C++语言的异常处理机制
  • 2.2.3 Java语言的异常处理机制
  • 2.2.4 Ada语言、C++语言和Java语言的异常处理机制比较
  • 2.3 小结
  • 第三章 异常传播分析模型
  • 3.1 问题分析
  • 3.2 异常传播分析模型CEM
  • 3.3 模型CEM的局限性
  • 3.4 实例分析
  • 3.5 递归函数的异常传播分析
  • 3.5.1 相关的研究
  • 3.5.2 C++程序中递归函数的异常传播分析方法
  • 3.6 在程序开发中的应用
  • 3.7 小结
  • 第四章 异常传播路径分析
  • 4.1 相关工作分析
  • 4.2 异常控制流图
  • 4.3 异常传播图
  • 4.4 算法复杂性分析
  • 4.5 异常处理策略的评价
  • 4.6 在结构测试中的应用
  • 4.7 小结
  • 第五章 异常传播对程序控制流和数据流的影响分析
  • 5.1 异常传播对控制流分析的影响
  • 5.2 适于异常传播分析的控制流分析方法
  • 5.2.1 函数内的控制流分析
  • 5.2.2 函数间的控制流分析
  • 5.2.3 算法复杂性分析
  • 5.3 异常传播对数据流分析的影响
  • 5.4 适于异常传播分析的数据流分析方法
  • 5.4.1 实例分析
  • 5.4.2 分析方法
  • 5.4.3 数据流方程
  • 5.4.4 算法的复杂性分析
  • 5.4.5 实例应用
  • 5.5 相关工作比较
  • 5.6 在异常处理机制测试中的应用
  • 5.7 小结
  • 第六章 异常传播对程序依赖性的影响分析
  • 6.1 引言
  • 6.2 异常处理结构对程序依赖性的影响
  • 6.3 函数内依赖性分析
  • 6.4 函数间依赖性分析
  • 6.4.1 函数间的依赖关系
  • 6.4.2 构建系统依赖图
  • 6.4.3 系统依赖图的特点
  • 6.5 在程序切片中的应用
  • 6.6 相关工作比较
  • 6.7 小结
  • 第七章 异常传播分析工具的设计与实现
  • 7.1 系统框架
  • 7.2 系统主要数据结构
  • 7.3 系统主要界面
  • 7.4 小结
  • 第八章 总结与展望
  • 8.1 论文总结
  • 8.2 未来工作的展望
  • 致 谢
  • 主要参考文献
  • 附录一 攻读博士学位期间完成的论文列表
  • 附录二 攻读博士学位期间参加的科研项目列表
  • 相关论文文献

    • [1].程序设计语言的异常处理机制探讨[J]. 信息与电脑(理论版) 2010(08)
    • [2].浅谈C#程序中的异常处理机制[J]. 计算机安全 2010(12)
    • [3].Java异常处理机制的研究[J]. 电脑开发与应用 2008(11)
    • [4].浅谈C#中的异常处理机制[J]. 甘肃科技 2013(07)
    • [5].论异常与异常处理机制[J]. 电子制作 2013(12)
    • [6].一种基于职责链模式的异常处理机制[J]. 北华大学学报(自然科学版) 2012(04)
    • [7].程序语言中的异常处理机制[J]. 科技信息(科学教研) 2008(19)
    • [8].半导体设备异常处理机制方法的研究[J]. 电子工业专用设备 2011(10)
    • [9].Java异常处理机制及其在项目中的应用[J]. 信息系统工程 2011(11)
    • [10].实时卷复制协议中的异常处理机制研究[J]. 航空计算技术 2009(04)
    • [11].组合服务事务的异常处理机制研究[J]. 计算机工程与设计 2008(08)
    • [12].Java的异常处理机制[J]. 唐山师范学院学报 2008(02)
    • [13].用异常处理机制获取程序继续[J]. 北京工业大学学报 2011(02)
    • [14].基于Java异常处理机制的分析[J]. 吉林农业科技学院学报 2009(01)
    • [15].Java异常处理机制的案例剖析[J]. 电脑学习 2008(04)
    • [16].Java异常处理机制使用经验与技巧[J]. 百色学院学报 2008(03)
    • [17].JAVA异常处理机制——经验与技巧[J]. 电脑知识与技术 2013(15)
    • [18].Java中异常处理机制的发展过程[J]. 信息与电脑(理论版) 2012(14)
    • [19].浅析Java异常处理机制[J]. 电脑知识与技术 2012(27)
    • [20].Cortex-M3的异常处理机制研究[J]. 单片机与嵌入式系统应用 2009(02)
    • [21].一个异常处理统计工具的设计与实现[J]. 中国科技信息 2008(21)
    • [22].浅析Java异常处理机制及应用[J]. 电子制作 2014(17)
    • [23].基于Java的异常处理机制及其应用的探讨[J]. 科技致富向导 2014(29)
    • [24].Java异常处理机制探讨[J]. 科技视界 2013(35)
    • [25].Java异常处理机制及应用研究[J]. 忻州师范学院学报 2012(02)
    • [26].基于Windows的C++异常处理机制研究[J]. 信息工程大学学报 2010(03)
    • [27].简述Java语言的异常处理机制[J]. 信息与电脑(理论版) 2010(22)
    • [28].Java的异常处理机制[J]. 今日科苑 2008(18)
    • [29].C#和.NET中的异常处理机制浅析[J]. 电脑知识与技术 2015(15)
    • [30].Windows异常处理机制研究[J]. 软件导刊 2012(11)

    标签:;  ;  ;  ;  ;  ;  

    异常传播分析技术及其应用研究
    下载Doc文档

    猜你喜欢