In this paper, we explore the question of whether program understanding too
ls enhance or change the way that programmers understand programs. The stra
tegies that programmers use to comprehend programs vary widely. Program und
erstanding tools should enhance or ease the programmer's preferred strategi
es, rather than impose a fixed strategy that may not always be suitable. We
present observations from a user study that compares three tools for brows
ing program source code and exploring software structures. In this study, 3
0 participants used these tools to solve several high-level program underst
anding tasks. These tasks required a broad range of comprehension strategie
s. We describe how these tools supported or hindered the diverse comprehens
ion strategies used. (C) 2000 Elsevier Science B.V. All rights reserved.