Font Size: a A A

Exception Propagation Analysis And Its Applications

Posted on:2007-09-10Degree:DoctorType:Dissertation
Country:ChinaCandidate:S J JiangFull Text:PDF
GTID:1118360212965578Subject:Computer application technology
Abstract/Summary:PDF Full Text Request
Modern object-oriented software systems are growing in size and complexity and have to cope with an increasing number of exceptional conditions to meet the systems'dependability requirements. Exception handling mechanism provided by programming language is a technology that detects and handles exception. When we use exception mechanisms to develop reliable and robust applications, a fundamental issue that must be addressed is the exception propagation. The exception may propagate outside the functions in which it is raised. Because of exception propagation aborting the program's execution and changing its executing path, it will inevitably change the control relationship and dependency relationship between variables in program. Since exception propagation increases inter-function coupling, there are many difficulties to solve in program analysis, understanding, testing and maintenance. Failures to account for the effects of exception propagation can result in unreliable software. Therefore, the study of exception propagation analysis technology and its applications has not only the theory significance, but also the wide applications foreground.In this paper, it presents a model that can describe the C++ programs with exception handling constructs based on analyzing the exception propagating mechanism of C++ languages, and analyzes the exception propagation path. Then it describes the analyzing methods in control flow, data flow, control dependence and data dependence of the programs that contain exception propagations. It also discusses the applications of the analysis methods in the tasks of software engineering. The implementation of analyzing exception propagation tool is also discussed.The main contributions of the paper are listed as follows.(1) To analyzing the exception propagation of C++ program, it presents a model that can describe the exception handling information of C++ programs based on analyzing the exception propagating mechanism of C++ languages. It can figure out the exceptions types that may be raised during executing program, the exceptions types that may propagate. According to the particularity of recursive functions, it proposes a new static analysis approach to analyze C++ recursive functions with exception handling constructs. The method is simpler than the approaches that analyze recursive functions now. Then it describes CETool, a static analysis tool we have developed to provide exception-flow information for C++ systems based on this model. The information is helpful to support the finding some potential problems and the improvements of exception handling structure of a system.(2) To solve the problem that the representation is too complex in describing exception propagation path, it proposes a precise and efficient representation, Exception Propagation Graph, for the C++ programs with exception handling constructs. The method can easily gain the paths of exception propagation. Then we develop a visualization tool to visualize the exception propagation path. The exception propagation graph is more concise and more efficient than others.(3) To analyzing the effect of exception propagation on control flow analysis, data flow analysis, control dependence analysis and data dependence analysis, it proposes an efficient method to analyze control flow, data flow, control dependence and data dependence of C++ programs that contain exception propagations. If the information obtained by this method is used in structure testing, it can improve the testing efficiency and the testing coverage of exception handling code. If the information obtained by this method is used in program slicing, it can improve the precise of slicing.
Keywords/Search Tags:exception handling, exception propagation, program analysis, data flow analysis, dependence analysis, program testing
PDF Full Text Request
Related items