A Systematic Survey of Program Comprehension through Dynamic Analysis