Internal representation and rule development in object-oriented design

This article proposes a cognitive framework describing the software development process in object-oriented design (OOD) as building internal representations and developing rules. Rule development (method construction) is performed in two problem spaces: a rule space and an instance space. Rules are generated, refined, and evaluated in the rule space by using three main cognitive operations: Infer, Derive, and Evoke. Cognitive activities in the instance space are called mental simulations and are used in conjunction with the Infer operation in the rule space. In an empirical study with college students, we induced different representations to the same problem by using problem isomorphs. Initially, subjects built a representation based on the problem description. As rule development proceeded, the initial internal representation and designed objects were refined, or changed if necessary, to correspond to knowledge gained during rule development. Differences in rule development processes among groups created final designs that are radically different in terms of their level of abstraction and potential reusability. The article concludes by discussing the implications of these results for object-oriented design.

[1]  John D. McGregor,et al.  Understanding object-oriented: a unifying paradigm , 1990, CACM.

[2]  John Millar Carroll,et al.  Presentation and Representation in Design Problem Solving. , 1980 .

[3]  Robert S. Rist Schema Creation in Programming , 1989, Cogn. Sci..

[4]  Mary Beth Rosson,et al.  Problem-solution mapping in object-oriented design , 1989, OOPSLA '89.

[5]  Martin Stacey,et al.  Scientific Discovery: Computational Explorations of the Creative Processes , 1988 .

[6]  Paul J. Feltovich,et al.  Categorization and Representation of Physics Problems by Experts and Novices , 1981, Cogn. Sci..

[7]  John H. Holland,et al.  Induction: Processes of Inference, Learning, and Discovery , 1987, IEEE Expert.

[8]  Neil A. M. Maiden,et al.  Analysing the Novice Analyst: Cognitive Models in Software Engineering , 1992, Int. J. Man Mach. Stud..

[9]  Bertrand Meyer,et al.  Object-Oriented Software Construction, 2nd Edition , 1997 .

[10]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[11]  David E. Monarchi,et al.  A research typology for object-oriented analysis and design , 1992, CACM.

[12]  Edward Yourdon Object-Oriented Systems Design: An Integrated Approach , 1993 .

[13]  Allen Newell,et al.  Problem solving techniques for the design of algorithms , 1984, Inf. Process. Manag..

[14]  Dedre Gentner,et al.  Structure-Mapping: A Theoretical Framework for Analogy , 1983, Cogn. Sci..

[15]  Herbert A. Simon,et al.  Understanding written problem instructions. , 1974 .

[16]  Ivar Jacobson,et al.  Object-oriented software engineering - a use case driven approach , 1993, TOOLS.

[17]  Jinwoo Kim Problem representation and rule development in object-oriented software development , 1993 .

[18]  D. Gentner Structure‐Mapping: A Theoretical Framework for Analogy* , 1983 .

[19]  Ivar Jacobson,et al.  Object-Oriented Software Engineering , 1991, TOOLS.

[20]  N. Pennington Stimulus structures and mental representations in expert comprehension of computer programs , 1987, Cognitive Psychology.

[21]  Bill Curtis,et al.  Breakdowns and processes during the early activities of software design by professionals , 1987 .

[22]  Raymonde Guindon Designing the design process: exploiting opportunistic thoughts , 1990 .

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

[24]  Françoise Détienne,et al.  An Empirically-Derived Control Structure for the Process of Program Understanding , 1990, Int. J. Man Mach. Stud..

[25]  Kurt VanLehn,et al.  Rule Acquisition Events in the Discovery of Problem-Solving Strategies , 1991, Cogn. Sci..

[26]  Robert S. Rist Variability in Program Design: The Interaction of Process with Knowledge , 1990, Int. J. Man Mach. Stud..

[27]  James Martin,et al.  Object-oriented analysis and design , 1992 .

[28]  Herbert A Simon,et al.  The understanding process: Problem isomorphs , 1976, Cognitive Psychology.

[29]  Jean-Marc Nerson,et al.  Object-Oriented Analysis and Design , 1992, TOOLS.

[30]  Grady Booch,et al.  Object-oriented analysis and design with applications (2nd ed.) , 1993 .

[31]  H A Simon,et al.  The theory of learning by doing. , 1979, Psychological review.

[32]  Jean-Michel Hoc,et al.  Language Semantics, Mental Models and Analogy , 1990 .

[33]  Françoise Détienne Difficulties in designing with an object-oriented language: An empirical study , 1990, INTERACT.

[34]  Allen Newell,et al.  Human Problem Solving. , 1973 .

[35]  O L Zangwill,et al.  Kenneth Craik: the man and his work. , 1980, British journal of psychology.

[36]  Craig A. Kaplan,et al.  In search of insight , 1990, Cognitive Psychology.

[37]  Allen Newell,et al.  The Knowledge Level , 1989, Artif. Intell..

[38]  Elliot Soloway,et al.  A model of software design , 1986, Int. J. Intell. Syst..

[39]  Jean Scholtz,et al.  Characteristics of the Mental Representations of Novice and Expert Programmers: An Empirical Study , 1993, Int. J. Man Mach. Stud..

[40]  Peter Pirolli,et al.  A Cognitive Model and Computer Tutor for Programming Recursion , 1987, SGCH.

[41]  H. Simon,et al.  Why are some problems hard? Evidence from Tower of Hanoi , 1985, Cognitive Psychology.

[42]  Carolanne Fisher Advancing the study of programming with computer-aided protocol analysis , 1987 .

[43]  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.

[44]  Elliot Soloway What to do next: meeting the challenge of programming-in-the-large , 1986 .

[45]  Paul Thagard,et al.  Induction: Processes Of Inference , 1989 .

[46]  David Klahr,et al.  Dual Space Search During Scientific Reasoning , 1988, Cogn. Sci..