Are objects that important? effects of expertise and familiarity on classification of object-oriented code

  • Authors:
  • Simon P. Davies;David J. Gilmore;Thomas R. G. Green

  • Affiliations:
  • Department of Psychology, University of Hull, Hull, England and University of Nottingham;Department of Psychology, University of Nottingham, Nottingham, England;Applied Psychology Unit, Medical Research Council Cambridge, England

  • Venue:
  • Human-Computer Interaction
  • Year:
  • 1995

Quantified Score

Hi-index 0.00

Visualization

Abstract

This article reports a study of the use of card sorts in the categorization of fragments of object-oriented (OO) programs. We are interested in the way in which programmers think about code so that we might attempt to provide support for browsing and reuse activities within OO environments. As a consequence, we have been exploring the use of knowledge acquisition techniques in order to elicit programmers' knowledge about code. The study reported here required expert and novice programmers to sort through several cards, each containing a fragment of code. In the case of the expert group, half of the subjects were familiar with the code, and half were not. The subjects sorted the cards according to any criteria they felt were appropriate. Our results showed, contrary to our expectations, that experts tended to focus on the functional relations between the code fragments and that the novices were much more concerned with objects and inheritance relations. Moreover, those experts who were familiar with the code also appeared to focus to a greater degree on functional information compared to those who were unfamiliar with the code, who derived classifications based on object and class relations. We discuss these results in terms of the existing body of knowledge about expertise in procedural programming and with respect to the claims that have been made about the naturalness of conceiving the world in terms of objects and their relations. Last, we suggest several directions for future research into the psychological mechanisms that might underpin OO design and programming.