The program dependence graph and its use in optimization
ACM Transactions on Programming Languages and Systems (TOPLAS)
Interprocedural slicing using dependence graphs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Efficient context-sensitive pointer analysis for C programs
PLDI '95 Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation
Software reflexion models: bridging the gap between source and high-level models
SIGSOFT '95 Proceedings of the 3rd ACM SIGSOFT symposium on Foundations of software engineering
Slicing object-oriented software
Proceedings of the 18th international conference on Software engineering
Unification-based pointer analysis with directional assignments
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
Slicing object-oriented java programs
ACM SIGPLAN Notices
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Efficient and precise datarace detection for multithreaded object-oriented programs
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Automatic extraction of object-oriented component interfaces
ISSTA '02 Proceedings of the 2002 ACM SIGSOFT international symposium on Software testing and analysis
Intermodular Slicing of Object-oriented Programs
CC '98 Proceedings of the 7th International Conference on Compiler Construction
Slicing Object-Oriented Programs
APSEC '97 Proceedings of the Fourth Asia-Pacific Software Engineering and International Computer Science Conference
An Intermediate Representation for Reverse Engineering Analyses
WCRE '98 Proceedings of the Working Conference on Reverse Engineering (WCRE'98)
Slicing Objects Using System Dependence Graphs
ICSM '98 Proceedings of the International Conference on Software Maintenance
A Slicing Method for Object-Oriented Programs Using Lightweight Dynamic Information
APSEC '01 Proceedings of the Eighth Asia-Pacific on Software Engineering Conference
Improving Dynamic Data Analysis with Aspect-Oriented Programming
CSMR '03 Proceedings of the Seventh European Conference on Software Maintenance and Reengineering
Program slices: formal, psychological, and practical investigations of an automatic program abstraction method
Efficient, context-sensitive pointer analysis for c programs
Efficient, context-sensitive pointer analysis for c programs
Reverse Engineering of the Interaction Diagrams from C++ Code
ICSM '03 Proceedings of the International Conference on Software Maintenance
Static object trace extraction for programs with pointers
Journal of Systems and Software - Special issue: Software reverse engineering
CSMR '06 Proceedings of the Conference on Software Maintenance and Reengineering
Finite automata and their decision problems
IBM Journal of Research and Development
Unified Modeling Language Reference Manual
Unified Modeling Language Reference Manual
Hi-index | 0.00 |
A trace is a record of the execution of a computer program, showing the sequence of operations executed. A trace may be obtained through static or dynamic analysis. An object trace contains only those operations that relate to a particular object. Traces can be very large for longer system executions. Moreover, they lack structure because they do not show the control dependencies and completely unfold loops. Object process graphs are a finite concise description of dynamic object traces. They offer the advantage of representing control dependencies and loops explicitly. This article describes a new technique to extract object process graphs through dynamic analysis and discusses several applications, in particular program understanding and protocol recovery. A case study is described that illustrates and demonstrates use and feasibility of the technique. Finally, statically and dynamically derived object process graphs are compared.