Augmenting Program Analysis Tool Notifications


Overview

High software quality is of ever growing importance with our growing reliance on software systems. This leads to an increase in the need for software developers to design and implement software at a higher quality without compromising the timeline or budget. Program analysis tools, such as static analysis, code coverage and refactoring tools are made available to assist programmers in their quest for quality, maintainable software. Program analysis tools communicate with programmers using notifications that can be textual, visual or a combination of both. It is important that programmers, both novice and experienced, be able to understand these notifications, however, my research suggests that programmer have difficulty assessing the output produced by many program analysis tools. More recent findings suggest this difficulty stems from a mismatch between the information presented by the notifications and the knowledge the programmer has concerning the concepts involved. Existing research suggests that our knowledge is formed based on the experiences we have with the features and APIs related to a given concept. Other portions may include notifications resolved, blogs posted, or Q&A site questions asked or answered pertaining to the concept(s). The goal of this research is to discover how to model programmer knowledge and use such a model to more effectively communicate with programmers. For this research, I plan to analyze student and non-student GitHub repositories, evaluate the effectiveness of notification adaptations, and evaluate the ability of my prototype to determine the appropriate adaptation for a given programmer. At the conclusion of this research, we hope to have a better understanding of how programmers with varying levels of expertise use and understand program analysis tool notifications and what can be done to alleviate any difficulties they may come across.

Collaborators

Brittany Johnson
Emerson Murphy-Hill
Sarah Heckman
Rahul Pandita (Senior Research Scientist, Phase Change Software)

Research Materials