ABSTRACT: Software reuse--the application of existing software artifacts in the development of a new system--has been claimed to dramatically improve system development productivity and quality. These claims have been particularly pronounced with respect to the reuse of object-oriented (OO) software artifacts. However, the empirical evaluations of these claims are relatively sparse and often inconsistent. This paper begins to address the gap in the literature. A verbal-protocol study was conducted in which analysts created a model for a problem (the target) and were given an example problem and solution (the source) to reuse. The results show little support for reuse in OO analysis. First, reuse had no effect on the quality of the OO analysis models. Subjects given a highly reusable example produced solutions that were no better than those of subjects in the control group. Second, the degree of similarity between the source and target problems did have an effect on the reuse process, although it did not impact the reuse outcome. Subjects given the example with the most similarity to the target problem quickly recognized the reuse potential, attempted a fair amount of reuse, but made several errors stemming from lazy copying. Subjects given an example with a lesser (but still significant) degree of similarity were often unable to recognize the reuse potential, and thus engaged in less rescue activity. Thus, the characteristics of the source-target comparison that facilitate noticing the reuse potential of the source do not necessarily help in applying the source solution to the target problem. These results suggest that the claims associated with reuse should be treated with a healthy dose of skepticism.
Key words and phrases: analogical reasoning, object-oriented analysis, software reuse, verbal protocol