DESIGN STRATEGIES AND KNOWLEDGE IN OBJECT-ORIENTED PROGRAMMING - EFFECTS OF EXPERIENCE

Authors
Citation
F. Detienne, DESIGN STRATEGIES AND KNOWLEDGE IN OBJECT-ORIENTED PROGRAMMING - EFFECTS OF EXPERIENCE, Human-computer interaction, 10(2-3), 1995, pp. 129-169
Citations number
28
Categorie Soggetti
Computer Science Cybernetics
Journal title
ISSN journal
07370024
Volume
10
Issue
2-3
Year of publication
1995
Pages
129 - 169
Database
ISI
SICI code
0737-0024(1995)10:2-3<129:DSAKIO>2.0.ZU;2-D
Abstract
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).