簡易檢索 / 詳目顯示

研究生: 鐘淳文
論文名稱: Providing Component-Based Software Crash Diagnostic Information for JAVA using Program Slicing
Providing Component-Based Software Crash Diagnostic Information for JAVA using Program Slicing
指導教授: 鄭永斌
學位類別: 碩士
Master
系所名稱: 資訊工程學系
Department of Computer Science and Information Engineering
論文出版年: 2005
畢業學年度: 93
語文別: 英文
論文頁數: 66
中文關鍵詞: Java parser
英文關鍵詞: Program slicing
論文種類: 學術論文
相關次數: 點閱:166下載:0
分享至:
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報
  • The software nowadays is a black box to end user. It can allow users to configure which components to install, such as plug-in, and etc. But, after such initial configurations, the software remains as an abstract black box to end user. End users have no clues in the component inside a software. When software crash, end users can only accept the fact but can do nothing else. Unlike software, some daily used hardware, or consumer appliance may allow some extent of user configurations. For example, we can replace a malfunctioned part of a desktop computer by ourselves through some simple inspection and diagnosis.
    In this thesis, we propose a solution to address such issue. We use Java Class loader to execute a Java application and catch the exception when it occurs. Then, we use a Java parser to construct the component map of a Java application to show the architecture of the software to end-user. Program slicing technique is used to collect slices of each statement in the Java application. These slices are stored in XML format. When the Java application crashes and emits an exception, our monitor system catch the exception and conjecture the cause of exception via the slicing information stored in those XML. We compute a probability of each component in the component map. The probability shows the likelihood of the component to cause the crash of the application.

    The software nowadays is a black box to end user. It can allow users to configure which components to install, such as plug-in, and etc. But, after such initial configurations, the software remains as an abstract black box to end user. End users have no clues in the component inside a software. When software crash, end users can only accept the fact but can do nothing else. Unlike software, some daily used hardware, or consumer appliance may allow some extent of user configurations. For example, we can replace a malfunctioned part of a desktop computer by ourselves through some simple inspection and diagnosis.
    In this thesis, we propose a solution to address such issue. We use Java Class loader to execute a Java application and catch the exception when it occurs. Then, we use a Java parser to construct the component map of a Java application to show the architecture of the software to end-user. Program slicing technique is used to collect slices of each statement in the Java application. These slices are stored in XML format. When the Java application crashes and emits an exception, our monitor system catch the exception and conjecture the cause of exception via the slicing information stored in those XML. We compute a probability of each component in the component map. The probability shows the likelihood of the component to cause the crash of the application.

    Abstract 1 Chapter 1 Introduction 6 1.1 Motivation 6 Chapter 2 Background 10 2.1 Java basics 10 2.1.1 Class loader 10 2.1.2 Handle error with exception 11 2.1.3 Java Access Bridge 14 2.2 Program slicing 15 2.2.1 Static program slicing 15 2.2.2 Dynamic program slicing 17 2.3 Software component: JavaBean 20 2.4 ProGrammar 22 2.4.1 Introduction to ProGrammar 22 2.4.2 Build a Java parser with Programmar 23 2.4.3 The parser tree in Programmar 26 2.5 Dot 28 Chapter 3 Intercepting the exceptions 30 3.1 System architecture 30 3.2 The design of the java application loader 32 3.3 Monitoring and catching the exceptions 33 3.3.1 An overview of Java class loader 33 3.3.2 The implementation of a proprietary class loader 34 3.3.3 Catch the exception 37 Chapter 4 Using Program Slicing to Collect Slicing Profile For Crash Analysis 39 4.1 Using Programmar to parse Java source files 40 4.1.1 Information to construct component map 40 First, we need to create a component map that shows the relationship of all components of the program. Component includes class so the relation between components can be reduced to relation of classes across different components. 40 4.1.2 Information to conjecture crash causes 41 4.1 Program slicing Java source 42 4.2 42 4.2.1 Procedure of analyze the source 47 Chapter 5 Diagnose the exception 51 5.1 The work flow of diagnose the exception 51 5.2 Analyze exception using stack trace and slicing profile 52 5.3 Compute the probability 55 5.4 Example 60 5.4.1 The sample case 60 Chapter 6 Conclusions and Future works 64 6.1 A summary of implementation tasks 64 6.2 Future Works 65 6.2.1 Displaying the component map more clearly 65 6.2.2 Diagnose the exception more correctly 65 6.2.3 Configurable software component 66

    Yung-Pin Cheng, "Crafting a Promela front-end with Abstract Data Types to Mitigate the Sensitivity of (Compositional) Analysis to Implementation Choices." to appear in Lecture Notes in Computer Sciences 2005 (SPIN 2005) PDF
     
    Yung-Pin Cheng, Michal Young, Che-Ling Huang, and Chia-Yi Pan, "Towards Scalable Compositional Analysis by Refactoring Design Models" Proceedings of the ACM SIGSOFT 2003 Symposium on the Foundations of Software Engineering (FSE2003) , Helsinki, Finland, Sep. 2003. (also appear in ACM Software Engineering Notes, pp. 247-256, Vol 28 ,Issue 5, 2003.) PDF PS
     

    Yung-Pin Cheng, “Refactoring Design Models for Inductive Verification,” Proceedings of the ACM SIGSOFT 2002 International Symposium on Software Testing and Analysis. (ISSTA2002) Rome, Italy, July 22-24, 2002. (also appear in ACM Software Engineering Notes , pp 164-168, Vol. 27, No. 4 2002.) PDF PS
     

    Yung-Pin Cheng and Keh-Ren Wu “Reasoning about Many Data Values without Data Independence Constraints”, In Proceedings of 1st International Conference on Automated Technology for Verification and Analysis, 2003, Taipei, Taiwan. (ATVA 2003).
     

    Yung-Pin Cheng, Chia-Yi Pan, Che-Ling Huang, and Keh-Ren Wu “CoCoV- Compositional Concurrency Verifier with Design Model Refactoring,” In Proceedings of 14th Workshop on Object-Oriented Technology and Applications, ChungLi, Taiwan, Sep. 2003.
     

    Yung-Pin Cheng, “Awk-Linux: An Educational Operating System by Program Instrumentation.” in Proceedings of IASTED International Conference on
    Computers and Advanced Technology in Education, Rhodes, Greece, June 30-July 2, 2003. PDF
     

    Yung-Pin Cheng and Michal Young, “Semi-Automated Refactoring of Design Models for Compositional Analysis.” Working Conference on Complex and Dynamic Systems Architecture, pp. 137-139 Brisbane, Australia, December, 2001.
     

    Yung-Pin Cheng and W. H. Tsai, “New Feature Extraction Scheme for Neocognitron,” Proceedings of 1993 Third National Workshop on Character Recognition, pp. 31-50, Taiwan.

    QR CODE