My research focuses primarily on software visualization and how it can be applied to both computing education and software engineering.
- Software Visualization. Software visualization investigates efficient and effective ways of automatically producing graphical representations of program source code, algorithms, or the runtime behavior of software. Such visualization technology promises to have a positive impact on difficult and costly issues in software engineering such as communicating program information for the purposes of testing, maintenance, and reverse engineering, especially for large, complex systems.
- Software Process. The efficacy with which challenges to many software engineering projects can be met and overcome is largely dependent on the underlying process by which the software is developed. Many modern software systems require innovative and agile processes to successfully develop complex, distributed, and largely autonomous software components.