Dynamic slicing in the presence of unconstrained pointers
TAV4 Proceedings of the symposium on Testing, analysis, and verification
Communications of the ACM
IEEE Transactions on Software Engineering - Special issue on formal methods in software practice
Program understanding behavior during debugging of large scale software
ESP '97 Papers presented at the seventh workshop on Empirical studies of programmers
Programmers use slices when debugging
Communications of the ACM
Graph Drawing: Algorithms for the Visualization of Graphs
Graph Drawing: Algorithms for the Visualization of Graphs
The Java Language Specification
The Java Language Specification
Automated Software Engineering
A Perturbation-Free Replay Platform for Cross-Optimized Multithreaded Applications
IPDPS '01 Proceedings of the 15th International Parallel & Distributed Processing Symposium
The Temporal Rover and the ATG Rover
Proceedings of the 7th International SPIN Workshop on SPIN Model Checking and Software Verification
Revised Lectures on Software Visualization, International Seminar
JaVis: A UML-Based Visualization and Debugging Environment for Concurrent Java Programs
Revised Lectures on Software Visualization, International Seminar
ICSE '81 Proceedings of the 5th international conference on Software engineering
Multithreaded Dependence Graphs for Concurrent Java Program
PDSE '99 Proceedings of the International Symposium on Software Engineering for Parallel and Distributed Systems
An Overview of the Runtime Verification Tool Java PathExplorer
Formal Methods in System Design
Designing the whyline: a debugging interface for asking questions about program behavior
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
MVT: a system for visual testing of software
Proceedings of the working conference on Advanced visual interfaces
Experimental Evaluation of Verification and Validation Tools on Martian Rover Software
Formal Methods in System Design
JaRec: a portable record/replay environment for multi-threaded Java applications
Software—Practice & Experience
A Comparison of Bug Finding Tools for Java
ISSRE '04 Proceedings of the 15th International Symposium on Software Reliability Engineering
JAN - Java animation for program understanding
HCC '03 Proceedings of the 2003 IEEE Symposium on Human Centric Computing Languages and Environments
Bogor: A Flexible Framework for Creating Software Model Checkers
TAIC-PART '06 Proceedings of the Testing: Academic & Industrial Conference on Practice And Research Techniques
Helping students debug concurrent programs
Koli '08 Proceedings of the 8th International Conference on Computing Education Research
JVM Independent Replay in Java
Electronic Notes in Theoretical Computer Science (ENTCS)
How students develop concurrent programs
ACE '09 Proceedings of the Eleventh Australasian Conference on Computing Education - Volume 95
Students' understandings of concurrent programming
Koli Calling '07 Proceedings of the Seventh Baltic Sea Conference on Computing Education Research - Volume 88
Evaluating a visualisation of the execution of a concurrent program
Proceedings of the 11th Koli Calling International Conference on Computing Education Research
Hi-index | 0.00 |
In this article, we present a system intended to help students understand and debug concurrent Java programs. The system instruments Java classes to produce execution traces. These traces can then be used to construct a dynamic dependence graph showing the interactions between the different operations performed in the program. These interactions are used as the basis for an interactive visualisation that can be used to explore the execution of a program and trace incorrect program behaviour back from a symptom to the execution of incorrect code.