Providing Component-Based Software Crash Diagnostic Information for JAVA using Program Slicing
No Thumbnail Available
Date
2005
Authors
Journal Title
Journal ISSN
Volume Title
Publisher
Abstract
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.
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.
Description
Keywords
Java parser, Program slicing