Software psychology: The need for an interdisciplinary program

Research issues concerning human interaction with computers have become crucial because of dramatic increases in the number of computer users who have no formal mathematical, engineering, or computer science training. This review focuses on the state of the art in Software Psychology--the study of human factors in computer systems. One area of software psychology, the psychology of programming, is picked for an in-depth discussion of research results. This area was selected for its interest to the readers of the PROCEEDINGS OF THE IEEE. The review then discusses the methodological issues involved in performing experimental research in software psychology. Future trends are discussed both for the programming research reviewed here and for the whole field of software psychology. The conclusions identify multidisciplinary training and research as critical to further progress in this field.

[1]  Larry Weissman,et al.  Psychological complexity of computer programs: an experimental methodology , 1974, SIGP.

[2]  B. Sheil Power tools for programmers , 1986 .

[3]  John M. Carroll,et al.  Training wheels in a user interface , 1984, CACM.

[4]  Allen Newell,et al.  The keystroke-level model for user performance time with interactive systems , 1980, CACM.

[5]  R. D. Ray Directions in human-computer interaction: A. Badre and B. Shneiderman (Eds) Ablex Publishing Corporation, Norwood, NJ, 1982. pp 215 + ix, £31.50 (hardback) , 1986 .

[6]  Bill Curtis,et al.  Third time charm: Stronger prediction of programmer performance by software complexity metrics , 1979, ICSE 1979.

[7]  Lance A. Miller,et al.  Natural Language Programming: Styles, Strategies, and Contrasts , 1981, IBM Syst. J..

[8]  Allen Newell,et al.  Computer text-editing: An information-processing analysis of a routine cognitive skill , 1980, Cognitive Psychology.

[9]  John Gannon An experiment for the evaluation of language features , 1976 .

[10]  B. Curtis,et al.  Measurement and experimentation in software engineering , 1980, Proceedings of the IEEE.

[11]  Michael J. Kelly,et al.  Limited Vocabulary Natural Language Dialogue* , 1975 .

[12]  Brian W. Kernighan,et al.  The UNIX™ programming environment , 1979, Softw. Pract. Exp..

[13]  Ben Shneiderman,et al.  Human Factors Experiments in Designing Interactive Systems , 1979, Computer.

[14]  Tom Love,et al.  A Review and Evaluation of Software Science , 1978, CSUR.

[15]  Elliot Soloway,et al.  Preprogramming Knowledge: A Major Source of Misconceptions in Novice Programmers , 1985, Hum. Comput. Interact..

[16]  Edsger W. Dijkstra,et al.  Letters to the editor: go to statement considered harmful , 1968, CACM.

[17]  Hans H. Kron,et al.  Programming-in-the-Large Versus Programming-in-the-Small , 1975 .

[18]  Thomas R. G. Green,et al.  Reducing Programming Errors in Nested Conditionals by Prescribing a Writing Procedure , 1977, Int. J. Man Mach. Stud..

[19]  T. R. G. Green Conditional program statements and their comprehensibility to professional programmers , 1977 .

[20]  E. E. Grant,et al.  Exploratory experimental studies comparing online and offline programming performance , 1968, CACM.

[21]  Ruven E. Brooks,et al.  Studying programmer behavior experimentally: the problems of proper methodology , 1980, CACM.

[22]  Brad J. Cox Message/Object Programming: An Evolutionary Change in Programming Technology , 1984, IEEE Software.

[23]  John C. Thomas,et al.  Clinical— experimental analysis of design problem solving , 1979 .

[24]  Elliot Soloway,et al.  PROUST: Knowledge-Based Program Understanding , 1984, IEEE Transactions on Software Engineering.

[25]  J. B. Black,et al.  Facilitating Human-Computer Communication , 1981 .

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

[27]  Robert Balzer,et al.  A 15 Year Perspective on Automatic Programming , 1985, IEEE Transactions on Software Engineering.

[28]  John B. Black,et al.  Causal coherence and memory for events in narratives , 1981 .

[29]  Michael E. Atwood A report on the vail workshop on human factors in computer systems , 1984, IEEE Computer Graphics and Applications.

[30]  H. Simon,et al.  Information Processing Models of Cognition , 1979 .

[31]  Michael E. Atwood,et al.  Cognitive structures in the comprehension and memory of computer programs: an investigation of compu , 1978 .

[32]  Thomas R. G. Green,et al.  The problems the programmer faces , 1980 .

[33]  Ralph E. Drtina,et al.  The Use of Needs Assessment Data by Managers of Human Service Delivery Organizations: Some Empirical Findings , 1983 .

[34]  Henry C. Lucas,et al.  A Structured Programming Experiment , 1976, Comput. J..

[35]  John B. Black,et al.  Scripts in memory for text , 1979, Cognitive Psychology.

[36]  James D. Foley,et al.  The human factors of computer graphics interaction techniques , 1984, IEEE Computer Graphics and Applications.

[37]  John R. Anderson,et al.  Learning to Program in LISP , 1984, Cogn. Sci..

[38]  David R. Barstow,et al.  Knowledge-based program construction , 1979 .

[39]  Brian W. Kernighan,et al.  The Unix Progamming Environment , 1981, Computer.

[40]  Bill Curtis,et al.  The effects of symbology and spatial arrangement on the comprehension of software specifications , 1981, ICSE '81.

