F. Detienne, DESIGN STRATEGIES AND KNOWLEDGE IN OBJECT-ORIENTED PROGRAMMING - EFFECTS OF EXPERIENCE, Human-computer interaction, 10(2-3), 1995, pp. 129-169
An empirical study of design strategies and knowledge used in object-o
riented (OO) software design was conducted. Eight professional program
mers experienced with procedural programming languages and either expe
rienced or not experienced in OO programming (OOP) participated in thi
s experiment. The programmers were asked to design a program for a pro
cedural problem and a declarative problem. Analysis was concentrated o
n the design strategies related to two central aspects of the OO parad
igm: (a) associating actions (i.e., execution steps) of a complex plan
to different objects and revising a complex plan and (b) defining sim
ple plans at different levels in the class hierarchy. Regarding the de
velopment of complex-plan elements attached to different objects, the
present results show that, for beginners in OOP, the description of ob
jects and the description of actions are not always integrated in an e
arly design phase, particularly for a declarative problem; for the pro
grammers experienced in OOP, the description of objects and the descri
ption of actions tend to be integrated in first drafts of solutions, w
hichever 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, i
t was found that, for the programmers experienced in OOP, methods were
grouped together mainly by membership in the same class; for the begi
nners in OOP, methods were grouped together mainly by functional simil
arity and execution order. Furthermore, with only a little experience
in OOP, complex plans were revised more often. Regarding the developme
nt of simple plans at different levels in the class hierarchy, the pre
sent 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 differe
nt knowledge according to subjects' language experience: (a) schemas r
elated to procedural languages (actions organized in an execution orde
r) and (b) schemas related to OO languages (actions and objects integr
ated and actions organized around objects).