Results 1 -
5 of
5
Slicing Concurrent Java Programs
- In Proceedings of the 7th IEEE International Workshop on Program Comprehension
, 1999
"... Although many slicing algorithms have been proposed for object-oriented programs, no slicing algorithm has been proposed which can be used to handle the problem of slicing concurrent Java programs correctly. In this paper, we propose a slicing algorithm for concurrent Java programs. To slice concurr ..."
Abstract
-
Cited by 31 (6 self)
- Add to MetaCart
Although many slicing algorithms have been proposed for object-oriented programs, no slicing algorithm has been proposed which can be used to handle the problem of slicing concurrent Java programs correctly. In this paper, we propose a slicing algorithm for concurrent Java programs. To slice concurrent Java programs, we present a dependence-based representation called multithreaded dependence graph, which extends previous dependence graphs, to represent concurrent Java programs. We also show how static slices of a concurrent Java program can be computed efficiently based on its multithreaded dependence graph. 1 Introduction Java is a new object-oriented programming language and has achieved widespread acceptance because it emphasizes portability. Java has multithreading capabilities for concurrent programming. To provide synchronization between asynchronously running threads, the Java language and runtime system uses monitors. Because of the nondeterministic behaviors of concurrent J...
Slicing Object-Oriented Programs
- Proceedings of the APSEC'97
, 1997
"... Program slicing has various applications in the fields of software engineering. The Object-Oriented (00) paradigm introduces the features of abstraction, encapsulation, inheritance, and polymorphism to programs, but is not considered current program slicing techniques. In this paper, we define two t ..."
Abstract
-
Cited by 13 (0 self)
- Add to MetaCart
Program slicing has various applications in the fields of software engineering. The Object-Oriented (00) paradigm introduces the features of abstraction, encapsulation, inheritance, and polymorphism to programs, but is not considered current program slicing techniques. In this paper, we define two types of program slices, state and behavior slices, by taking the dependencies of O0 features into consideration. A state slice for an object is a set of messages and control statements that might affect the state of the object, while a behavior slice is a set of attributes and methods defined in related classes that might affect the behavior of the object. These slices may facilitate programmers to debug and understand O0 software. The algorithms that developed based on an Object-oriented Dependency Graph to compute these slices can get more precise result by exploring the internal dependencies of complex objects.
Multithreaded Dependence Graphs for Concurrent Java Programs
- In Proceedings of 1999 International Symposium on Software Engineering for Parallel and Distributed Systems
, 1999
"... Understanding program dependencies in a computer program is essential for many software engineering activities including program slicing, testing, debugging, reverse engineering, and maintenance. In this paper, we present a dependence-based representation called multithreaded dependence graph, which ..."
Abstract
-
Cited by 12 (1 self)
- Add to MetaCart
Understanding program dependencies in a computer program is essential for many software engineering activities including program slicing, testing, debugging, reverse engineering, and maintenance. In this paper, we present a dependence-based representation called multithreaded dependence graph, which extends previous dependence-based representations, to represent program dependencies in a concurrent Java program. We also discuss some important applications of a multithreaded dependence graph in a maintenance environment for concurrent Java programs. 1 Introduction Java is a new object-oriented programming language and has achieved widespread acceptance because it emphasizes portability. Java has multithreading capabilities for concurrent programming. To provide synchronization between asynchronously running threads, the Java language and runtime system uses monitors. Because of the nondeterministic behaviors of concurrent Java programs, predicting, understanding, and debugging a conc...
Applying Program Dependence Analysis To Java Software
- Proc. Workshop on Software Engineering and Database Systems, 1998 International Computer Symposium
, 1998
"... Understanding program dependences is essential for many software engineering activities including program slicing, testing, debugging, reverse engineering, maintenance, and complexity measurement. This paper presents the software dependence graph for Java (JSDG), which extends previous dependence-ba ..."
Abstract
-
Cited by 11 (2 self)
- Add to MetaCart
Understanding program dependences is essential for many software engineering activities including program slicing, testing, debugging, reverse engineering, maintenance, and complexity measurement. This paper presents the software dependence graph for Java (JSDG), which extends previous dependence-based representations, to represent various types of program dependences in Java software. The JSDG consists of a group of dependence graphs which can be used to represent Java methods, classes and their extensions and interactions, interfaces and their extensions, complete programs, and packages respectively. The JSDG can be used as an underlying representation to develop software engineering tools for Java software.
Slicing Concurrent Java Programs
- ACM SIGPLAN Notices
, 2001
"... Program slicing is an important approach to testing, understanding and maintaining programs. The paper presents a slicing algorithm for concurrent Java programs. ..."
Abstract
-
Cited by 8 (2 self)
- Add to MetaCart
Program slicing is an important approach to testing, understanding and maintaining programs. The paper presents a slicing algorithm for concurrent Java programs.

