Observing and measuring cognitive support: steps toward systematic tool evaluation and engineering

A key desideratum for many software comprehension tools is to reduce the mental burdens of software engineers. That is, the tools should support cognition. This key benefit is difficult to directly observe and measure, so evaluating such tools has been problematic. This paper describes an investigation into the application of distributed cognition theories to analyzing and observing cognitive support. Theories of cognitive support are used to generate an analysis of potential cognitive benefits provided by the compilation-error tracking facilities of a commercial software development environment. This analysis is used to generate a scheme for coding user observations such that cognitive support related activity can be tracked. Experiences in applying the technique on data from a field study are reported. The study also serves to provide a glimpse into the ways that programmers and tools cooperate. Implications are drawn for future practices of tool evaluation and engineering.

[1]  Anneliese Amschler Andrews,et al.  On Increasing Our Knowledge of Large-Scale Software Comprehension , 2004, Empirical Software Engineering.

[2]  Jiajie Zhang,et al.  Representations in Distributed Cognitive Tasks , 1994, Cogn. Sci..

[3]  Janice Singer,et al.  Studying work practices to assist tool design in software engineering , 1998, Proceedings. 6th International Workshop on Program Comprehension. IWPC'98 (Cat. No.98TB100242).

[4]  Bob Fields,et al.  ANALYSING HUMAN-COMPUTER INTERACTION AS DISTRIBUTED COGNITION: THE RESOURCES MODEL , 1999 .

[5]  J. H. Larkin,et al.  Display-based problem solving , 1989 .

[6]  David R. Millen,et al.  Rapid ethnography: time deepening strategies for HCI field research , 2000, DIS '00.

[7]  Janice Singer,et al.  Beg, borrow, or steal: using multidisciplinary approaches in empirical software engineering research , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[8]  Andrew Walenstein,et al.  Foundations of Cognitive Support: Toward Abstract Patterns of Usefulness , 2002, DSV-IS.

[9]  Allen Newell,et al.  The Prospects for Psychological Science in Human-Computer Interaction , 1985, Hum. Comput. Interact..

[10]  Stephen M. Kosslyn,et al.  Elements of graph design , 1993 .

[11]  J. Long,et al.  A conception of the cognitive engineering design problem , 1998 .

[12]  John Long,et al.  Target Paper Conception of the cognitive engineering design problem , 1998 .

[13]  Hausi A. Müller,et al.  On designing an experiment to evaluate a reverse engineering tool , 1996, Proceedings of WCRE '96: 4rd Working Conference on Reverse Engineering.

[14]  Andrew Walenstein,et al.  Theory-based analysis of cognitive support in software comprehension tools , 2002, Proceedings 10th International Workshop on Program Comprehension.

[15]  Maria Kutar,et al.  Cognitive Dimensions of Notations: Design Tools for Cognitive Technology , 2001, Cognitive Technology.

[16]  E. Hutchins Cognition in the wild , 1995 .

[17]  Andrew Walenstein,et al.  COGNITIVE SUPPORT IN SOFTWARE ENGINEERING TOOLS: A DISTRIBUTED COGNITION FRAMEWORK , 2002 .

[18]  Gerd Szwillus,et al.  Introduction: Structure-Based Editors and Environments , 1992, Int. J. Man Mach. Stud..

[19]  Richard M. Young,et al.  Planning in the Context of Human-Computer Interaction , 1987, BCS HCI.

[20]  Donald A. Norman,et al.  Cognitive artifacts , 1991 .

[21]  William G. Griswold,et al.  How Software Engineering Tools Organize Programmer Behavior During the Task of Data Encapsulation , 1997, Empirical Software Engineering.

[22]  James D. Hollan,et al.  Distributed cognition: toward a new foundation for human-computer interaction research , 2000, TCHI.

[23]  Mary Beth Rosson,et al.  Usability Specifications as Tool in Iterative Development. , 1984 .

[24]  Andrew Walenstein,et al.  Reverse engineering tools as media for imperfect knowledge , 2000, Proceedings Seventh Working Conference on Reverse Engineering.

[25]  Lucy Suchman Plans and situated actions: the problem of human-machine communication , 1987 .

[26]  David R. Barstow,et al.  Interactive programming environments , 1984, SOEN.

[27]  H. Simon,et al.  Protocol Analysis: Verbal Reports as Data , 1986 .