  This paper presents a cognitive typology of reuse processes, and a cognitive
typology of documenting processes. Empirical studies on design with reuse and
on software documenting provide evidence for a generalized cognitive model.
First, these studies emphasize the cyclical nature of design: cycles of
planning, writing and revising occur. Second, natural language documentation
follows the hierarchy of cognitive entities manipulated during design.
Similarly software reuse involves exploiting various types of knowledge
depending on the phase of design in which reuse is involved. We suggest that
these observations can be explained based on cognitive models of text
processing: the van Dijk and Kintsch (1983) model of text comprehension, and
the Hayes and Flower (1980) model of text production. Based on our generalized
cognitive model, we suggest a framework for documenting reusable components.
