首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到18条相似文献,搜索用时 125 毫秒
1.
一种基于异常传播分析的数据流分析方法   总被引:8,自引:0,他引:8  
异常处理是一种用来检测异常并对其进行处理的技术.异常传播改变了程序原来的执行路线,从而改变了程序中的数据流.在进行数据流分析时,如果不考虑异常传播对其造成的影响,则得到的信息将是不准确的.在分析C++异常传播机制和异常传播对数据流分析影响的基础上,提出一种包含异常传播信息的函数间控制流图的构建方法.该控制流图可以清晰地表示出异常的隐式控制流和异常的传播路径;然后提出了基于异常传播分析的数据流分析方法,并给出相应的算法.该方法既克服了因忽略异常传播对数据流影响而造成分析结果不准确的不足,又有助于实现异常传播数据流分析的自动处理;最后用一个实例验证了该方法的可用性.该方法可以为结构测试、回归测试、程序切片等软件工程任务提供相关信息.  相似文献   

2.
一种基于异常传播分析的依赖性分析方法   总被引:7,自引:0,他引:7  
在分析异常处理结构对程序依赖性分析影响的基础上,对传统的控制流图进行改进,提出了一种新的能够描述包括异常处理结构在内的函数内和函数间的C++程序的依赖性分析模型,并给出了相应的构造算法.该方法既克服了因忽略异常处理结构对程序依赖性的影响而造成分析结果不准确的不足,又有助于实现基于异常传播的程序依赖性分析的自动处理.最后,对这种依赖性分析方法在程序切片中的应用作了进一步的探讨.  相似文献   

3.
异常处理是现代程序设计语言提供的用来提高软件健壮性的一种机制。由于在C^++的函数界面中并不要求声明该函数所能传播出的异常的类型,所以要想提高系统的健壮性,必须清楚在程序的执行过程中可能引发的异常、异常的传播路径等。然而在大型系统中,要想确定这些信息是非常困难的。本文针对C^++的异常处理机制,首先提出了一个描述C^++异常结构信息的模型,并把该模型应用于递归函数中。然后,描述了一个基于该模型的分析C^++程序异常结构信息的工具CETool。该工具能提供所有显式引发异常的有关信息,为系统中异常处理结构的改进和程序的结构测试提供有价值的信息。最后给出了该工具的实现方法和应用实例。  相似文献   

4.
异常处理机制能增强程序运行的可靠性,提高软件的健壮性,但异常处理代码本身可能存在错误.由于它的特殊性。采用与测试普通代码同样的方法对其进行测试,通常效率不高而且很难达到预期的效果.在分析了利用断言违背策略进行软件故障注入技术的基础上,提出了将Java异常处理机制的特殊结构同断言违背策略、程序变异技术相结合,可以有效地测试异常处理代码。并设计工具来支持这种故障注入方法.  相似文献   

5.
C++程序中异常处理的分析与测试技术研究   总被引:2,自引:1,他引:2  
异常处理机制是一种运行时错误通知机制,将程序的正常控制代码和错误处理代码分离.然而异常机制的引入使得程序控制信息变得更为复杂;且开发人员一般难以熟练使用它,导致程序中会潜伏许多异常错误.扩展已有的显式异常分析技术,对隐式异常也进行了全面的分析并提出了过程间(内)控制流图的构造方法,并以此为基础给出了一个C++程序健壮性改进模型.同时还提出了针对异常的两种动态测试策略:基于约束求解的异常测试策略和统计结构性异常测试策略.最后实现了一个初步的异常分析与测试原型工具并进行了初步实验分析,其结果表明本文提出的分析与测试方法对程序质量有较大程度的提高.  相似文献   

6.
一种分析异常传播路径的方法   总被引:1,自引:1,他引:0       下载免费PDF全文
异常的传播会给程序的分析、理解、测试和维护工作带来很多困难。为了解决目前在分析异常传播路径中表示方法过于复杂的问题,该文针对C++的异常机制建立异常控制流图模型,在分析异常在传播过程中各种关系的基础上建立异常传播图模型,并对异常传播图在结构测试中的应用进行讨论。使用该模型可以准确清晰地表示出异常传播的路径,大大简化异常传播路径的分析。  相似文献   

7.
以数据流分析为基础的程序理解是软件工程重要研究领域之一.现在大多数的程序设计语言提供了异常处理机制,但程序中的异常结构会影响数据流分析.如果不考虑这种影响,把得到的数据流分析信息用于程序理解中,会产生严重的后果.文中以Java语言程序为例,提出了一种数据流分析方法,该方法充分考虑了异常结构对数据流分析的影响,从而保证数据流分析信息的正确性与准确性.  相似文献   

8.
异常处理是一种有效提高软件健壮性的方法,处理不当将导致严重的软件失效。提出一种通过分析Java程序异常信息、由开发平台给出异常处理代码提示的方法,以提高开发效率,并提出一种包含异常结构的Java程序异常控制流图构造方法,用于程序分析和优化。基于Eclipse开发环境,设计了一个异常信息分析插件,用于分析Java程序异常信息,给出了代码提示,生成了异常控制流图,以帮助开发人员更快更好地书写异常处理代码。  相似文献   

