Expectation-based, inference-based, and bottom-up software comprehension

Michael P. O'Brien, Jim Buckley, Teresa M. Shaft

Research output: Contribution to journalArticlepeer-review

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 languageEnglish
Pages (from-to)427-447
Number of pages21
JournalJournal of Software Maintenance and Evolution
Volume16
Issue number6
DOIs
Publication statusPublished - Nov 2004

Keywords

  • Cognitive strategies
  • Program understanding
  • Software comprehension
  • Top-down comprehension

Fingerprint

Dive into the research topics of 'Expectation-based, inference-based, and bottom-up software comprehension'. Together they form a unique fingerprint.

Cite this