ABSTRACT

Program comprehension is a prerequisite for program

changes; what is not understood cannot be safely and

predictably changed. Program change activities are a

foundation of important software engineering processes

like software maintenance, software evolution, and also

agile and iterative software development. These pro-

cesses deal with the enhancements of already existing

programs by adding new functionalities or other new

properties to the program. In aggregate, these processes

consume an overwhelming part of software engineering

resources and program comprehension is the basis of all

these processes.