Knowledge Exploited by Experts during Software System Design

High-level software design is characterized by incompletely specified requirements, no predetermined solution path, and by the integration of multiple domains of knowledge at various levels of abstraction. The application of data-driven knowledge rules characterizes expertise. A verbal protocol study describes these domains of knowledge and how experts exploit their rich knowledge during design. It documents how designers heavily rely on problem domain scenario simulations throughout solution development. These simulations trigger the inferences of new requirements and complete the requirement specification. Designers recognize partial solutions at various levels of abstraction in the design decomposition through the application of data-driven rules. Designers also rely heavily on simulations of their design solutions. but these are shallow, that is, limited to one level of abstraction in the solution. The findings also illustrate how designers capitalize on design methods, notations, and specialized software design schemas. Finally, the study describes how designers exploit powerful heuristics and personalized evaluation criteria to constrain the design process and select a satisfactory solution. Studies, such as this one, help map the road to understanding expertise in complex tasks.

[1]  Harlan D. Mills Structured Programming: Retrospect and Prospect , 1986, IEEE Software.

[2]  R. Guindon,et al.  Control of cognitive processes during software design: what tools are needed? , 1988, CHI '88.

[3]  John C. Thomas,et al.  Cognitive Processes in Design. , 1980 .

[4]  Janet D. Fodor,et al.  The sausage machine: A new two-stage parsing model , 1978, Cognition.

[5]  Kate Ehrlich,et al.  Knowledge and processes in the comprehension of computer programs. , 1988 .

[6]  David Lorge Parnas,et al.  A rational design process: How and why to fake it , 1986, IEEE Transactions on Software Engineering.

[7]  Dorothea P. Simon,et al.  Expert and Novice Performance in Solving Physics Problems , 1980, Science.

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

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

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

[11]  D E Egan,et al.  Chunking in recall of symbolic drawings , 1979, Memory & cognition.

[12]  Robin Jeffries,et al.  The Processes Involved in Designing Software. , 1980 .

[13]  Robert Balzer,et al.  On the inevitable intertwining of specification and implementation , 1982, CACM.

[14]  Mehdi T. Harandi,et al.  Knowledge-based software design using design schemas , 1987, ICSE '87.

[15]  Donald A. Norman,et al.  Analogical Processes in Learning , 1980 .

[16]  John C. Thomas,et al.  Clinical— experimental analysis of design problem solving , 1979 .

[17]  Bertrand Meyer,et al.  On Formalism in Specifications , 1985, IEEE Software.

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

[19]  B. Adelson,et al.  The Role of Domain Expenence in Software Design , 1985, IEEE Transactions on Software Engineering.

[20]  Earl David Sacerdoti,et al.  A Structure for Plans and Behavior , 1977 .

[21]  Harold W. Thimbleby,et al.  Delaying Commitment , 1988, IEEE Softw..

[22]  Jane Darke,et al.  The primary Generator and the Design Process , 1979 .

[23]  John R. Anderson Acquisition of cognitive skill. , 1982 .

[24]  J. Reitman,et al.  Knowledge organization and skill differences in computer programmers , 1981, Cognitive Psychology.

[25]  Herbert A. Simon,et al.  The Structure of Ill Structured Problems , 1973, Artif. Intell..

[26]  Barbara Hayes-Roth,et al.  A Cognitive Model of Planning , 1979, Cogn. Sci..

[27]  Herbert A. Simon,et al.  Why a Diagram is (Sometimes) Worth Ten Thousand Words , 1987, Cogn. Sci..

[28]  Richard E. Fairley,et al.  Software engineering concepts , 1985, McGraw-Hill series in software engineering and technology.

[29]  Jaakko Hintikka,et al.  A note on anaphoric pronouns and information processing by humans , 1987 .