The UVicReverseEngineeringTutorial defines program understanding as
  • The task of building mental models of the underlying software at various abstraction levels, ranging from models of the code itself to ones of the underlying application domain, for SoftwareMaintenance, SoftwareEvolution, and ReEngineering purposes.

Synonym: ProgramComprehension

Program understanding is a central activity during SoftwareMaintenance: T. A. Corbi reports that up to 50% of the maintenance effort is spent on trying to understand code (IBM Systems Journal 28(2):294-306, 1989, Program Understanding: Challenge for the 1990s)

Relevant topics:


A general survey on program comprehension is given by SpencerRugaber:

SpencerRugaber defines program comprehension as the process of acquiring knowledge about a computer program. The survey covers cognitive processes, techniques for automated program understanding such as dataflow and control flow analysis, program comprehension tools, example applications, and resources.


Resources include


The relationship between SoftwareProcess and ProgramUnderstanding is explored in ProgramComprehensionRisksAndOpportunitiesInXP -- ArieVanDeursen.


CategoryProgramUnderstanding | CategoryReengineeringWiki | Contributions by ArieVanDeursen

Revision: r1.17 - 19 Feb 2002 - 15:37 - ArieVanDeursen
Transform > ProgramUnderstanding
Copyright © 1999-2020 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback