This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
Identification of Dynamic Comprehension Processes During Large Scale Maintenance
June 1996 (vol. 22 no. 6)
pp. 424-437

Abstract—We present results of observing professional maintenance engineers working with industrial code at actual maintenance tasks. Protocol analysis is used to explore how code understanding might differ for small versus large scale code. The experiment confirms that cognition processes work at all levels of abstraction simultaneously as programmers build a mental model of the code. Analysis focused on dynamic properties and processes of code understanding. Cognition processes emerged at three levels of aggregation representing lower and higher level strategies of understanding. They show differences in what triggers them and how they achieve their goals. Results are useful for defining information which maintenance engineers need for their work and for documentation and development standards.

[1] B.L. Achee and D.L. Carver, "Identification and Extraction of Objects from Legacy Code," IEEE Aerospace Applications Conf. 1995, Snowmass, Co., vol. 2, pp. 181-190, Feb. 1995.
[2] K.H. Bennett, "Understanding the Process of Software Maintenance," Second Workshop on Program Comprehension, WPC'93,Capri, Italy, pp. 2-5apri,Italy, pp. 2-5, July, 1993,.
[3] K.H. Bennett and M.P. Ward, "Theory and Practice of Middle-Out Programming to support Program Understanding," Third Workshop on Program Comprehension, WPC'93,Washington, D.C., pp. 168-175, Nov. 1994.
[4] S. Blazy and P. Facon, "SFAC, a Tool for Program Comprehension by Specialization," Third Workshop on Program Comprehension, WPC'93, pp. 162-167,Washington, D.C., Nov. 1994.
[5] R. Brooks, "Towards a theory of the cognitive processes in computer programming," Int'l J. Man-Machine Studies, vol. 9, pp. 737-751, 1977.
[6] G. Canfora, A. De Lucia, G.A. Di Lucca, and A.R. Fasolino, "Recovering the Architectural Design for Software Comprehension," Third Workshop on Program Comprehension, WPC'93,Washington, D.C., pp. 30-38, Nov. 1994.
[7] A. Cimitile, M. Tortorella, and M. Munro, "Program Comprehension Through the Idenfication of Abstract Data Types," Third Workshop on Program Comprehension, WPC'93,Washington, D.C., pp. 12-19, Nov. 1994.
[8] R. Guindon, H. Krasner, and B. Curtis, “Breakdowns and Processes During the Early Activities of Software Design by Professionals,” Empirical Studies of Programmers: Proc. Second Workshop G.M. Olson, S. Sheppard, and E. Soloway, eds., pp. 65–82, 1987.
[9] J. Koenemann and S.P. Robertson, "Expert Problem Solving Strategies for Program Comprehension," Proc. Human Factors in Computing Systems, CHI'91,New Orleans, pp. 125-130, May 1991.
[10] A. Lee and N. Pennington, "The Effects of Paradigm on Cognitive Activities in Design," Int'l J. Man-Machine Studies, vol. 40, pp. 577-601, 1994.
[11] S. Letovsky, “Cognitive Processes in Program Comprehension,” Proc. First Workshop Empirical Studies of Programmers, Ablex Publishing, Norwood, N.J., 1986, pp. 58-79.
[12] D. Littman, J. Pinto, S. Letovsky, and E. Soloway, Mental Models and Software Maintenance Empirical Studies of Programmers, Proc. First Workshop, pp. 80-98, 1996.
[13] T.G. Moher, D.C. Mak, B. Blumenthal, and L.M. Leventhal, "Comparing the Comprehensibility of Textual and Graphical Programs: The Case of Petri Nets," Empirical Studies of Programmers: Fifth Workshop, C.Cook, J. Scholtz, and J. Spohrer, eds., Ablex Publishing Corporation, pp. 137 - 161, 1993.
[14] N. Pennington, "Stimulus Structures and Mental Representations in Expert Comprehension of Computer Programs," Cognitive Psychology, vol. 19, pp. 295-341, 1987.
[15] N. Pennington, “Comprehension Strategies in Programming,” Proc. Second Workshop Empirical Studies of Programmers, Ablex Publishing, Norwood, N.J., 1987, pp. 100-112.
[16] N. Pennington, A.Y. Lee, and B. Rehder, "Cognitive Activities and Levels of Abstraction in Procedural and Object-Oriented Design," Human-Computer Interaction, vol. 10, pp. 171-226, 1995.
[17] M. Petre, Why Looking Isn't Always Seeing: Readership Skills and Graphical Programming Comm. ACM, vol. 38, no. 6, pp. 33-44, June 1995.
[18] V. Rajlich, J. Doran, and R.T.S. Gudla, "Layered Explanations of Software: A Methodology for Program Comprehension," Third Workshop on Program Comprehension, WPC'93,Washington, D.C., pp. 46-52, Nov. 1994.
[19] C. Rich and R. Waters,“The programmer’s apprentice: A research overview,” Computer, pp. 1-25, Nov. 1988.
[20] R.S. Rist, “Plans in Programming: Definition, Demonstration, and Development,” Proc. First Workshop Empirical Studies of Programmers, Ablex Publishing, Norwood, N.J., 1986, pp. 28-47.
[21] B. Shneiderman, "Exploratory Experiments in Programmer Behavior," Int'l J. Computer and Information Sciences, vol. 5, no. 2, pp. 123-143, 1976.
[22] B. Shneiderman, "Software Psychology, Human Factors in Computer and Information Systems," ch. 3, Winthrop Publishers, Inc., pp. 39-62, 1980.
[23] E. Soloway and K. Ehrlich, "Empirical Studies of Programming Knowledge," IEEE Trans. Software Engineering, vol. 10, no. 5, pp. 595-609, Sept. 1984.
[24] E. Soloway, B. Adelson, and K. Ehrlich, "Knowledge and Processes in the Comprehension of Computer Programs," The Nature of Expertise, M. Chi, R. Glaser, and M.Farr, eds., Lawrence Erlbaum Associates, Publishers, pp. 129-152, 1988.
[25] M. Thüring, J. Hannemann, and J.M. Haake, "Hypermedia and Cognition:Designing for Comprehension," Comm. ACM, vol. 38, no. 8, pp. 57-66, Aug. 1995.
[26] M. Ward, F.W. Calliss, and M. Munro, “The Maintainer's Assistant,” Proc. Int'l Conf. Software Maintenance, pp. 307–315, 1989.
[27] I. Vessey, "Expertise in debugging computer programs:A process analysis," Int'l J. Man-Machine Studies, vol. 23, pp. 459-494, 1985.
[28] A. von Mayrhauser and A. Vans, "Program Comprehension During Software Maintenance and Evolution," Computer, vol. 28, no. 8, pp.44-55, Aug. 1995.
[29] A. von Mayrhauser and A. Vans, "Industrial experience with an integrated code comprehension model," IEE Software Engineering J., pp. 171-182, Sept. 1995.
[30] A. von Mayrhauser and A.M. Vans, “Comprehension Processes During Large-Scale Maintenance,” Proc. 16th Int’l Conf. Software Engineering, IEEE CS Press, Los Alamitos, Calif., Order No. 5855, 1994, pp. 39-48.
[31] A. von Mayrhauser and A. Vans, "Dynamic Code Cognition Behaviors For Large Scale Code," Proc. Third Workshop on Program Comprehension,Washington D.C., pp. 74-81, Nov.14-15, 1994.
[32] A. von Mayrhauser and A. Vans, "From Program Comprehension to Tool Requirements for an Industrial Environment," Proc. Second Workshop on Program Comprehension,Capri, Italy, pp. 78-86, July 1993.
[33] A. von Mayrhauser and A. Vans, "From Code Understanding Needs to Reverse Engineering Tool Capabilities," Proc. Sixth Int'l Workshop on Computer-Aided Software Engineering (CASE93),Singapore, pp. 230-239, July 1993.
[34] K. Wong, S. Tilley, H. Muller, and M. Storye, "Structural Redocumentation: A Case Study," IEEE Software, pp. 46-54, Jan. 1995.

Index Terms:
Program understanding, maintenance, large-scale code, comprehension processes, comprehension models.
Citation:
A. von Mayrhauser, A.m. Vans, "Identification of Dynamic Comprehension Processes During Large Scale Maintenance," IEEE Transactions on Software Engineering, vol. 22, no. 6, pp. 424-437, June 1996, doi:10.1109/32.508315
Usage of this product signifies your acceptance of the Terms of Use.