Preprint of paper published in: IEEE Transactions on Software Engineering, 35 (5), 2009; doi:10.1109/TSE.2009.28 Program comprehension is an important activity in software maintenance, as software must be sufficiently understood before it can be properly modified. The study of a
...
Preprint of paper published in: IEEE Transactions on Software Engineering, 35 (5), 2009; doi:10.1109/TSE.2009.28 Program comprehension is an important activity in software maintenance, as software must be sufficiently understood before it can be properly modified. The study of a program's execution, known as dynamic analysis, has become a common technique in this respect and has received substantial attention from the research community, particularly over the last decade. These efforts have resulted in a large research body of which currently there exists no comprehensive overview. This paper reports on a systematic literature survey aimed at the identification and structuring of research on program comprehension through dynamic analysis. From a research body consisting of 4,795 articles published in 14 relevant venues between July 1999 and June 2008 and the references therein, we have systematically selected 176 articles and characterized them in terms of four main facets: activity, target, method, and evaluation. The resulting overview offers insight in what constitutes the main contributions of the field, supports the task of identifying gaps and opportunities, and has motivated our discussion of several important research directions that merit additional consideration in the near future.