Beat : a visualizing debugger for concurrent, shared memory Java programs : a thesis presented in fulfillment of the requirements for the degree of Master of Science in Computer Science at Massey University, Palmerston North, New Zealand
This thesis presents our research into the creation of a new concurrency visualization
called Beat. Our research began with the observation that software used to create
and record music has been incredibly successful and that there were broad similarities
between these pieces of software and existing concurrent visualizations. This led us to
question if there were reasons why music software had been successful, why concurrent
visualizations hadn't been as comparatively successful and nally if this could teach us
anything about building better visualizations.
The existing literature was examined to learn more about concurrency, visualization
and music software and notations. For concurrency we wanted to see what existing
solutions to the problems of concurrency exist and in particular existing solutions to
concurrent debugging. With existing visualizations we wanted to see if there was anything
we could identify about them that made them ine ective for solving the problems
of concurrency. Conversely we wanted to see if we could identify what made music
software and notations so e ective for solving problems for musicians.
The examination of the existing literature led to the design and implementation of
the Beat software, based on the ideas we had discovered in our search of the literature.
To test how e ective the design and software was we conducted an evaluation with
programmers, which validated many of the decisions we had made and gave us a number
of future directions to take with our research.
The main contribution of this thesis is a new approach to designing concurrency
visualizations that emphasizes using the low level details of program execution and
integrates execution data into a single view to help with the error debugging process.
This in contrast to existing concurrency visualizations that focus on the debugging of