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 - Johnson, Paul Thomas (Massey University, 2011)
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 performance problems.
Keywords: Concurrency; Visualisation; Music software; Java (computer program language); Debugging (computer); Parallel processing (Computer science)