  An empirical study was conducted to analyse design strategies and knowledge
used in object-oriented software design. Eight professional programmers
experienced with procedural programming languages and either experienced or not
experienced in object-oriented design strategies related to two central aspects
of the object-oriented paradigm: (1) associating actions, i.e., execution
steps, of a complex plan to different objects and revising a complex plan, and
(2) defining simple plans at different levels in the class hierarchy. As
regards the development of complex plans elements attached to different
objects, our 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 the declarative problem whereas, for the
programmers experienced in OOP, the description of objects and the description
of actions tend to be integrated in their first drafts of solutions whichever
the problem type. The analysis of design strategies reveal the use of different
knowledge according to subjects' language experience: (1) schemas related to
procedural languages; actions are organized in an execution order, or (2)
schemas related to object-oriented languages; actions and objects are
integrated, and actions are organised around objects.
