Expert problem solving strategies for program comprehension

PROBLEM SOLVING STRATEGIES PROGRAM COMPREHENSION Jiirgen Koenemann and Scott P. Robertson Department of Psychology Rutgers – The State University of New Jersey New Brunswick, NJ 08903 koeneman@paul.rutgers.edu Program comprehension is a complex problem solving process. We report on an experiment that studies expert programmers’ comprehension behavior in the context of modifying a complex PASCAL program. Our data suggests that program comprehension is best understood as a goal– oriented, hypotheses-driven problem–solving process. Programmers follow a pragmatic as-needed rather than a systematic strategy, they restrict their understanding to those parts of a program they find relevant for a given task, and they use bottom-up comprehension only for directly relevant code and in cases of missing, insufficient, or failing hypotheses. These findings have important consequences for the design of cognitively adequate computer–aided software engineering tools.

[1]  Nancy Pennington,et al.  Comprehension strategies in programming , 1987 .

[2]  Elliot Soloway,et al.  Mental models and software maintenance , 1986, J. Syst. Softw..

[3]  Bill Curtis,et al.  Communication breakdowns and boundary spanning activities on large programming projects , 1987 .

[4]  Susan Wiedenbeck,et al.  Beacons: a knowledge structure in program comprehension , 1989 .

[5]  B. Adelson Problem solving and the development of abstract categories in programming languages , 1981, Memory & cognition.

[6]  Raymonde Guindon,et al.  Knowledge Exploited by Experts during Software System Design , 1990, Int. J. Man Mach. Stud..

[7]  Richard E. Mayer,et al.  A psychology of learning BASIC , 1979, CACM.

[8]  Susan Weidenbeck,et al.  Processes in computer program comprehension , 1986 .

[9]  Kate Ehrlich,et al.  Empirical studies of programming knowledge , 1986 .

[10]  Elliot Soloway,et al.  Papers presented at the first workshop on empirical studies of programmers on Empirical studies of programmers , 1986 .

[11]  Ben Shneiderman,et al.  Software psychology: Human factors in computer and information systems (Winthrop computer systems series) , 1980 .

[12]  Scott P. Robertson,et al.  Program comprehension beyond the line , 1990, IFIP TC13 International Conference on Human-Computer Interaction.

[13]  Bill Curtis,et al.  Breakdowns and processes during the early activities of software design by professionals , 1987 .

[14]  N. Pennington Stimulus structures and mental representations in expert comprehension of computer programs , 1987, Cognitive Psychology.

[15]  Bill Curtis,et al.  Experimental evaluation of software documentation formats , 1989, J. Syst. Softw..

[16]  J. E. Sammet,et al.  Software psychology: human factors in computer and information systems , 1983, SGCH.

[17]  Ruven E. Brooks,et al.  Towards a Theory of the Comprehension of Computer Programs , 1983, Int. J. Man Mach. Stud..

[18]  W. Kintsch,et al.  The representation of meaning in memory , 1974 .

[19]  Stanley Letovsky,et al.  Cognitive processes in program comprehension , 1986, J. Syst. Softw..

[20]  Elliot Soloway,et al.  Delocalized Plans and Program Comprehension , 1986, IEEE Software.

[21]  Elliot Soloway,et al.  Empirical Studies of Programmers: Second Workshop , 1991 .

[22]  Raymonde Guindon The process of knowledge discovery in system design , 1989 .

[23]  David A. Powers Evaluating software for use by mentally handicapped learners , 1986 .

[24]  Françoise Détienne,et al.  An Empirically-Derived Control Structure for the Process of Program Understanding , 1990, Int. J. Man Mach. Stud..

[25]  Ted J. Biggerstaff,et al.  Design recovery for maintenance and reuse , 1989, Computer.

[26]  David J. Gilmore,et al.  Comprehension and Recall of Miniature Programs , 1984, Int. J. Man Mach. Stud..

[27]  J BiggerstaffTed Design Recovery for Maintenance and Reuse , 1989 .