9.
提出了一种新的并行Java程序异常处理的监护模型。该模型针对并行Java程序异步信息传递方式进行异常处理。当并行Java程序的某个线程出现异常时,该线程的监护模块把检测到的异常情况的信息传递到其它线程的监护模块,每个线程根据当前事项与异常事项的向量时钟关系,对当前事项进行回滚或停止操作,以达到对并行Java程序的保护。过去一些并行程序的监护方案是在信息交换的基础上把并行程序结构化为许多原子行为,把多个并行异常当作单个异常进行处理,具有较大的局限性。提出的监护模型是从全局上对并行Java程序的异常情况进行处理,并指导每个线程根据自身情况作出相应反映。实验证明提出的新的并行Java程序监护模型具有较强的实际操作性,并能有效地保护并行Java程序。  相似文献   

10.
不可达路径增加了程序的复杂度和冗余度,不可达路径的检测是结构测试中的一个关键问题。提出了一种包含异常处理结构的程序不可达路径的静态检测方法。该方法根据数据流信息判断产生冲突的分支,进而利用分支冲突检测路径的可达性;在数据流分析时考虑异常处理结构和变量别名对数据流信息的影响。实例分析结果表明,该方法可以进一步提高路径可达性检测的准确度。  相似文献   

11.
赵雪峰  姜淑娟  张艳梅 《计算机工程》2011,37(11):94-96,102
现有异常传播分析方法大多局限于单个类内部,不能满足现实软件开发的需求。为此,提出一种面向对象程序的异常传播分析方法,在类控制流图的基础上构建面向对象异常传播分析(OEPAG)图,通过得到异常在类间的传播路径并确定类间关系,从而对控制流和数据流进行有效分析。应用结果表明,将OEPAG图用于含异常处理结构的程序切片时的结果比传统程序切片结果更准确。  相似文献   

12.
异常处理机制是程序设计语言的重要特征之一,它为开发可靠性系统提供了强有力的支持。但异常处理代码必须仔细编写,否则可能破坏程序的一致性。提出了基于扩展的程序依赖图,通过静态分析来发现程序中异常非原子性代码的方法,同时给出了自动的部分屏蔽异常非原子性代码的方法。  相似文献   

13.
Since the signature of an Ada subprogram does not specify the set of exceptions that the subprogram can propagate, computing the set of exceptions that a subprogram may encounter is not a trivial task. This is a source of error in large Ada systems: for example, a subprogram may not be prepared to handle an exception propagated from another subprogram several layers lower in the call-tree. In a large system, the number of paths in exceptional processing is so great that it is unlikely that testing will uncover all errors in inter-procedural exception handling. Nor are compilers or code inspections likely to locate all such errors. Exception handling is an area where static analysis has a high potential payoff for systems with high reliability requirements. We discuss fundamental notions in computing exception propagation and describe an analysis tool that has proved to be effective in detecting inconsistencies in the exception-handling code of Ada applications.  相似文献   

14.
异常处理是现代程序设计语言的一个重要特征,它为检测和恢复软件系统在运行时的错误、构建系统的容错处理提供了强有力的支持。本文分析了FORTRAN 2000的异常处理机制,并提出一种扩充方案,引入用户定义异常和异常处理区的概念,改进了异常的传播机制,从而使FORTRAN编程更好地实现普通代码和异常处理代码的分离,提高了程序的可读性和可维护性。  相似文献   

15.
异常的检测和处理是工作流系统执行过程中必须解决的关键性问题之一.给出了异常的分类,并给出了异常自身及其处理方法的形式化描述;实现了利用消息传递机制作为异常的检测方法,并结合异常适应库来提供异常处理的执行策略和处理措施;通过为相应的措施设计特定的操作原语,从而为其转变为实际的编码提供了可能.  相似文献   

16.
Java异常处理     
异常处理是Java程序设计中一个非常重要的机制,也是程序设计的一大难点,就异常和异常处理方式等方面进行介绍,并通过一个实例来验证异常。  相似文献   

17.
Exception handling mechanisms provide a structured way to deal with exceptional circumstances, making it easier to read and reason about programs. Exception handling, however, cannot avoid the problem that the transfer of control might leave the program in an inconsistent state—resources might leak, invariants might be violated, the program state might be changed. Since client code often needs to know how a program behaves in the presence of exceptions, the exception-safety classification distinguishes three different classes of safety guarantees; this classification is used, for example, during the review process in the Boost organization for standardized libraries in C++. Classifying the safety level of a procedure requires understanding program invariants and tracking program state at any given point in the code, which is error-prone when done by hand. Yet, no tool support is available to date. In this paper we present the first automated analysis for exception guarantees. Since the safety level of an arbitrary procedure is undecidable, the analysis conservatively approximates exception safety . The analysis is based on the theory of backward data-flow analysis and recognizes two of the three safety guarantees, the strong and the no-throw guarantee, and provides counterexamples otherwise. A prototype implementation is available.  相似文献   

18.
张聪品  糜宏斌 《计算机工程》2003,29(15):118-120
目前,开发和运行企业过程的最好工具是工作流管理系统,对于企业这样复杂的应用系统,出现异常是非常频繁和正常的,但企业要求工作流管理系统不仅在正常情况下发挥作用,而且需要灵活地处理各种异常情况。文章设计了数字银行的电话收费业务的异常处理机制,使用JECA规则描述异常处理,同时采用基于CBR的异常处理机制提高系统的灵活性和柔性,增强系统处理异常的能力。  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号