ABSTRACT

In this chapter we present a cognitive model of the process of software design. Our goal was to develop a model of expert problem-solving skills for a task in wh ich domain knowledge played an extensive role. In order to observe problem-solving skills we provided expert designers with a challenging task. Otherwise we only would have seen them fall back upon "routine cognitive skill" (Card, Moran, & Newell, 1983). In order to allow domain knowledge to play its role, we developed a task which was within our subjects' domain of expertise; we therefore presented these expert software designers with a problem which was both novel and complex, and from a domain familiar to them. We collected and analyzed the protocols taken from our subjects; and as a result of our protocol analysis we have built a model which unites several recurring behaviors into a coherent whole. The behaviors we account for include the building of mental models, mental simulation, and balanced development.