Brooks suggests that comprehension requires a problem domain model, a model for the problem, generic design templates, and programming language specific characteristics. Letovsky suggests a reader has a complete understanding of a program when she understands the goals of the program, how the goals and subgoals are achieved through program characteristics, and the role of the various program components in achieving those goals. The reader has a great effect on how successfully a particular program is read. Top-down One begins by gaining an understanding of the overall goals or purpose of the program. Each component of the program is then viewed from the perspective of how it relates to conduct of that purpose.
Rejection forces the reformulation of a hypothesis, and a continuation of the process.
This continues until the reader is satisfied of her understanding of the program. The reader begins with the details, understanding small fragments. These small fragments are composed into large aggregates whose purpose is constructed from its composite parts. This process continues until the program function is discovered. During code reading, the reader looks at critical subroutines in the program and determines their function.