[41]  John M. Carroll,et al.  Learning, using and designing filenames and command paradigms† , 1982 .

[42]  Gerald M. Weinberg,et al.  Psychology of computer programming , 1971 .

[43]  Richard C. Waters,et al.  The Programmer's Apprentice: Knowledge Based Program Editing , 1982, IEEE Transactions on Software Engineering.

[44]  David R. Barstow Domain-Specific Automatic Programming , 1985, IEEE Transactions on Software Engineering.

[45]  Ben Shneiderman,et al.  Exploratory experiments in programmer behavior , 1976, International Journal of Computer & Information Sciences.

[46]  Ira R. Forman,et al.  Psychological perspectives for software science , 1984, Inf. Process. Manag..

[47]  Herbert A. Simon,et al.  Problem Solving in Semantically Rich Domains: An Example from Engineering Thermodynamics , 1977, Cogn. Sci..

[48]  J. Reitman,et al.  Knowledge organization and skill differences in computer programmers , 1981, Cognitive Psychology.

[49]  B. Curtis,et al.  Substantiating programmer variability , 1981, Proceedings of the IEEE.

[50]  Victor R. Basili,et al.  An Empirical Study of a Syntactic Complexity Family , 1983, IEEE Transactions on Software Engineering.

[51]  John M. Carroll,et al.  Aspects of Solution Structure in Design Problem Solving. , 1980 .

[52]  Michael E. Atwood,et al.  An Exploratory Study of the Cognitive Structures Underlying the Comprehension of Software Design Problems , 1978 .

[53]  Elliot Soloway,et al.  A Goal/Plan Analysis of Buggy Pascal Programs , 1985, Hum. Comput. Interact..

[54]  Lance A. Miller Programming by Non-Programmers , 1974, Int. J. Man Mach. Stud..

[55]  G. Michael Schneider,et al.  Methods for improving controlled experimentation in software engineering , 1981, ICSE '81.

[56]  Thomas P. Moran,et al.  Guest Editor's Introduction: An Applied Psychology of the User , 1981, CSUR.

[57]  John M. Carroll,et al.  Actively Learning To Use a Word Processor , 1983 .

[58]  D. A. Waterman A rule-based approach to knowledge acquisition for man-machine interface programs , 1978 .

[59]  Ben Shneiderman,et al.  Direct Manipulation: A Step Beyond Programming Languages , 1983, Computer.

[60]  B. Adelson,et al.  The Role of Domain Expenence in Software Design , 1985, IEEE Transactions on Software Engineering.

[61]  H. E. Dunsmore,et al.  Data Referencing: An Empirical Investigation , 1979, Computer.

[62]  Richard C. Waters The Programmer's Apprentice: A Session with KBEmacs , 1985, IEEE Transactions on Software Engineering.

[63]  Allen Newell,et al.  Problem solving techniques for the design of algorithms , 1984, Inf. Process. Manag..

[64]  John C. Thomas,et al.  Human Factors in Communication , 1981, IBM Syst. J..

[65]  Marc M. Sebrechts,et al.  A diagrammatic approach to computer instruction for the naive user , 1983 .

[66]  Kate Ehrlich,et al.  Beyond numbers: Don't ask “how many” ... ask “why” , 1983, CHI '83.

[67]  Richard E. Mayer,et al.  The Psychology of How Novices Learn Computer Programming , 1981, CSUR.

[68]  H. R. Ramsey,et al.  Human factors in interactive computer dialog , 1983 .

[69]  John D. Gannon An experimental evaluation of data type conventions , 1977, CACM.

[70]  Dorothea P. Simon,et al.  Expert and Novice Performance in Solving Physics Problems , 1980, Science.

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

[72]  Thomas P. Moran,et al.  Learning and remembering command names , 1982, CHI '82.

[73]  H. Simon,et al.  Perception in chess , 1973 .

[74]  John R. Anderson,et al.  Novice LISP Errors: Undetected Losses of Information from Working Memory , 1985, Hum. Comput. Interact..

[75]  Kurt VanLehn,et al.  Repair Theory: A Generative Theory of Bugs in Procedural Skills , 1980, Cogn. Sci..

[76]  W. Kintsch,et al.  Strategies of discourse comprehension , 1983 .

[77]  C Bron,et al.  COGNITIVE STRATEGIES AND LOOPING CONSTRUCTS - AN EMPIRICAL-STUDY , 1984 .

[78]  John B. Black,et al.  An invited article Facilitating human–computer communication , 1981, Applied Psycholinguistics.

[79]  B. A. Sheil,et al.  The Psychological Study of Programming , 1981, CSUR.

[80]  Nick Hammond,et al.  Consistency and Compatibility in Human-Computer Dialogue , 1981, Int. J. Man Mach. Stud..

[81]  Robert Balzer,et al.  Transformational Implementation: An Example , 1981, IEEE Transactions on Software Engineering.

[82]  Elizabeth Kruesi The human engineering task area , 1983, Computer.

[83]  Bill Curtis,et al.  Fifteen years of psychology in software engineering: Individual differences and cognitive science , 1984, ICSE '84.

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

[85]  H A Simon,et al.  How Big Is a Chunk? , 1974, Science.

[86]  John R. Anderson,et al.  Learning to Program in LISP , 1984, Cogn. Sci..