The software comprehension process has been conceptualized as being either ‘top-down’ or ‘bottom-up’ in nature. We formally distinguish between two comprehension processes that have previously been grouped together as ‘top-down’. The first is ‘expectation-based’ comprehension, where the programmer has pregenerated expectations of the code’s meaning. The second is ‘inference-based’ comprehension, where the programmer derives meaning from cliched implementations in the code. ´ We identify the distinguishing features of the two variants, and use these characteristics as the basis for an empirical study. This study establishes the existence of the above-mentioned processes, in conjunction with ‘bottom-up’ comprehension. It also illustrates the relationship between these processes and programmers’ application domain familiarity
Exception based inference based and bottom-up software comprehension
Abstract