This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
Program Comprehension During Software Maintenance and Evolution
August 1995 (vol. 28 no. 8)
pp. 44-55
How well programmers comprehend programs is key to effective software maintenance and evolution. But how exactly do programmers understand code? Over the years, several code-comprehension models have been developed to help researchers answer this question. Five types of tasks are commonly associated with software maintenance and evolution: adaptive, perfective, and corrective maintenance; reuse; and code leverage. Each type has its own set of typical activities. Some of them, such as understanding a system or problem, are common to several tasks. Code comprehension models describe the cognitive processes involved in these tasks. Experiments support some, but not all of these models. The authors analyze six comprehension models and their validation experiments to determine the current state of knowledge program comprehension offers. They begin by describing some common elements of cognition models. Programmer knowledge plays a key role in the understanding process. The mental model--an internal, working representation of the software under consideration--includes both static and dynamic elements. Static elements include text-structure knowledge, "chunks," plans, hypotheses, beacons, and rules of discourse. Dynamic elements include strategies, actions, episodes, and processes. The authors compare the six models in this light and identify a need for more experimental studies with experienced software engineers working on specific maintenance tasks and large-scale code in state-of-the-art computing environments.
Citation:
Anneliese von Mayrhauser, A. Marie Vans, "Program Comprehension During Software Maintenance and Evolution," Computer, vol. 28, no. 8, pp. 44-55, Aug. 1995, doi:10.1109/2.402076
Usage of this product signifies your acceptance of the Terms of Use.