Modeling comprehension processes in software development

As programs become more complex and larger, the sheer volume of information to be comprehended by developers becomes daunting. Software development is fraught with complexity that is difficult to identify a priori. Complexity is relative to the task, the developer's experience and the resources available. In this research, we identify comprehension processes applied in software development, and the cognitive loads associated with these processes. We present an abstraction of the cognitive environment of the software developer, and introduce techniques to minimize the cognitive effort in the short-term and the long-term.

[1]  Bogdan Korel,et al.  Application of Dynamic Slicing in Program Debugging , 1997, AADEBUG.

[2]  Alfonso Fuggetta,et al.  Software process: a roadmap , 2000, ICSE '00.

[3]  R. Gopal,et al.  Dynamic program slicing based on dependence relations , 1991, Proceedings. Conference on Software Maintenance 1991.

[4]  Alexander Rush,et al.  Cognitive Patterns: Problem-Solving Frameworks for Object Technology , 1998 .

[5]  Christoph Steindl Static Analysis of Object Oriented Programs , 1999, ECOOP Workshop for PhD Students in OO Systems.

[6]  Bjørn N. Freeman-Benson,et al.  Visualizing dynamic software system information through high-level models , 1998, OOPSLA '98.

[7]  Hausi A. Müller,et al.  How do program understanding tools affect how programmers understand programs? , 2000, Sci. Comput. Program..

[8]  Malcolm Munro,et al.  Mediating diverse visualisations for comprehension , 2001, Proceedings 9th International Workshop on Program Comprehension. IWPC 2001.

[9]  Tuomas Klemola Software comprehension : theory and metrics , 1998 .

[10]  Walter Kintsch,et al.  Comprehension: A Paradigm for Cognition , 1998 .

[11]  B. Korel Computation of Dynamic Program Slices for Unstructured Programs , 1997, IEEE Trans. Software Eng..

[12]  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).

[13]  Bogdan Korel,et al.  Program slicing in understanding of large programs , 1998, Proceedings. 6th International Workshop on Program Comprehension. IWPC'98 (Cat. No.98TB100242).

[14]  John R. Anderson Retrieval of propositional information from long-term memory , 1974 .

[15]  Giancarlo Succi,et al.  Strategic Software Production With Domain-Oriented Reuse , 2000 .

[16]  Timothy C. Lethbridge,et al.  Work Practices as an Alternative Method to Assist Tool Design in Software Engineering , 1997 .

[17]  Anneliese Amschler Andrews,et al.  Industrial experience with an integrated code comprehension model , 1995, Softw. Eng. J..

[18]  Denis Besnard,et al.  Expert error in trouble-shooting: an exploratory study in electronics , 1999, Int. J. Hum. Comput. Stud..

[19]  G. A. Miller THE PSYCHOLOGICAL REVIEW THE MAGICAL NUMBER SEVEN, PLUS OR MINUS TWO: SOME LIMITS ON OUR CAPACITY FOR PROCESSING INFORMATION 1 , 1956 .

[20]  K. A. Ericsson,et al.  Long-term working memory. , 1995, Psychological review.

[21]  Walter Kintsch,et al.  Toward a model of text comprehension and production. , 1978 .

[22]  M. Conway,et al.  On the Very Long-Term Retention of Knowledge Acquired Through Formal Education: Twelve Years of Cognitive Psychology , 1991 .