Facilitating software reuse by structuring the SPS user interface management system's software library according to programmer mental models

TR Number



Journal Title

Journal ISSN

Volume Title


Virginia Tech


This study evaluates three different ways of structuring a software library for an object-oriented system. The traditional class/subclass tree (CIS) is used as well as two methods from the mental model literature: hierarchical cluster analysis (HCA) of sorting data and modal block clustering (MBC) of attribute rating data (Shurtleff, Jenkins, and Sams, 1988; Tullis, 1985).

Also examined in this context are two software metrics: depth-in- inheritance-tree (D IT) and response-for-class (RFC) (Lei, 1991, 1993). These two metrics had been found by Lei to correlate with the ease of maintenance of software. It was conjectured that they might also be useful in the study of mental model methods for software.

Finally, student and professional programmers are explicitly compared. There has been much debate on the applicability of software-related data generated from student subjects but little research on the topic.

The results indicate that subject performance with the MBC representation was worse than with the CIS representation. Also found was that performance with the HCA representation was not sufficiently better to justify the effort involved in creating the new representation.

Student programmers were found in this study to be no worse than professional programmers and thus appear to be acceptable substitutes for professional programmers in a class-based search task. This study's results indicate that student response time to locate a class could be used as the lower boundary for professional programmer class locating time. The student error rates, however, could be used as the upper boundary for professional programmer error rate performance in class locating tasks.

A "middle" problem was also found. Classes 1n the middle of a library representation proved to be more difficult to locate as measured by time and error rate.

Finally, a higher RFC was found to increase search time for a class when it was in the middle of a library representation. A higher RFC also reduced programmer reusability ratings of a class and the programmer's confidence in the reusability rating.