Key points are not available for this paper at this time.
Completing software maintenance and evolution tasks for today’s large, complex software systems can be difficult, of-ten requiring considerable time to understand the system well enough to make correct changes. Despite evidence that successful programmers use program structure as well as identifier names to explore software, most existing program exploration techniques use either structural or lexical iden-tifier information. By using only one type of information, automated tools ignore valuable clues about a developer’s intentions—clues critical to the human program compre-hension process. In this paper, we present and evaluate a technique that exploits both program structure and lexical information to help programmers more effectively explore programs. Our approach uses structural information to fo-cus automated program exploration and lexical information to prune irrelevant structure edges from consideration. For the important program exploration step of expanding from a seed, our experimental results demonstrate that an inte-grated lexical- and structural-based approach is significantly more effective than a state-of-the-art structural program ex-ploration technique.
Hill et al. (Mon,) studied this question.