Design strategies and knowledge in object-oriented programming: effects of experience

  • Authors:
  • Françoise Détienne

  • Affiliations:
  • Institut National de Recherche en Informatique et Automatique (INRIA), Rocquencourt, France

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

Quantified Score

Hi-index 0.03

Visualization

Abstract

An empirical study of design strategies and knowledge used in object-oriented (OO) software design was conducted. Eight professional programmers experienced with procedural programming languages and either experienced or not experienced in OO programming (OOP) participated in this experiment. The programmers were asked to design a program for a procedural problem and a declarative problem. Analysis was concentrated on the design strategies related to two central aspects of the OO paradigm: (a) associating actions (i.e., execution steps) of a complex plan to different objects and revising a complex plan and (b) defining simple plans at different levels in the class hierarchy. Regarding the development of complex-plan elements attached to different objects, the present results show that, for beginners in OOP, the description of objects and the description of actions are not always integrated in an early design phase, particularly for a declarative problem; for the programmers experienced in OOP, the description of objects and the description of actions tend to be integrated in first drafts of solutions, whichever the problem type. Most of the first drafts of solutions were structured around the objects, whatever the experience of subjects in OOP. However, by analyzing the order in which actions are generated, it was found that, for the programmers experienced in OOP, methods were grouped together mainly by membership in the same class; for the beginners in OOP, methods were grouped together mainly by functional similarity and execution order. Furthermore, with only a little experience in OOP, complex plans were revised more often. Regarding the development of simple plans at different levels in the class hierarchy, the present results indicate that, with less OOP experience, simple plans are developed either in a top-down manner or in a bottom-up manner; with more OOP experience, simple plans are developed in a strictly top-down manner. The analysis of design strategies revealed the use of different knowledge according to subjects' language experience: (a) schemas related to procedural languages (actions organized in an execution order) and (b) schemas related to OO languages (actions and objects integrated and actions organized around objects).