Analysing the Novice Analyst: Cognitive Models in Software Engineering

Abstract Cognitive problem-solving by novice systems analysts during a requirements analysis task was investigated by protocol analysis. Protocols were collected from 13 subjects who analysed a scheduling problem. Reasoning, planning, conceptual modelling and information gathering behaviours were recorded and subject's solutions were evaluated for completeness and accuracy. The protocols showed an initial problem scoping phase followed by more detailed reasoning. Performance in analysis was not linked to any one factor although reasoning was correlated with success. Poor performance could be ascribed to failure to scope the problem, poor formation of a conceptual model of the problem domain, or insufficient testing of hypotheses. Good performance concorded with well-formed conceptual models and good reasoning/testing abilities. The implication of these results for structured systems development methods and Computer-Aided Software Engineering (CASE) tools are discussed.

[1]  Bryan Lawson,et al.  How Designers Think: The Design Process Demystified , 1990 .

[2]  Hugh L. Burns,et al.  Foundations of intelligent tutoring systems : an introduction , 1988 .

[3]  Nancy Pennington,et al.  Comprehension strategies in programming , 1987 .

[4]  K. A. Ericsson,et al.  Verbal reports as data. , 1980 .

[5]  Stellan Ohlsson,et al.  Some principles of intelligent tutoring , 1986 .

[6]  Nicholas Paul Vitalari,et al.  An investigation of the problem solving behavior of systems analysts , 1981 .

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

[8]  Mehdi T. Harandi,et al.  Intelligent Support for Software Specification and Design , 1986, IEEE Expert.

[9]  James Milne Neighbors,et al.  Software construction using components , 1980 .

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

[11]  Pericles Loucopoulos,et al.  Information systems development: a rule-based approach , 1988, Knowl. Based Syst..

[12]  Gavriel Salvendy,et al.  Cognitive Issues in the Process of Software Development: Review and Reappraisal , 1989, Int. J. Man Mach. Stud..

[13]  Roger C. Schank,et al.  Dynamic memory - a theory of reminding and learning in computers and people , 1983 .

[14]  B. Adelson When Novices Surpass Experts: The Difficulty of a Task May Increase With Expertise , 1984 .

[15]  Piero Torrigiani,et al.  ASPIS: a knowledge-based CASE environment , 1988, IEEE Software.

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

[17]  Jack Mostow,et al.  Design by Derivational Analogy: Issues in the Automated Replay of Design Plans , 1989, Artif. Intell..

[18]  Mehdi T. Harandi,et al.  A knowledge based design aid for software systems , 1985 .

[19]  Curtis R. Cook,et al.  An analysis of the on-line debugging process , 1987 .

[20]  John R. Anderson,et al.  Discrimination of operator schemata in problem solving: Learning from examples , 1985, Cognitive Psychology.

[21]  D. Boehm-Davis,et al.  Mental representations of programs for student and professional programmers , 1987 .

[22]  W. Lewis Johnson,et al.  Understanding and Debugging Novice Programs , 1990, Artif. Intell..

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

[24]  Tom DeMarco,et al.  Structured Analysis and System Specification , 1978 .

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

[26]  Ian Sommerville,et al.  Integrated support for systems design , 1990, Softw. Eng. J..

[27]  Sol Jaffe Greenspan,et al.  Requirements modeling: a knowledge representation approach to software requirements definition , 1984 .

[28]  Jeff Conklin,et al.  Hypertext: An Introduction and Survey , 1987, Computer.

[29]  Gary W. Dickson,et al.  Problem solving for effective systems analysis: an experimental exploration , 1983, CACM.