A diagram for object-oriented programs
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
Information Processing Letters
GraphTrace—understanding object-oriented systems using concurrently animated views
OOPSLA '88 Conference proceedings on Object-oriented programming systems, languages and applications
Portia: an instance-centered environment for Smalltalk
OOPSLA '91 Conference proceedings on Object-oriented programming systems, languages, and applications
Debugging with dynamic slicing and backtracking
Software—Practice & Experience
Visualizing the behavior of object-oriented systems
OOPSLA '93 Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Interactive visualization of design patterns can help in framework understanding
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
Computer
Program explorer: a program visualizer for C++
COOTS'95 Proceedings of the USENIX Conference on Object-Oriented Technologies on USENIX Conference on Object-Oriented Technologies (COOTS)
Query-based debugging of object-oriented programs
Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Portable profiling and tracing for parallel, scientific applications using C++
SPDT '98 Proceedings of the SIGMETRICS symposium on Parallel and distributed tools
Visualizing dynamic software system information through high-level models
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
A scenario-driven approach to traceability
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
Dynamic analysis for reverse engineering and program understanding
ACM SIGAPP Applied Computing Review
Dynamic Query-Based Debugging of Object-Oriented Programs
Automated Software Engineering
A Scenario-Driven Approach to Trace Dependency Analysis
IEEE Transactions on Software Engineering
Locating Features in Source Code
IEEE Transactions on Software Engineering
ECOOP '99 Proceedings of the 13th European Conference on Object-Oriented Programming
Visualising Objects: Abstraction, Encapsulation, Aliasing, and Ownership
Revised Lectures on Software Visualization, International Seminar
Scaffolding with object diagrams in first year programming classes: some unexpected results
Proceedings of the 35th SIGCSE technical symposium on Computer science education
A survey of trace exploration tools and techniques
CASCON '04 Proceedings of the 2004 conference of the Centre for Advanced Studies on Collaborative research
Dynamic analysis of Ada programs for comprehension and quality measurement
Proceedings of the 2008 ACM annual international conference on SIGAda annual international conference
Execution trace analysis through massive sequence and circular bundle views
Journal of Systems and Software
Executing code in the past: efficient in-memory object graph versioning
Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
Evaluating similarity-based trace reduction techniques for scalable performance analysis
Proceedings of the Conference on High Performance Computing Networking, Storage and Analysis
Helping students build a mental model of computation
Proceedings of the fifteenth annual conference on Innovation and technology in computer science education
Software and Systems Modeling (SoSyM)
ISVC'11 Proceedings of the 7th international conference on Advances in visual computing - Volume Part I
A metamodel for the compact but lossless exchange of execution traces
Software and Systems Modeling (SoSyM)
Clustering methodologies for software engineering
Advances in Software Engineering
Ji.Fi: visual test and debug queries for hard real-time
Proceedings of the 10th International Workshop on Java Technologies for Real-time and Embedded Systems
A stateful approach to generate synthetic events from Kernel traces
Advances in Software Engineering
Hi-index | 4.10 |
Object orientation has changed software development for the better, but it has not really made programs easier to understand. Object-oriented program analysis tools remain rare because OO concepts such as inheritance and polymorphism render conventional analysis and presentation techniques insufficient. The authors describe a way to obtain, manipulate, and visualize OO execution traces that provides fine-grained localization information for program understanding. Applying dynamic analysis along with interactive visualization makes it possible to determine the exact program paths that influence particular objects and facilitates recognition of execution patterns. Because an object can invoke methods in itself and in other objects, an interaction graph becomes an important tool for modeling object interaction. However, even small toy programs may produce so many invocations that the interaction graph becomes unmanageable. The solution is to use search-space-reducing techniques such as merging, pruning, and slicing to remove unwanted information from the interaction graph, thereby limiting its complexity and size. The research prototype Program Explorer takes a user through a series of executions and visualizations to explain a given program and its framework. Although it was originally designed for C++, a version developed for IBM's System Object Model demonstrated that the concepts are applicable to OO languages in general. The authors believe Program Explorer can be applied to a wide range of software engineering problems, such as framework understanding to improve reuse, application logic analysis for maintenance, and visual debugging of OO code.