A Systematic Survey of Program Comprehension Through Dynamic Analysis