Abstract
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 pre-generated expectations of the code's meaning. The second is 'inference-based' comprehension, where the programmer derives meaning from clichéd 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.
Original language | English |
---|---|
Pages (from-to) | 427-447 |
Number of pages | 21 |
Journal | Journal of Software Maintenance and Evolution |
Volume | 16 |
Issue number | 6 |
DOIs | |
Publication status | Published - Nov 2004 |
Keywords
- Cognitive strategies
- Program understanding
- Software comprehension
- Top-down comprehension