Design Strategies and Knowledge in Object-Oriented Programming: Effects of Experience

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.

[1]  Elliot Soloway,et al.  Goal and plan knowledge representations: from stories to text editors and programs , 1987 .

[2]  Thomas G. Moher,et al.  Some strategies of reuse in an object-oriented programming environment , 1989, CHI '89.

[3]  Simon P. Davies,et al.  The Role of Notation and Knowledge Representation in the Determination of Programming Strategy: A Framework for Integrating Models of Programming Behavior , 1991, Cogn. Sci..

[4]  J. M. Hog Une méthode de classification préalable des problèmes d'un domaine pour l'analyse des stratégies de résolution: la programmation informatique chez des professionnels , 1983 .

[5]  O. Deux,et al.  The Story of O2 , 1990, IEEE Trans. Knowl. Data Eng..

[6]  David J. Gilmore,et al.  User-Centred Requirements for Software Engineering Environments , 1994, NATO ASI Series.

[7]  Grady Booch,et al.  Object-Oriented Design with Applications , 1990 .

[8]  Kate Ehrlich,et al.  Tapping into tacit programming knowledge , 1982, CHI '82.

[9]  Robert S. Rist Search Through Multiple Representations , 1994 .

[10]  Robert S. Rist Plans in programming: definition, demonstration, and development , 1986 .

[11]  F. Détienne Program understanding and knowledge organization: the influence of acquired schemata , 1990 .

[12]  Ralph E. Johnson,et al.  Surveying current research in object-oriented design , 1990, CACM.

[13]  Kate Ehrlich,et al.  Empirical Studies of Programming Knowledge , 1984, IEEE Transactions on Software Engineering.

[14]  Raymonde Guindon,et al.  Knowledge Exploited by Experts during Software System Design , 1990, Int. J. Man Mach. Stud..

[15]  Françoise Détienne,et al.  Acquiring Experience in Object-Oriented Programming: Effects on Design Strategies , 1993 .

[16]  Jean Scholtz,et al.  Learning to program in another language , 1990, INTERACT.

[17]  F. Javier Lerch,et al.  Towards a model of cognitive process in logical design: comparing object-oriented and traditional functional decomposition software methodologies , 1992, CHI.

[18]  Mary Beth Rosson,et al.  The Cognitive Consequences of Object-Oriented Design , 1990, Hum. Comput. Interact..

[19]  Christophe Lécluse,et al.  The O2 Database Programming Language , 1989, Building an Object-Oriented Database System, The Story of O2.

[20]  Scott P. Robertson,et al.  Common Cognitive Representations of Program Code Across Tasks and Languages , 1990, Int. J. Man Mach. Stud..

[21]  Robert S. Rist Knowledge Creation and Retrieval in Program Design: A Comparison of Novice and intermediate Student Programmers , 1991, Hum. Comput. Interact..