UBC Theses and Dissertations

UBC Theses Logo

UBC Theses and Dissertations

An active help system to improve program navigation Viriyakattiyaporn, Petcharat


Software development environments have evolved to make it easy for third parties to integrate a variety of tools into the environment. Previous research has shown that developers often do not use or know all of the tools available in development environments that they regularly use. The most common solution to alleviate this problem is to provide a means to search through passive help documents. However, this approach requires a developer to be able to express her desires in a form understood by a search engine. To overcome this limitation, we propose using an active help system to automatically recommend to a developer tools that are appropriate to the developer’s current goal. We introduce an active help system to recommend navigation tools because previous research has shown a substantial amount of effort expended by a developer on a software evolution task is related to navigation. Our approach infers which structurally related pieces of information are of interest to a developer and determines when the navigation performed by the developer between the related information is suboptimal. In suboptimal navigation situations, our approach recommends a tool that would enable more efficient navigation. Our approach was implemented as a prototypical active help system, called Spy glass, in IBM’s Rational Team Concert development environment. To investigate whether and under what conditions Spyglass helps or hinders a developer in navigation, two empirical studies were conducted: a longitudinal user study in an undergraduate software engineering course and a laboratory user study comparing Spyglass to a passive tutorial. The longitudinal study provided feedback to improve the user interface of Spyglass and provided evidence that the developers who were novice to the development environment liked the idea of having an active help system in the environment. The laboratory study confirmed that Spyglass can help developers navigate between code elements more efficiently. The developers in the laboratory study also confirmed their desire for a system like Spyglass. The laboratory study also revealed that Spyglass requires improvements to its accuracy.

Item Citations and Data


Attribution-NonCommercial-NoDerivatives 4.0 International