An exploratory study of program comprehension strategies of procedural and object-oriented programmers

This exploratory study examines the nature of program understanding strategies employed during a series of comprehension and maintenance activities carried out over time. Two dimensions of comprehension were examined: the direction of comprehension and the breadth of comprehension. Thirty expert procedural and object-oriented (OO) programmers studied a program and then performed modifications during two sessions held 1 week apart. The results showed that the direction of comprehension was mixed. The OO programmers tended to use a strongly top-down approach to program understanding during the early phase of familiarization with the program but used an increasingly bottom-up approach during the subsequent maintenance tasks. The procedural programmers used a more bottom-up orientation even during the early phase, and this bottom-up approach became even stronger during the maintenance tasks. The breadth of the programmers' comprehension was found to be greater for the procedural programmers than for the object-oriented programmers. However, after carrying out a series of tasks, all programmers had examined the majority of the program code. The results suggest that, regardless of paradigm, expert programmers eventually build a broad systematic, rather than a localized, view of a program over time.

[1]  Gerhard Fischer,et al.  Cognitive View of Reuse and Redesign , 1987, IEEE Software.

[2]  Elliot Soloway,et al.  Designing documentation to compensate for delocalized plans , 1988, CACM.

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

[4]  Françoise Détienne,et al.  Mental Representations Constructed by Experts and Novices in Object-Oriented Program Comprehension , 1997, INTERACT.

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

[6]  Johnette Hassell,et al.  Information Relationships in PROLOG Programs: How Do Programmers Comprehend Functionality? , 1991, Int. J. Man Mach. Stud..

[7]  Vaclav Rajlich,et al.  Layered explanations of software: a methodology for program comprehension , 1994, Proceedings 1994 IEEE 3rd Workshop on Program Comprehension- WPC '94.

[8]  Nancy Pennington,et al.  The effects of paradigm on cognitive activities in design , 1994, Int. J. Hum. Comput. Stud..

[9]  Kate Ehrlich,et al.  Knowledge and processes in the comprehension of computer programs. , 1988 .

[10]  Françoise Détienne,et al.  The effect of object-oriented programming expertise in several dimensions of comprehension strategies , 1998, Proceedings. 6th International Workshop on Program Comprehension. IWPC'98 (Cat. No.98TB100242).

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

[12]  Bernd Müller Is object-oriented programming structured programming? , 1993, SIGP.

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

[14]  A. Marie Vans,et al.  Program understanding behavior during debugging of large scale software , 1997, ESP '97.

[15]  Paul J. Layzell,et al.  DOCKET: program comprehension-in-the-large , 1993, [1993] IEEE Second Workshop on Program Comprehension.

[16]  Iris Vessey,et al.  Research Report - The Relevance of Application Domain Knowledge: The Case of Computer Program Comprehension , 1995, Inf. Syst. Res..

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

[18]  Joseph M. Gwinn,et al.  Object-oriented programs in realtime , 1992, SIGP.

[19]  Thomas G. Moher,et al.  Some strategies of reuse in an object-oriented programming environment , 1989, CHI '89.

[20]  Susan Wiedenbeck,et al.  Beacons in Computer Program Comprehension , 1986, Int. J. Man Mach. Stud..

[21]  Susan Wiedenbeck,et al.  What do novices learn during program comprehension? , 1991, Int. J. Hum. Comput. Interact..

[22]  Gerardo Canfora,et al.  A workbench for program comprehension during software maintenance , 1996, WPC '96. 4th Workshop on Program Comprehension.

[23]  Mary Beth Rosson,et al.  The Cognitive Consequences of Object-Oriented Design , 1990, Hum. Comput. Interact..

[24]  Jonathan Jacky,et al.  An object-oriented programming discipline for standard Pascal , 1987, CACM.

[25]  Kate Ehrlich,et al.  Empirical Studies of Programming Knowledge , 1984, IEEE Transactions on Software Engineering.

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

[27]  M. Chi,et al.  The Nature of Expertise , 1988 .

[28]  Anneliese Amschler Andrews,et al.  Program understanding behavior during adaptation of large scale software , 1998, Proceedings. 6th International Workshop on Program Comprehension. IWPC'98 (Cat. No.98TB100242).

[29]  Dennis B. Smith,et al.  Towards a framework for program understanding , 1996, WPC '96. 4th Workshop on Program Comprehension.

[30]  Susan Wiedenbeck,et al.  The Initial Stage of Program Comprehension , 1991, Int. J. Man Mach. Stud..

[31]  Anneliese Amschler Andrews,et al.  Program Comprehension During Software Maintenance and Evolution , 1995, Computer.

[32]  Bob Rehder,et al.  Cognitive Activities and Levels of Abstraction in Procedural and Object-Oriented Design , 1995, Hum. Comput. Interact..

[33]  Susan Wiedenbeck,et al.  Mental representations of expert procedural and object-oriented programmers in a software maintenance task , 1999, Int. J. Hum. Comput. Stud..

[34]  Curtis R. Cook,et al.  An Investigation of Procedure and Variable Names as Beacons During Program Comprehension , 1991 .

[35]  Anneliese Amschler Andrews,et al.  Identification of Dynamic Comprehension Processes During Large Scale Maintenance , 1996, IEEE Trans. Software Eng..

[36]  Scott P. Robertson,et al.  Expert problem solving strategies for program comprehension , 1991, CHI.

[37]  Ben Shneiderman,et al.  Directions in human-computer interaction , 1982 .

[38]  Anneliese Amschler Andrews,et al.  Program Understanding: Models and Experiments , 1995, Adv. Comput..