Towards a model of programmers' cognitive processes in software maintenance: A structural learning theory approach for debugging

No comprehensive model of programmers' cognitive processes in software maintenance exists. As a first step in formulating such a model, a cognitive processes model for application debugging is developed. The new model is grounded on structural learning theory, which integrates both declarative models, such as Brooks's (1983) programmer comprehension model, and procedural knowledge such as Gould's (1975) process model and Vessey's (1986) functional model as components. The theoretical foundation of structural learning theory as a reference discipline for exploring software maintenance is provided. Not only are the benefits of the theory examined, but criticisms that have been levied are addressed. Based upon these consequences, the use of structural learning theory as applied to software maintenance is instantiated for the software debugging domain—the result is an approach that unites declarative and procedural knowledge. The practical and research implications of the new approach is then discussed.

[1]  Chris Edwards,et al.  Information Systems Maintenance: An Integrated Perspective , 1984, MIS Q..

[2]  Iris Vessey,et al.  Expertise in Debugging Computer Programs: An Analysis of the Content of Verbal Protocols , 1986, IEEE Transactions on Systems, Man, and Cybernetics.

[3]  David J. Gilmore,et al.  An Investigation of the Utility of Flowcharts During Computer Program Debugging , 1984, Int. J. Man Mach. Stud..

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

[5]  T. Shuell Cognitive Conceptions of Learning , 1986 .

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

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

[8]  John D. Gould,et al.  An Exploratory Study of Computer Program Debugging1 , 1974 .

[9]  Gary M. Olson,et al.  Comprehension differences in debugging by skilled and novice programmers , 1986 .

[10]  David P. Hale,et al.  Characteristics of empirical software maintenance studies: 1980-1989 , 1991, J. Softw. Maintenance Res. Pract..

[11]  John R. Anderson,et al.  Debugging: An Analysis of Bug-Location Strategies , 1987, Hum. Comput. Interact..

[12]  Cynthia Mathis Beath,et al.  The demographics of Software Maintenance Management , 1986, ICIS.

[13]  Barbee T. Mynatt The Effect of Semantic Complexity on the Comprehension of Program Modules , 1984, Int. J. Man Mach. Stud..

[14]  Maurice H. Halstead,et al.  Elements of software science , 1977 .

[15]  M. Scheerer,et al.  Problem Solving , 1967, Nature.

[16]  Dwight A. Haworth Software maintenance: measuring programmers' experitse , 1990 .

[17]  Bill Curtis,et al.  Measuring the Psychological Complexity of Software Maintenance Tasks with the Halstead and McCabe Metrics , 1979, IEEE Transactions on Software Engineering.

[18]  John A. Gould,et al.  Some Psychological Evidence on How People Debug Computer Programs , 1975, Int. J. Man Mach. Stud..

[19]  Mark Weiser,et al.  Programmers use slices when debugging , 1982, CACM.

[20]  Eric R. Brown A different drummer. , 1978 .

[21]  Anas N. Al-Rabadi,et al.  A comparison of modified reconstructability analysis and Ashenhurst‐Curtis decomposition of Boolean functions , 2004 .

[22]  Bill Curtis,et al.  Modern Coding Practices and Programmer Performance , 1979, Computer.