Abstract
Maintenance of legacy systems and the advancement of reverse engineering techniques have placed a renewed interest in the program comprehension process. Descriptive studies of the program comprehension process have resulted in two seemingly opposing approaches. One approach is top-down in nature (consisting of hypothesis generation, decomposition, refinement, and verification) and the other is bottom-up in nature (consisting of low-level component comprehension, and the assembly and integration of related components). An empirical study is conducted to assess the exclusive nature of each approach during the comprehension process. The results refute the exclusive classification of program comprehension processes as either top-down or bottom-up. The constructs common between the approaches are assessed in an attempt to arrive at a reconciliation. A theory-based model of program comprehension is illuminated which is capable of accounting for the utilization of both top-down and bottom-up strategies within a single comprehension episode.